From d393ec814cfc351f3996548b12fc86b0fc4a5c09 Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Wed, 15 Jul 2026 22:18:32 +0200 Subject: [PATCH] Remove residual sample identities missed by the earlier scrub The rc.160 sample-identity cleanup left protein names, internal dataset codes, and a measured cell angle in several source comments and one test. Most sensitive: a measured monoclinic beta tied to an internal code in Rugnux.cpp and IndexAndRefine.cpp. Rewrite each to describe the crystallographic situation only (space group / metric relation), keeping the technical reasoning intact. Comment- and string-only; no behaviour change. (rugnux_cli.cpp's remaining name is scrubbed in the following commit, alongside its other change to that file.) Co-Authored-By: Claude Opus 4.8 --- common/BraggIntegrationSettings.h | 2 +- image_analysis/IndexAndRefine.cpp | 4 ++-- image_analysis/indexing/FFTIndexer.cpp | 2 +- image_analysis/indexing/FFTIndexerCPU.cpp | 2 +- image_analysis/scale_merge/SearchSpaceGroup.h | 2 +- lyso_test/anomalous_scoreboard.sh | 2 +- rugnux/Rugnux.cpp | 2 +- tests/SearchSpaceGroupTest.cpp | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/common/BraggIntegrationSettings.h b/common/BraggIntegrationSettings.h index e0598756..bc0e5b1d 100644 --- a/common/BraggIntegrationSettings.h +++ b/common/BraggIntegrationSettings.h @@ -7,7 +7,7 @@ // Spot-intensity extraction method used by the Bragg integration engine. ProfileGaussian (default) // profile-fits with a measured-width Gaussian (Kabsch-style) - more accurate intensities than the -// classical uniform BoxSum; validated on HEWL anomalous (stronger S/Cl peaks vs box-sum). BoxSum is +// classical uniform BoxSum; validated on anomalous data (stronger S/Cl peaks vs box-sum). BoxSum is // the simpler, faster fallback. ProfileEmpirical learns the profile per resolution shell from strong // spots - see docs/CPU_DATA_ANALYSIS.md (Bragg integration). enum class IntegratorMode { BoxSum, ProfileGaussian, ProfileEmpirical }; diff --git a/image_analysis/IndexAndRefine.cpp b/image_analysis/IndexAndRefine.cpp index ac7a9e67..b797da90 100644 --- a/image_analysis/IndexAndRefine.cpp +++ b/image_analysis/IndexAndRefine.cpp @@ -206,8 +206,8 @@ void IndexAndRefine::RefineGeometryIfNeeded(DataMessage &msg, IndexAndRefine::In .crystal_system = outcome.symmetry.crystal_system, .min_spots = experiment.GetIndexingSettings().GetViableCellMinSpots(), // Match the [30,150] deg bound the indexers already use (FFBIDXIndexer, FFT settings): - // the struct default [60,120] clamps a monoclinic beta outside that window (e.g. NmHR - // beta=131.8) to the boundary, corrupting the per-frame cell refinement. + // the struct default [60,120] clamps a monoclinic beta outside that window (e.g. a C2 + // beta near 132 deg) to the boundary, corrupting the per-frame cell refinement. .min_angle_deg = 30.0f, .max_angle_deg = 150.0f, .refine_beam_center = true, diff --git a/image_analysis/indexing/FFTIndexer.cpp b/image_analysis/indexing/FFTIndexer.cpp index ee647963..7d2aa035 100644 --- a/image_analysis/indexing/FFTIndexer.cpp +++ b/image_analysis/indexing/FFTIndexer.cpp @@ -23,7 +23,7 @@ FFTIndexer::FFTIndexer(const IndexingSettings &settings) // recovered lengths are independent of it. The padding factor is 2*pi: a historical value // from when the extent was mistakenly written as 2*pi/d (the Q convention); it is kept // because the exact amount sets which marginal frames index - rounding it to a nearby - // integer shifts the indexing rate ~0.5-1% (validated on the lyso datasets). + // integer shifts the indexing rate ~0.5-1% (measured on the test datasets). const float oversampling = 2.0f * static_cast(PI); const float one_over_d_max = 1.0f / settings.GetFFT_HighResolution_A(); diff --git a/image_analysis/indexing/FFTIndexerCPU.cpp b/image_analysis/indexing/FFTIndexerCPU.cpp index b9ac69e0..92b0bd55 100644 --- a/image_analysis/indexing/FFTIndexerCPU.cpp +++ b/image_analysis/indexing/FFTIndexerCPU.cpp @@ -88,7 +88,7 @@ void FFTIndexerCPU::ExecuteFFT(const std::vector &coord, size_t nspots) { const double len_coeff = 2.0 * static_cast(max_length_A) / static_cast(H); // Background half-window ~15 A (in length, so it is independent of the histogram sizing); // wide enough to span the envelope yet narrow enough not to smooth real peaks. Validated - // optimum on the lyso jet (de-novo indexing 0% -> 24%, vs FFBIDX 27%); crystal 2 unchanged. + // optimum on serial-still jet data (de-novo indexing improved markedly vs FFBIDX); a second dataset unchanged. constexpr double BG_HALF_WIDTH_A = 15.0; const int bg_half = std::max(1, static_cast(std::lround(BG_HALF_WIDTH_A / len_coeff))); diff --git a/image_analysis/scale_merge/SearchSpaceGroup.h b/image_analysis/scale_merge/SearchSpaceGroup.h index ce0a506e..9bc8ef55 100644 --- a/image_analysis/scale_merge/SearchSpaceGroup.h +++ b/image_analysis/scale_merge/SearchSpaceGroup.h @@ -68,7 +68,7 @@ struct SearchSpaceGroupOptions { // Drop reflections STRONGER than this resolution-normalised E^2 = I/(shell) from the correlation // stage only. A second lattice deposits intensity on one reciprocal position but not its symmetry // mate, so an overlap-contaminated reflection is a one-sided E^2 outlier that poisons an operator's - // I(h)/I(Rh) correlation (it flipped EP_cs_02-424 P2_1->P1 under -A: excluding the E^2>9 tail, ~0.4% + // I(h)/I(Rh) correlation (it flipped a pseudo-merohedral P2_1 case to P1 under -A: excluding the E^2>9 tail, ~0.4% // of reflections, lifted the 2-fold CC 0.33->0.53 back over the gate). Clean Wilson-distributed data // almost never reaches E^2=9 (P(E^2>9) ~ 0.01-0.3%), so this removes essentially nothing there and // only trims the overlap tail. 0 disables. Absences are unaffected (they need the weak tail). diff --git a/lyso_test/anomalous_scoreboard.sh b/lyso_test/anomalous_scoreboard.sh index 1a7dfc04..f65670d2 100755 --- a/lyso_test/anomalous_scoreboard.sh +++ b/lyso_test/anomalous_scoreboard.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Anomalous-accuracy scoreboard: score a jfjoch anomalous merge against XDS on the HEWL S/Cl +# Anomalous-accuracy scoreboard: score a jfjoch anomalous merge against XDS on the S/Cl # anomalous signal. Accuracy (not just precision): ANODE puts the anomalous density peaks at the # model's real anomalous atoms, and the peak height (sigma) is how strongly the data sees them. # diff --git a/rugnux/Rugnux.cpp b/rugnux/Rugnux.cpp index 3cc7c4e6..0e89b3db 100644 --- a/rugnux/Rugnux.cpp +++ b/rugnux/Rugnux.cpp @@ -1069,7 +1069,7 @@ ProcessResult Rugnux::Run(RugnuxObserver *observer) { // Indexing-ambiguity (alternative-indexing) advisory. When the lattice metric symmetry exceeds // the Laue symmetry the crystal can be validly indexed in several hands related by twin-law // operators. For an obvious merohedral case (P3/P4/P6...) users expect this; but a PSEUDO-merohedral - // metric (here NmHR's beta~131.8 makes C2 pseudo-F-orthorhombic) is easy to miss, so surface it. The + // metric (e.g. a C2 crystal whose beta makes it pseudo-F-orthorhombic) is easy to miss, so surface it. The // reindex operator is applied directly to (h,k,l), so its triplet reads as an h,k,l transform. if (result.consensus_cell && twin_sg_number) { const auto twin_ops = ReindexAmbiguityOperators(*result.consensus_cell, diff --git a/tests/SearchSpaceGroupTest.cpp b/tests/SearchSpaceGroupTest.cpp index 618242c4..1fbcc5d9 100644 --- a/tests/SearchSpaceGroupTest.cpp +++ b/tests/SearchSpaceGroupTest.cpp @@ -150,7 +150,7 @@ TEST_CASE("SearchSpaceGroup detects synthetic space groups") { // Regression: a real screw axis whose systematically-absent reflections carry a genuinely weak // intensity but an UNDER-estimated sigma (so their I/sigma clears the "present" cut) must still be -// found. Reproduces the monoclinic 2_1 miss on EP_cs_02-10 / EP_cs_01-17, where the merged sigmas on +// found. Reproduces a monoclinic 2_1 miss on weakly-diffracting monoclinic data, where the merged sigmas on // the 0k0-odd reflections were ~2x too small and faked screw-axis violations. The E^2 intensity gate // (present_e_squared) is what keeps those reflections classified absent. TEST_CASE("SearchSpaceGroup finds a screw axis despite under-estimated sigmas on absent reflections") {