From 1e6cb84f7ae14cb39b4ca5c0bc768399462ad2d0 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Tue, 11 Jul 2023 16:08:46 +0200 Subject: partialator: Add --unmerged-output --- src/merge.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/merge.h | 2 ++ src/partialator.c | 11 ++++++++++ 3 files changed, 74 insertions(+) (limited to 'src') diff --git a/src/merge.c b/src/merge.c index 20981ff8..0a5c5f14 100644 --- a/src/merge.c +++ b/src/merge.c @@ -484,3 +484,64 @@ double log_residual(Crystal *cr, const RefList *full, int free, if ( pn_used != NULL ) *pn_used = n_used; return dev; } + + +/* Has to match run_merge_job to be useful */ +void write_unmerged(const char *fn, Crystal **crystals, int n_crystals) +{ + FILE *fh; + int i; + + fh = fopen(fn, "w"); + if ( fh == NULL ) { + ERROR("Failed to open %s\n", fn); + return; + } + + for ( i=0; i Specify the name of the input 'stream'.\n" " -o, --output= Output filename. Default: partialator.hkl.\n" " --output-every-cycle Write .hkl* and .params files in every cycle.\n" +" --unmerged-output= Write unmerged (but scaled and corrected) intensities.\n" " -y, --symmetry= Merge according to symmetry .\n" " --start-after= Skip crystals at the start of the stream.\n" " --stop-after= Stop after merging crystals.\n" @@ -1068,6 +1069,7 @@ int main(int argc, char *argv[]) .streams = NULL}; char *outfile = NULL; char *sym_str = NULL; + char *unmerged_filename = NULL; SymOpList *sym; SymOpList *amb; SymOpList *w_sym; @@ -1151,6 +1153,7 @@ int main(int argc, char *argv[]) {"no-polarization", 0, NULL, 15}, /* compat */ {"harvest-file", 1, NULL, 16}, {"log-folder", 1, NULL, 17}, + {"unmerged-output", 1, NULL, 18}, {"no-scale", 0, &no_scale, 1}, {"no-Bscale", 0, &no_Bscale, 1}, @@ -1344,6 +1347,10 @@ int main(int argc, char *argv[]) log_folder = strdup(optarg); break; + case 18 : + unmerged_filename = strdup(optarg); + break; + case 0 : break; @@ -1790,6 +1797,10 @@ int main(int argc, char *argv[]) min_measurements, push_res, 1, 0); } + if ( unmerged_filename != NULL ) { + write_unmerged(unmerged_filename, crystals, n_crystals); + } + /* Write final figures of merit (no rejection any more) */ show_all_residuals(crystals, n_crystals, full, no_free); if ( do_write_logs ) { -- cgit v1.2.3