diff --git a/tools/jfjoch_process.cpp b/tools/jfjoch_process.cpp index 21003c88..a00acd29 100644 --- a/tools/jfjoch_process.cpp +++ b/tools/jfjoch_process.cpp @@ -68,6 +68,7 @@ void print_usage() { std::cout << " --min-partiality Minimum partiality to accept reflection (default: 0.02)" << std::endl; std::cout << " --min-image-cc Per-image CC limit in percent (default: no limit)" << std::endl; std::cout << " --scaling-iterations Number of scaling iterations with no reference data (default: 3)" << std::endl; + std::cout << " --scaling-output Output format for scaling results mtz|cif|txt (default: mtz)" << std::endl; std::cout << " -z, --reference-mtz Reference MTZ file" << std::endl; } @@ -80,7 +81,8 @@ enum { OPT_MIN_PARTIALITY, OPT_MIN_IMAGE_CC, OPT_SCALING_ITERATIONS, - OPT_SCALING_HIGH_RESOLUTION + OPT_SCALING_HIGH_RESOLUTION, + OPT_SCALING_OUTPUT }; static option long_options[] = { @@ -110,7 +112,7 @@ static option long_options[] = { {"min-image-cc", required_argument, nullptr, OPT_MIN_IMAGE_CC}, {"scaling-iterations", required_argument, nullptr, OPT_SCALING_ITERATIONS}, {"scaling-high-resolution", required_argument, nullptr, OPT_SCALING_HIGH_RESOLUTION}, - + {"scaling-output", required_argument, nullptr, OPT_SCALING_OUTPUT}, {nullptr, 0, nullptr, 0} }; @@ -215,6 +217,7 @@ int main(int argc, char **argv) { IndexingAlgorithmEnum indexing_algorithm = IndexingAlgorithmEnum::Auto; + IntensityFormat intensity_format = IntensityFormat::MTZ; PartialityModel partiality_model = PartialityModel::Fixed; float d_min_spot_finding = 1.5; @@ -355,6 +358,18 @@ int main(int argc, char **argv) { case OPT_SCALING_HIGH_RESOLUTION: d_min_scale_merge = atof(optarg); break; + case OPT_SCALING_OUTPUT: + if (strcmp(optarg, "mtz") == 0) { + intensity_format = IntensityFormat::MTZ; + } else if (strcmp(optarg, "cif") == 0) { + intensity_format = IntensityFormat::mmCIF; + } else if (strcmp(optarg, "txt") == 0) { + intensity_format = IntensityFormat::Text; + } else { + logger.Error("Invalid intensity format: {}", optarg); + exit(EXIT_FAILURE); + } + break; case OPT_SCALING_ITERATIONS: scaling_iter = atoi(optarg); if (scaling_iter <= 0) { @@ -477,6 +492,7 @@ int main(int argc, char **argv) { scaling_settings.RotationWedgeForScaling(wedge_for_scaling); scaling_settings.MinPartiality(min_partiality); scaling_settings.MinCCForImage(min_image_cc); + scaling_settings.FileFormat(intensity_format); experiment.ImportScalingSettings(scaling_settings); diff --git a/tools/jfjoch_scale.cpp b/tools/jfjoch_scale.cpp index e9807260..61052990 100644 --- a/tools/jfjoch_scale.cpp +++ b/tools/jfjoch_scale.cpp @@ -3,25 +3,18 @@ #include #include -#include -#include +#include [] #include -#include -#include #include #include -#include #include #include "../reader/JFJochHDF5Reader.h" #include "../common/Logger.h" #include "../common/DiffractionExperiment.h" -#include "../common/PixelMask.h" -#include "../common/AzimuthalIntegrationMapping.h" #include "../common/time_utc.h" #include "../common/print_license.h" #include "../image_analysis/MXAnalysisWithoutFPGA.h" -#include "../image_analysis/indexing/IndexerFactory.h" #include "../writer/FileWriter.h" #include "../image_analysis/IndexAndRefine.h" #include "../receiver/JFJochReceiverPlots.h" @@ -57,13 +50,15 @@ void print_usage() { std::cout << " --min-image-cc Per-image CC limit in percent (default: no limit)" << std::endl; std::cout << " --scaling-iterations Number of scaling iterations with no reference data (default: 3)" << std::endl; + std::cout << " --scaling-output Output format for scaling results mtz|cif|txt (default: mtz)" << std::endl; std::cout << " -z, --reference-mtz Reference MTZ file" << std::endl; } enum { OPT_MIN_PARTIALITY = 1000, OPT_MIN_IMAGE_CC, - OPT_SCALING_ITERATIONS + OPT_SCALING_ITERATIONS, + OPT_SCALING_OUTPUT }; @@ -83,6 +78,7 @@ static option long_options[] = { {"min-partiality", required_argument, nullptr, OPT_MIN_PARTIALITY}, {"min-image-cc", required_argument, nullptr, OPT_MIN_IMAGE_CC}, {"scaling-iterations", required_argument, nullptr, OPT_SCALING_ITERATIONS}, + {"scaling-output", required_argument, nullptr, OPT_SCALING_OUTPUT}, {nullptr, 0, nullptr, 0} }; @@ -109,6 +105,7 @@ int main(int argc, char **argv) { double min_image_cc = 0.0; int64_t scaling_iter = 3; + IntensityFormat intensity_format = IntensityFormat::MTZ; PartialityModel partiality_model = PartialityModel::Fixed; std::optional d_min_scale_merge; @@ -179,6 +176,18 @@ int main(int argc, char **argv) { case OPT_MIN_IMAGE_CC: min_image_cc = std::stod(optarg); break; + case OPT_SCALING_OUTPUT: + if (strcmp(optarg, "mtz") == 0) { + intensity_format = IntensityFormat::MTZ; + } else if (strcmp(optarg, "cif") == 0) { + intensity_format = IntensityFormat::mmCIF; + } else if (strcmp(optarg, "txt") == 0) { + intensity_format = IntensityFormat::Text; + } else { + logger.Error("Invalid intensity format: {}", optarg); + exit(EXIT_FAILURE); + } + break; case OPT_SCALING_ITERATIONS: scaling_iter = atoi(optarg); if (scaling_iter <= 0) { @@ -274,6 +283,7 @@ int main(int argc, char **argv) { scaling_settings.RotationWedgeForScaling(wedge_for_scaling); scaling_settings.MinPartiality(min_partiality); scaling_settings.MinCCForImage(min_image_cc); + scaling_settings.FileFormat(intensity_format); experiment.ImportScalingSettings(scaling_settings);