PixelRefine: profile multiplier as --profile-multiplier flag; outlier rejection default off
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 29m33s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 29m48s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 29m54s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 31m23s
Build Packages / build:rpm (rocky8) (push) Successful in 31m27s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 33m18s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 33m33s
Build Packages / XDS test (durin plugin) (push) Successful in 19m8s
Build Packages / Generate python client (push) Successful in 44s
Build Packages / Build documentation (push) Successful in 1m42s
Build Packages / Create release (push) Skipped
Build Packages / XDS test (neggia plugin) (push) Successful in 20m33s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 24m26s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 22m0s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 26m3s
Build Packages / build:rpm (rocky9) (push) Successful in 29m41s
Build Packages / DIALS test (push) Successful in 33m17s
Build Packages / Unit tests (push) Successful in 2h52m56s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 29m33s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 29m48s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 29m54s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 31m23s
Build Packages / build:rpm (rocky8) (push) Successful in 31m27s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 33m18s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 33m33s
Build Packages / XDS test (durin plugin) (push) Successful in 19m8s
Build Packages / Generate python client (push) Successful in 44s
Build Packages / Build documentation (push) Successful in 1m42s
Build Packages / Create release (push) Skipped
Build Packages / XDS test (neggia plugin) (push) Successful in 20m33s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 24m26s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 22m0s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 26m3s
Build Packages / build:rpm (rocky9) (push) Successful in 29m41s
Build Packages / DIALS test (push) Successful in 33m17s
Build Packages / Unit tests (push) Successful in 2h52m56s
(1) Promote the Term-2 profile-width multiplier from the PR_RMULT env knob to a real BraggIntegrationSettings::profile_multiplier (default 6) + jfjoch_process --profile-multiplier flag. Removes the last PR_* env knob; IndexAndRefine reads the setting. (2) Flip the merge outlier rejection default to OFF (ScalingSettings outlier_reject_nsigma 6 -> 0); it stays available via --reject-outliers <nsigma>, since it helps the jet R-free but is dataset-dependent (drops crystal-2 CCref). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -72,7 +72,7 @@ void print_usage() {
|
||||
std::cout << " -w, --wedge[=num] Refine image wedge during scaling with starting wedge value" << std::endl;
|
||||
std::cout << " --scaling-high-resolution <num> High resolution limit for spot finding (default: no limit)" << std::endl;
|
||||
std::cout << " --min-partiality <num> Minimum partiality to accept reflection (default: 0.02)" << std::endl;
|
||||
std::cout << " --reject-outliers <num> Per-observation merge outlier rejection, N sigma from the per-reflection median (default: 6; 0 disables)" << std::endl;
|
||||
std::cout << " --reject-outliers <num> Per-observation merge outlier rejection, N sigma from the per-reflection median (default: off; e.g. 6, XDS/DIALS-style)" << std::endl;
|
||||
std::cout << " --min-image-cc <num> Per-image CC limit in percent (default: no limit)" << std::endl;
|
||||
std::cout << " --scaling-iterations <num> Number of scaling iterations with no reference data (default: 3)" << std::endl;
|
||||
std::cout << " --scaling-output <txt> Output format for scaling results mtz|cif|txt (default: mtz)" << std::endl;
|
||||
@@ -82,6 +82,7 @@ void print_usage() {
|
||||
std::cout << " Pixel refinement (experimental, select via -r pixelrefine, needs --reference-mtz)" << std::endl;
|
||||
std::cout << " --bandwidth <num> Relative X-ray bandwidth FWHM (e.g. 0.01 for 1% DMM); default from file or 0" << std::endl;
|
||||
std::cout << " --integration-radius <r> Signal-box radius r1, or r1,r2,r3 (px). One value => r2=r1+2, r3=r1+4" << std::endl;
|
||||
std::cout << " --profile-multiplier <num> PixelRefine: scale the measured tangential profile width R1 (default: 6; XDS-style generous aperture)" << std::endl;
|
||||
}
|
||||
|
||||
enum {
|
||||
@@ -99,7 +100,8 @@ enum {
|
||||
OPT_FORCE_ROTATION_LATTICE,
|
||||
OPT_BANDWIDTH,
|
||||
OPT_INTEGRATION_RADIUS,
|
||||
OPT_REJECT_OUTLIERS
|
||||
OPT_REJECT_OUTLIERS,
|
||||
OPT_PROFILE_MULTIPLIER
|
||||
};
|
||||
|
||||
static option long_options[] = {
|
||||
@@ -138,6 +140,7 @@ static option long_options[] = {
|
||||
{"bandwidth", required_argument, nullptr, OPT_BANDWIDTH},
|
||||
{"integration-radius", required_argument, nullptr, OPT_INTEGRATION_RADIUS},
|
||||
{"reject-outliers", required_argument, nullptr, OPT_REJECT_OUTLIERS},
|
||||
{"profile-multiplier", required_argument, nullptr, OPT_PROFILE_MULTIPLIER},
|
||||
{nullptr, 0, nullptr, 0}
|
||||
};
|
||||
|
||||
@@ -320,6 +323,7 @@ int main(int argc, char **argv) {
|
||||
std::optional<float> d_min_scale_merge;
|
||||
std::optional<std::string> integration_radius_arg; // "r1" or "r1,r2,r3"
|
||||
std::optional<double> outlier_reject_nsigma; // merge per-observation outlier rejection
|
||||
std::optional<float> profile_multiplier; // PixelRefine Term-2 profile-width multiplier
|
||||
|
||||
if (argc == 1) {
|
||||
print_usage();
|
||||
@@ -515,6 +519,9 @@ int main(int argc, char **argv) {
|
||||
case OPT_REJECT_OUTLIERS:
|
||||
outlier_reject_nsigma = std::stod(optarg);
|
||||
break;
|
||||
case OPT_PROFILE_MULTIPLIER:
|
||||
profile_multiplier = std::stof(optarg);
|
||||
break;
|
||||
case OPT_MIN_IMAGE_CC:
|
||||
min_image_cc = std::stod(optarg);
|
||||
break;
|
||||
@@ -707,6 +714,13 @@ int main(int argc, char **argv) {
|
||||
logger.Info("Integration radii set to r1={:.1f} r2={:.1f} r3={:.1f}", r1, r2, r3);
|
||||
}
|
||||
|
||||
if (profile_multiplier) {
|
||||
BraggIntegrationSettings bis = experiment.GetBraggIntegrationSettings();
|
||||
bis.ProfileMultiplier(*profile_multiplier);
|
||||
experiment.ImportBraggIntegrationSettings(bis);
|
||||
logger.Info("PixelRefine profile-width multiplier set to {:.1f}", *profile_multiplier);
|
||||
}
|
||||
|
||||
SpotFindingSettings spot_settings;
|
||||
spot_settings.enable = true;
|
||||
spot_settings.indexing = true;
|
||||
|
||||
Reference in New Issue
Block a user