d28c8b8bb356e4ee97d402f67dd9f6ca4370af87
sgequiv keyed space groups on their proper+improper rotation matrices, so groups with identical merged intensities but different point groups (I41md vs I-42d, Pc vs P2/c, Pna21 vs Pnma, P2 vs P2/m) were called a "REAL difference", contradicting its own docstring, and score.py compared point groups literally on the XDS arms. A run that wrote one member of such a pair and listed the other in SPACE_GROUP_ALTERNATIVES failed as sym_other / sym_over. sgequiv now keys each group, in every setting gemmi tabulates, on its Laue rotations (operations plus their negatives), centring and absences; describe() separates the new different-point-group pairs from the old same-point-group ones, and enantiomorph handling is unchanged. score.py passes a row, on both arms, when some setting of the reference has the same signature as our group in our own setting: verdict pass, cause indistinguishable_alternative, the reason saying whether rugnux listed the reference. Pass, not unscored: unlike an unmeasured screw axis, everything was measured and the answer is as right as the data allow; only a model or a strong anomalous signal decides. The separate cause keeps such rows countable. Being listed in SPACE_GROUP_ALTERNATIVES alone is deliberately not enough: that list also carries the screw alternatives of an undetermined axis, whose absences differ, and those stay under the screw rule. The open arm's same-point-group UNDECIDABLE pass now also requires the setting check. results.json gains sg_alternatives (rugnux's SPACE_GROUP_ALTERNATIVES). KDP joins the ci tier. Re-scoring the open and in-house arms of the two latest full runs changes one verdict in each: kdp_x10sa_20keV fail/sym_other -> pass/indistinguishable_alternative. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SVmAWnzCmRKAXVUCdc4iNi
Jungfraujoch
Application to receive and analyse data from the PSI JUNGFRAU and EIGER detectors, together with
rugnux, its program for processing stored diffraction data - rotation and serial, macromolecular
and small-molecule - from images to merged reflections.
All documentation is now placed in docs/ subdirectory and for the current version hosted on Jungfraujoch Read The Docs page.
Languages
C++
77.9%
HTML
6%
C
4.7%
TypeScript
3.4%
Cuda
3%
Other
4.9%