aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2022-11-08 13:36:17 +0100
committerThomas White <taw@physics.org>2022-11-08 13:42:27 +0100
commit46baa4da52b939db5e8a01271befb9f5e704b3b7 (patch)
tree03600453573def91f0194d76f19bf67807ce6a6b
parent7a406dd524e4b01877cca301f85265a2901ffb43 (diff)
indexamajig: Add --cell-parameters-only
-rw-r--r--doc/man/indexamajig.17
-rw-r--r--src/indexamajig.c11
-rw-r--r--src/process_image.c22
-rw-r--r--src/process_image.h1
4 files changed, 28 insertions, 13 deletions
diff --git a/doc/man/indexamajig.1 b/doc/man/indexamajig.1
index 7e057418..0956c4d3 100644
--- a/doc/man/indexamajig.1
+++ b/doc/man/indexamajig.1
@@ -1,7 +1,7 @@
.\"
.\" indexamajig man page
.\"
-.\" Copyright © 2012-2021 Deutsches Elektronen-Synchrotron DESY,
+.\" Copyright © 2012-2022 Deutsches Elektronen-Synchrotron DESY,
.\" a research centre of the Helmholtz Association.
.\"
.\" Part of CrystFEL - crystallography with a FEL
@@ -546,6 +546,11 @@ Integrate \fIn\fR nm^-1 higher than the apparent resolution limit of each indivi
.PD
Over-predict reflections. This is needed to provide a buffer zone when using post-refinement, but makes it difficult to judge the accuracy of the predictions because there are so many reflections. It will also reduce the quality of the merged data if you merge without partiality estimation.
+.PD 0
+.IP \fB--cell-parameters-only\fR
+.PD
+Do not predict reflections at all. Use this option if you're not at all interested in the integrated reflection intensities or even the positions of the reflections. You will still get unit cell parameters, and the process will be much faster, especially for large unit cells.
+
.SH OUTPUT OPTIONS
.PD 0
diff --git a/src/indexamajig.c b/src/indexamajig.c
index ea66630b..67206070 100644
--- a/src/indexamajig.c
+++ b/src/indexamajig.c
@@ -3,7 +3,7 @@
*
* Index patterns, output hkl+intensity etc.
*
- * Copyright © 2012-2021 Deutsches Elektronen-Synchrotron DESY,
+ * Copyright © 2012-2022 Deutsches Elektronen-Synchrotron DESY,
* a research centre of the Helmholtz Association.
* Copyright © 2012 Richard Kirian
* Copyright © 2012 Lorenzo Galli
@@ -260,7 +260,8 @@ static void write_harvest_file(struct index_args *args,
write_float(fh, 1, "push_res_invm", args->push_res);
write_float(fh, 1, "fix_profile_radius_invm", nan_if_neg(args->fix_profile_r));
write_float(fh, 1, "fix_divergence_rad", nan_if_neg(args->fix_divergence));
- write_bool(fh, 0, "overpredict", args->overpredict);
+ write_bool(fh, 1, "overpredict", args->overpredict);
+ write_bool(fh, 0, "cell_parameters_only", args->cell_params_only);
fprintf(fh, " }\n"); /* NB No comma */
}
@@ -795,6 +796,10 @@ static error_t parse_arg(int key, char *arg, struct argp_state *state)
args->iargs.overpredict = 1;
break;
+ case 509 :
+ args->iargs.cell_params_only = 1;
+ break;
+
/* ---------- Output ---------- */
case 601 :
@@ -931,6 +936,7 @@ int main(int argc, char *argv[])
args.iargs.int_diag = INTDIAG_NONE;
args.iargs.min_peaks = 0;
args.iargs.overpredict = 0;
+ args.iargs.cell_params_only = 0;
args.iargs.wait_for_file = 0;
args.iargs.ipriv = NULL; /* No default */
args.iargs.int_meth = integration_method("rings-nocen-nosat-nograd", NULL);
@@ -1074,6 +1080,7 @@ int main(int argc, char *argv[])
{"int-diag", 506, "condition", 0, "Show debugging information about reflections"},
{"push-res", 507, "dist", 0, "Integrate higher than apparent resolution cutoff (m^-1)"},
{"overpredict", 508, NULL, 0, "Over-predict reflections"},
+ {"cell-parameters-only", 509, NULL, 0, "Don't predict reflections at all"},
{NULL, 0, 0, OPTION_DOC, "Output options:", 6},
{"no-non-hits-in-stream", 601, NULL, OPTION_NO_USAGE, "Don't include non-hits in "
diff --git a/src/process_image.c b/src/process_image.c
index f1ddb7f0..d8ccca93 100644
--- a/src/process_image.c
+++ b/src/process_image.c
@@ -448,16 +448,18 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs,
}
/* Integrate! */
- set_last_task(last_task, "integration");
- profile_start("integration");
- sb_shared->pings[cookie]++;
- integrate_all_5(image, iargs->int_meth, PMODEL_XSPHERE,
- iargs->push_res,
- iargs->ir_inn, iargs->ir_mid, iargs->ir_out,
- iargs->int_diag, iargs->int_diag_h,
- iargs->int_diag_k, iargs->int_diag_l,
- &sb_shared->term_lock, iargs->overpredict);
- profile_end("integration");
+ if ( !iargs->cell_params_only ) {
+ set_last_task(last_task, "integration");
+ profile_start("integration");
+ sb_shared->pings[cookie]++;
+ integrate_all_5(image, iargs->int_meth, PMODEL_XSPHERE,
+ iargs->push_res,
+ iargs->ir_inn, iargs->ir_mid, iargs->ir_out,
+ iargs->int_diag, iargs->int_diag_h,
+ iargs->int_diag_k, iargs->int_diag_l,
+ &sb_shared->term_lock, iargs->overpredict);
+ profile_end("integration");
+ }
streamwrite:
set_last_task(last_task, "stream write");
diff --git a/src/process_image.h b/src/process_image.h
index 166f6cd5..feb3f81c 100644
--- a/src/process_image.h
+++ b/src/process_image.h
@@ -108,6 +108,7 @@ struct index_args
float fix_profile_r;
float fix_divergence;
int overpredict;
+ int cell_params_only;
/* Output */
int stream_flags;