scale_merge: remove sample identities from SearchSpaceGroup comments
The point-group self-consistency comments named specific datasets when illustrating the chi^2-ratio / systematic-b calibration. Describe the crystallographic situation instead (a merohedral R3->R32 twin, a genuine cubic step, a tetragonal P41212 case), per the repository's no-sample-names rule. Comment-only; no behaviour change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -382,7 +382,7 @@ SearchSpaceGroupResult SearchSpaceGroup(
|
||||
// has to grow to swallow it (mirroring the merge error model's b / ISa collapse). This isolates
|
||||
// the systematic part of the scatter, which the fixed-sigma chi^2 ratio cannot: a genuine but
|
||||
// imperfectly-scaled high-symmetry merge and a twin can share a chi^2 ratio (~2) yet differ
|
||||
// sharply here (cubic Ins_I_3 b x1.04 vs twin Ins_H_2 b x1.6).
|
||||
// sharply here (a genuine cubic step b x1.04 vs a merohedral twin b x1.6).
|
||||
auto merge_systematic_b = [&](const std::vector<gemmi::Op>& rotations) -> double {
|
||||
struct Acc { double sw = 0.0, swI = 0.0; int n = 0; };
|
||||
std::unordered_map<HKLKey, Acc, HKLKeyHash> grp;
|
||||
@@ -455,10 +455,10 @@ SearchSpaceGroupResult SearchSpaceGroup(
|
||||
for (const auto& c : pg_cands) {
|
||||
// A genuine symmetry operator merges equivalent reflections, so it barely changes the reduced
|
||||
// chi^2 relative to the best subgroup - across the whole rotation-test battery every correct
|
||||
// point group stays within ~1.7x, even on weak or badly-integrated data (F432 chi2_ref 8.3 ->
|
||||
// 1.15; Thau P41212 -> 1.71). A twin law or pseudo-symmetry forces non-equivalent reflections
|
||||
// together, so its ratio is markedly higher (Ins_H_2's twin 2-fold: R3 3.02 -> R32 6.07, ratio
|
||||
// 2.01). max_merge_chi2_ratio sits between the two. (An earlier log10(chi2_ref) widening
|
||||
// point group stays within ~1.7x, even on weak or badly-integrated data (a cubic F432 chi2_ref
|
||||
// 8.3 -> 1.15; a tetragonal P41212 -> 1.71). A twin law or pseudo-symmetry forces non-equivalent
|
||||
// reflections together, so its ratio is markedly higher (a merohedral twin 2-fold: R3 3.02 ->
|
||||
// R32 6.07, ratio 2.01). max_merge_chi2_ratio sits between the two. (An earlier log10(chi2_ref) widening
|
||||
// compensated for an under-calibrated error model that inflated real-symmetry ratios with data
|
||||
// weakness; the variance-floor fix removed that inflation, and the widening now only let the
|
||||
// twin through, so it is gone.)
|
||||
|
||||
@@ -87,21 +87,21 @@ struct SearchSpaceGroupOptions {
|
||||
// candidate. A false operator forces non-equivalent reflections together so they disagree by many
|
||||
// sigma and chi^2 blows up; a real one leaves it ~flat even when the operator CC is only moderate.
|
||||
// Calibrated on the rotation-test battery: every correct point group stays within ~1.7x the best
|
||||
// subgroup even on weak / badly-integrated data (worst real case Thau P41212 at 1.71), while a twin
|
||||
// law or pseudo-symmetry lands clearly higher (Ins_H_2's R3->R32 twin 2-fold at 2.01). 1.85 sits
|
||||
// subgroup even on weak / badly-integrated data (worst real case a P41212 at 1.71), while a twin
|
||||
// law or pseudo-symmetry lands clearly higher (a merohedral R3->R32 twin 2-fold at 2.01). 1.85 sits
|
||||
// between the two, so a partial merohedral twin is kept in its true lower symmetry (R3), not
|
||||
// over-promoted to the holohedral R32.
|
||||
double max_merge_chi2_ratio = 1.85;
|
||||
|
||||
// A genuine high-symmetry merge can drift just past max_merge_chi2_ratio when its data are only
|
||||
// imperfectly scaled: each real symmetry step then adds a little systematic scatter, so a weakly-
|
||||
// scaled cubic like Ins_I_3 lands at ratio ~2.0 - right where a merohedral twin (Ins_H_2's R3->R32
|
||||
// at ~1.95) also lands, so the chi^2 ratio alone cannot separate them. A candidate whose chi^2 is
|
||||
// scaled cubic case lands at ratio ~2.0 - right where a merohedral twin (an R3->R32 case at ~1.95)
|
||||
// also lands, so the chi^2 ratio alone cannot separate them. A candidate whose chi^2 is
|
||||
// only this far past the best subgroup is therefore rescued if the SYSTEMATIC part of the extra
|
||||
// scatter stayed small (max_systematic_b_ratio): merging under a genuine operator gains multiplicity
|
||||
// without intensity-proportional disagreement, so the merge error model's b barely moves, whereas a
|
||||
// twin forces non-equivalent reflections together and b balloons (Ins_I_3 b x1.6 vs Ins_H_2 x2.2,
|
||||
// measured against the largest confirmed subgroup). Both bounds sit in the gap; the rescue only ever
|
||||
// twin forces non-equivalent reflections together and b balloons (a genuine cubic step b x1.6 vs a
|
||||
// merohedral twin x2.2, measured against the largest confirmed subgroup). Both bounds sit in the gap; the rescue only ever
|
||||
// promotes, and only in this narrow chi^2 band.
|
||||
double max_merge_chi2_rescue = 2.30;
|
||||
double max_systematic_b_ratio = 1.90;
|
||||
|
||||
Reference in New Issue
Block a user