From fc647d846dc8fbec9ef13c41382be260ff5e8e9a Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 6 Mar 2014 17:55:51 +0100 Subject: Add --stop-after --- src/ambigator.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/ambigator.c b/src/ambigator.c index 8d7cd4f2..fe295cf7 100644 --- a/src/ambigator.c +++ b/src/ambigator.c @@ -68,6 +68,7 @@ static void show_help(const char *s) " --end-assignments= Save end assignments to file .\n" " --fg-graph= Save f and g correlation values to file .\n" " --ncorr= Use correlations per crystal. Default 1000\n" +" --stop-after= Use at most the first crystals.\n" ); } @@ -482,6 +483,7 @@ int main(int argc, char *argv[]) FILE *fgfh = NULL; struct cc_list *ccs; int ncorr = 1000; + int stop_after = 0; /* Long options */ const struct option longopts[] = { @@ -495,6 +497,7 @@ int main(int argc, char *argv[]) {"end-assignments", 1, NULL, 4}, {"fg-graph", 1, NULL, 5}, {"ncorr", 1, NULL, 6}, + {"stop-after", 1, NULL, 7}, {0, 0, NULL, 0} }; @@ -557,6 +560,13 @@ int main(int argc, char *argv[]) } break; + case 7 : + if ( sscanf(optarg, "%i", &stop_after) != 1 ) { + ERROR("Invalid value for --stop-after\n"); + return 1; + } + break; + case 0 : break; @@ -659,14 +669,17 @@ int main(int argc, char *argv[]) amb); cell_free(cell); n_crystals++; - reflist_free(list); + if ( stop_after && (n_crystals == stop_after) ) break; + } fprintf(stderr, "Loaded %i crystals from %i chunks\r", n_crystals, ++n_chunks); + if ( stop_after && (n_crystals == stop_after) ) break; + } while ( 1 ); fprintf(stderr, "\n"); -- cgit v1.2.3