b7a440bcbdf8a6d2da45f211252ea197c231644a
201
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
b7a440bcbd |
Docs: verified DOIs for Wilson (1949) and Whittaker; centre-of-symmetry references
Both DOIs were resolved against doi.org/Crossref (title, volume and pages match), so the "DOI not verified" notes go. The analysis reference's References list gains Wilson / Howells-Phillips-Rogers and Baur & Kassner, whose methods 13.1 now describes (CLAUDE.md: a method described there is listed there as well as in ACKNOWLEDGEMENT.md). Every other DOI in ACKNOWLEDGEMENT.md, the CPU_DATA_ANALYSIS* pages, the RUGNUX* pages, README.md and the battery README resolves. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
e2084895db |
Docs: data-analysis reference brought up to the rc.174 behaviour
Space group (13.1): every setting of a chosen rotation set is offered; screws are claimed at 8 nats, with how that bound was set; the P1 search merge is cut where a monotone fit of <I/sigma> drops under 1; the operator-homogeneity gate reads the R gap between a subgroup and the rest; a lattice-holohedral group is refused when merging under it narrows the L-test like a twin. Outliers (13.3): the rotation median is weighted at the expected intensity, and the band's systematic part is multiplicative, with its spread measured on the merge's own fulls. Indexing: a sparse lattice is integrated on every frame; pass 1's lattice is a hypothesis against a different re-index, and a pass sent back reuses pass 1's indexing. Image: the flipped axis sign must beat chance; the same-lattice beam-centre retry on an inconsistent merge. Integration: five correction surfaces, not four; the .hkl carries no amplitudes; the fulls' scale is smoothed differently from the partials'. Tutorial: the correction surfaces are cross-validated on the half-set correlation (as the reference says), not on an R_meas-like deviation. Overview: the footprint, the 5 A indexing hypothesis, the centre of symmetry, and the GPU pre-scan. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
e7c4cb128c |
Docs: results report - rejection counters, every CENTRE_STATISTICS key, build flags
- OBSERVATIONS_REJECTED / _WILSON / _OVERLOAD: what each counts and how they relate (the overload count is not part of OBSERVATIONS_REJECTED). - CENTRE_STATISTICS_REFLECTIONS and the three per-statistic _F keys are named; NOT_APPLICABLE is stated as the code decides it (any of the three outside -0.3..1.3, or the control below 0.5). - BUILD_CXX_FLAGS no longer says that -march moves the results: the build turns floating-point contraction off and the indexer's reductions no longer depend on SIMD width, so CPU levels agree. The RUGNUX_GIT and BUILD_CXX_FLAGS keys were also listed twice in the header paragraph. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
39abdb9f58 |
Docs: processing small-molecule data, and taking it into SHELXT / SHELXL
Running Rugnux gains a "Small-molecule data" section: what the default run does about short axes, wide and split spots, sparse patterns, overloads and glide / centre-of-symmetry space groups, the two settings worth checking (polarization on a laboratory source, the resolution cut), and what the unmerged HKLF 4 file holds. Rugnux with other programs gains a worked SHELXT -> SHELXL route (instruction file built from the report keys, what SHELXL does with the unmerged file). The SHELXT/SHELXL commands were run on a battery set's output to check they work as written. The quick start's file list now includes <prefix>_detector.jpg, which every default rotation run writes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
d80579221b |
Docs: Rigaku d*TREK SMV headers; SMV saturation is read where stated
What Rugnux reads now describes the d*TREK vocabulary the SMV reader learned in this release (pixel size, image directions, 2theta arm, wavelength, encoded overflows), and no longer says that SMV never states a saturation value: CCD_IMAGE_SATURATION / SATURATED_VALUE are read where present. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
db7cd6282e |
Docs: repair sigma_rho / sigma_tau in the spot-footprint paragraph
The backslash escapes \r and \t had been turned into a line break and a tab, which broke the LaTeX and split the paragraph. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
09ba6d7225 |
CHANGELOG: rc.174 Rugnux entries most important first; SMV reader with the home-source battery sets
Build Packages / Create release (push) Successful in 18s
Build Packages / build:viewer:macos-arm64:nocuda (push) Successful in 3m17s
Build Packages / build:rugnux:macos-arm64:nocuda (push) Successful in 2m34s
Build Packages / build:viewer:linux-x86_64:nocuda (push) Successful in 10m35s
Build Packages / build:viewer:linux-x86_64:cuda (push) Successful in 12m6s
Build Packages / build:rugnux:linux-x86_64:cuda (push) Successful in 9m34s
Build Packages / build:rugnux:linux-aarch64:cuda (push) Successful in 6m49s
Build Packages / build:viewer:windows-x86_64:nocuda (push) Successful in 18m46s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 23m3s
Build Packages / build:viewer:windows-x86_64:cuda (push) Successful in 24m21s
Build Packages / build:jfjoch:rocky8:nocuda (push) Successful in 13m56s
Build Packages / build:jfjoch:ubuntu2404:nocuda (push) Successful in 16m14s
Build Packages / build:jfjoch:ubuntu2204:nocuda (push) Successful in 18m27s
Build Packages / build:jfjoch:rocky9:nocuda (push) Successful in 18m38s
Build Packages / build:rugnux:windows-x86_64:cuda (push) Successful in 14m51s
Build Packages / build:jfjoch:rocky8:cuda-sls9 (push) Successful in 18m24s
Build Packages / Generate python client (push) Successful in 13s
Build Packages / Build documentation (push) Successful in 1m25s
Build Packages / build:jfjoch:rocky9:cuda-sls9 (push) Successful in 18m3s
Build Packages / build:jfjoch:rocky8:cuda (push) Successful in 15m40s
Build Packages / build:jfjoch:rocky9:cuda (push) Successful in 16m22s
Build Packages / build:jfjoch:ubuntu2404:cuda (push) Successful in 14m49s
Build Packages / build:jfjoch:ubuntu2204:cuda (push) Successful in 15m9s
Build Packages / Unit tests (push) Successful in 1h24m9s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
ca8eff396a |
CHANGELOG: rc.174 release notes
Build Packages / Create release (push) Successful in 18s
Build Packages / build:viewer:macos-arm64:nocuda (push) Successful in 3m16s
Build Packages / build:rugnux:macos-arm64:nocuda (push) Successful in 2m36s
Build Packages / build:rugnux:linux-aarch64:cuda (push) Successful in 9m7s
Build Packages / build:rugnux:linux-x86_64:cuda (push) Successful in 10m5s
Build Packages / build:viewer:linux-x86_64:nocuda (push) Successful in 11m18s
Build Packages / build:viewer:linux-x86_64:cuda (push) Successful in 13m50s
Build Packages / build:jfjoch:rocky8:nocuda (push) Successful in 17m35s
Build Packages / build:jfjoch:rocky9:nocuda (push) Successful in 18m38s
Build Packages / build:viewer:windows-x86_64:nocuda (push) Successful in 19m55s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 24m4s
Build Packages / build:viewer:windows-x86_64:cuda (push) Successful in 24m42s
Build Packages / build:jfjoch:ubuntu2404:nocuda (push) Successful in 19m39s
Build Packages / build:jfjoch:ubuntu2204:nocuda (push) Successful in 21m1s
Build Packages / Generate python client (push) Successful in 21s
Build Packages / build:jfjoch:rocky8:cuda-sls9 (push) Successful in 20m40s
Build Packages / Build documentation (push) Successful in 1m30s
Build Packages / build:rugnux:windows-x86_64:cuda (push) Successful in 14m18s
Build Packages / build:jfjoch:rocky9:cuda-sls9 (push) Successful in 20m41s
Build Packages / build:jfjoch:rocky8:cuda (push) Successful in 19m23s
Build Packages / build:jfjoch:rocky9:cuda (push) Successful in 20m56s
Build Packages / build:jfjoch:ubuntu2204:cuda (push) Successful in 20m42s
Build Packages / build:jfjoch:ubuntu2404:cuda (push) Successful in 19m29s
Build Packages / Unit tests (push) Successful in 1h44m19s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
aa4455b18e |
Merge branch 'rc174-all3' into rc174
Build Packages / Create release (push) Successful in 17s
Build Packages / build:viewer:macos-arm64:nocuda (push) Successful in 3m24s
Build Packages / build:rugnux:macos-arm64:nocuda (push) Successful in 2m33s
Build Packages / build:rugnux:linux-aarch64:cuda (push) Successful in 8m38s
Build Packages / build:viewer:linux-x86_64:nocuda (push) Successful in 10m32s
Build Packages / build:rugnux:linux-x86_64:cuda (push) Successful in 10m30s
Build Packages / build:viewer:linux-x86_64:cuda (push) Successful in 13m6s
Build Packages / build:jfjoch:rocky8:nocuda (push) Successful in 18m19s
Build Packages / build:jfjoch:rocky9:nocuda (push) Successful in 19m13s
Build Packages / build:viewer:windows-x86_64:nocuda (push) Successful in 19m33s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 23m49s
Build Packages / build:viewer:windows-x86_64:cuda (push) Successful in 24m43s
Build Packages / build:jfjoch:ubuntu2204:nocuda (push) Successful in 20m45s
Build Packages / build:jfjoch:ubuntu2404:nocuda (push) Successful in 19m3s
Build Packages / Generate python client (push) Successful in 22s
Build Packages / Build documentation (push) Successful in 1m2s
Build Packages / build:jfjoch:rocky8:cuda-sls9 (push) Successful in 20m56s
Build Packages / build:jfjoch:rocky9:cuda-sls9 (push) Successful in 20m41s
Build Packages / build:rugnux:windows-x86_64:cuda (push) Successful in 14m17s
Build Packages / build:jfjoch:rocky8:cuda (push) Successful in 19m1s
Build Packages / build:jfjoch:rocky9:cuda (push) Successful in 19m32s
Build Packages / build:jfjoch:ubuntu2204:cuda (push) Successful in 17m42s
Build Packages / build:jfjoch:ubuntu2404:cuda (push) Successful in 14m0s
Build Packages / Unit tests (push) Successful in 1h18m36s
|
||
|
|
9459444b6a |
Viewer: link one libjpeg - drop Qt's JPEG and TIFF plugins
With the static Qt of the Linux viewer, QJpegPlugin brings Qt's bundled libjpeg-turbo (3.1.4, JPEG_LIB_VERSION 80) next to ours from preview/ (3.2.0, ABI 62). Both export the same jpeg_* symbols and the linker silently kept Qt's, so WriteJPEGToMem - compiled against our headers - failed with "Wrong JPEG library version". In the viewer that aborted an in-process rugnux run at the end, where _detector.jpg is collected. The rc173 artifact shows it directly: jpeg_CreateCompress checks for 80 and the only libjpeg version string is 3.1.4. The viewer now excludes Qt::QJpegPlugin and the unused Qt::QTiffPlugin (which bound to whichever libtiff the link offered), and its clipboard copy and "Save image as JPEG" encode through WriteJPEGToMem instead of QImage::save. The Linux viewer CI job checks the binary holds no Qt JPEG/TIFF handler and exactly one libjpeg-turbo. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> |
||
|
|
9d1650680e |
Battery report: 8xtg's twin-immune zone is now read at the other twin laws' fraction
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
3167b4ce14 |
Merge branch 'battery-inhouse-model' into rc174-all3
# Conflicts: # docs/CHANGELOG.md |
||
|
|
0741b2b298 |
Merge branch 'dq-reg4' into rc174-all3
# Conflicts: # docs/CHANGELOG.md |
||
|
|
5575558c5f | Merge branch 'dq-reg3' into rc174-all3 | ||
|
|
f9ffc3d837 |
SearchSpaceGroup: ask a promotion's twin-immune zone on a twinned merge, read at the other twin laws' fraction
6iu9 (deposited P3_1, merohedrally twinned at 0.4 or more by its 321 law: H 0.097, CC 0.79) went from P3_1 to P3_121 when the penalised per-frame scale smoother ( |
||
|
|
636c6a3067 |
SearchSpaceGroup: operator-homogeneity gate reads the R gap between a subgroup and the rest
The gate that refuses a point group whose own operators "disagree among
themselves" read worst-agreeing over best-agreeing operator R. That divides
by an extreme order statistic - the pole the contrast gate was introduced to
remove - so a genuine group whose operators merely spread in a continuum is
refused as soon as one operator happens to agree unusually well.
That is what refused 432 on a private cubic F432 crystal after the overload
drop (37a8c8e24; bisected: that commit alone gives F23,
|
||
|
|
a628f06868 |
Space-group search: an ask that promotes over a twin-gate refusal is decided by the twin-immune zone
Open set 5ebi (deposited P2_1, a = c and beta = 120: a monoclinic crystal on a hexagonal metric, pseudo-merohedrally twinned, <|L|> 0.433) regressed from P2_1 to C222_1 with dq-sm2-rest |
||
|
|
7eb8e93a0a |
Rugnux --model: report the anomalous map's mean height at the model's anomalous scatterers
ANOMALOUS_SCATTERER_MEAN_SIGMA= is the anomalous difference map, read at every model atom from phosphorus up (S of Met/Cys, metals, Cl, I) with the same cubic interpolation as ANOMALOUS_SITE_*, averaged in map sigma; ANOMALOUS_SCATTERERS= is their count. One number for the anomalous signal of a merge that does not depend on which ten atoms come out on top - what the battery tracks for the long-wavelength standard-protein sets. A new key only: no report version bump. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
f64f764d40 |
Merge branch 'dq-kdp-int' into rc174-all2
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
0e35cad1e2 |
Docs: split reflections in the measured footprint
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
9223c27c1b |
Merge branch 'dq-sym-glide' into rc174-all2
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB # Conflicts: # docs/CHANGELOG.md |
||
|
|
98f678ae89 |
Merge branch 'dq-sm2-rest' into rc174-all2
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
01c7d4636b |
Merge branch 'dq-sm2-int' into rc174-all2
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
60b7fb86fa |
SearchSpaceGroup: glide groups without a centre of symmetry; the centre decided by absences, a default, or the intensity distribution
Non-Sohncke candidates were enumerated only when their PROPER rotations equalled the measured point group's, which only centrosymmetric groups satisfy. Groups without a centre (Pc, Pna2_1, I-42d, I4_1md, Fdd2, P-42_1c, I-43d) were never candidates: where a centrosymmetric group shares their absences rugnux wrote it silently (Pc -> P2/c), and where none does the dead glide zone was dropped and a Sohncke subgroup written (KDP-type I-42d data -> I4_122). - Enumerate non-Sohncke groups by Laue class. The Sohncke-signature dedup, CellHostsRotations and the glide-evidence bar are unchanged. Groups with identical absences in the same Laue class are scored once and carried as `same_absences`; a selected candidate brings them into `alternatives`. - Convention for which twin is written: the centrosymmetric one where it exists (missed centres are the common error, Baur & Kassner 1992), otherwise the lowest-numbered (I4_1md over I-42d). - The centrosymmetric default gives way only when, on the general reflections of the Laue class of the final merge, <|L|>, <|E^2-1|> and N(0.1), each calibrated against acentric/centric intensities simulated with the reflections' own sigmas (fixed-seed mt19937_64, own deviate transforms), read acentric (L f <= 0.3, others <= 0.5), every f lies in [-0.3, 1.3], the always-centric control reads centric (f >= 0.5), and the lattice excludes twinning (gemmi Le Page metric admits no rotation beyond the Laue class, no TWIN_DOMAIN leftover lattice). Then the group is switched and re-merged. - Report: SPACE_GROUP_CENTRE (IMPLIED_BY_ABSENCES / ABSENT_BY_ABSENCES / NOT_DETERMINED / ABSENT_BY_STATISTICS), CENTRE_TWINNING_EXCLUDED, CENTRE_STATISTICS_* on every searched run, and prose for the absence-equivalent alternatives. Battery (targeted): all 14 small-molecule sets vs 58a4bf (smt-all, kdp-all): every group unchanged except kdp_x10sa_20keV I 41 2 2 -> I 41 m d with I -4 2 d as the alternative; dnba stays C 1 2/c 1, now NOT_DETERMINED with C 1 c 1 listed (statistics read centric, f 0.96-1.24). The P2_1/c, Pbca and Ia-3d sets read IMPLIED_BY_ABSENCES with no alternative. Protein panel (19 sets, twinned panel + controls, run glide-prot): every space group equals the rc174-all base (3r6o re-run with the base binary: I 41 2 2 both); no SPACE_GROUP_CENTRE on any. Twinned proteins read the centre statistics NOT_APPLICABLE (L f -0.3 to -1.7) or ACENTRIC. Private subset (8 sets): 8/8 groups unchanged vs 58a4bf. The glide-zone evidence scan over battery 3 (every non-Sohncke group of each run's Laue class, centrosymmetric or not) peaks at 0.69 nats/reflection on proteins against the 2.0 bar. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
b126b9fc15 |
Rotation merge: scale from the fulls alone only where that leaves an error model
The per-frame scale was fitted on the partials from 50 rocking events per frame and taken from the fulls alone below. The counts of small-molecule sweeps (3-43) and proteins (5-900) overlap, and a weak protein at 36 events per frame scaled from its fulls had no resolved error model at all (ISa undetermined, d_min 5.10 A) where its partials gave ISa 32 and 4.88 A. The first merge of a pass that is not a space-group search is now made both ways, and the count stands as the prior unless its merge has no resolved error model while the other merge has one. Search merges (P1 / subgroups) take the prior. The two ISa values are deliberately not compared beyond that. Tried as the arbiter, "higher ISa wins" (and weighted R_meas as fallback) agreed with the external yardsticks on 10 of 11 crystals but chose the partials on a 6-events-per-frame small-molecule sweep: ISa 10.5 vs 8.7, weighted R_meas 0.102 vs 0.115, SHELXL R1 0.105 vs 0.062 - the partiality error the partial scale absorbs is shared by symmetry mates at the same rocking geometry, so their agreement cannot see it. Statistics of the difference between the two arms' frame scales did not separate that sweep from the proteins that want the partials either. Effect: only crystals whose prior arm fails change; every small-molecule set and every protein control keeps its arm. Private weak protein: ISa undetermined -> 32.3, d_min 5.10 -> 4.88 A, weighted R_meas .343 -> .337. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
37a8c8e24e |
Rotation merge: drop rocking events with an overloaded pixel; capture uncertainty in the merge variance
A saturated pixel in a spot means the brightest part of the reflection was not measured. The integration used to drop the peak frame's partial (its peak pixel is unreadable) and keep the flanks, so the combine extrapolated the event from its tails by the partiality model: on a strongly diffracting small-molecule crystal the strongest low-order reflections read 2-3x low and were the largest SHELXL misfits. XDS drops such a reflection (OVERLOAD); so does rugnux now. - Integration (CPU + GPU engines): a reflection is `overloaded` when a signal-disk pixel is saturated, or unreadable on this frame but not in the run's pixel mask - EIGER/PILATUS write their error value for a pixel they could not count, which the preprocessor turns into a masked pixel like a gap's. The engines now receive the PixelMask to tell the two apart (an earlier attempt that re-classified the marker as saturation in the preprocessor broke a dataset whose gaps are not in the file's mask). An overloaded reflection is kept with its box sum, unfitted, only so its event can be recognised. - Rotation combine (CPU + GPU): an event with any overloaded partial is dropped whole; counted in the log and the report (OBSERVATIONS_REJECTED_OVERLOAD=). The unmerged MTZ export drops it too. - Everything else that reads reflections leaves an overloaded one out: AcceptReflection (stills merge, per-image scaling), the post-refinement gather, the axial-row sums. - Capture uncertainty: the merge rebuilds each full's variance at the reflection's mean (counting_variance / ModelSigma) and dropped the capture term the combine had put into sigma, so a full extrapolated from part of its rocking curve merged at the weight of a whole one. Fulls now carry it (Obs::capture) and the rebuilt variance adds (capture * <I>)^2, host and device. SHELXL R1 on rugnux's own integration (harness), median fix -> this: citric acid .0648 -> .0420 (XDS .051; 221 events dropped, EXTI 1.02 -> 0.29), HEPES .0396 -> .0381 (184), aspirin 20 keV .0387 -> .0385 (6), aspirin 25 keV .0376 -> .0375 (5); metformin/nidppe/dnba/lalanine/cytidine no overloads, unchanged. YAG .116 -> .128 (87 dropped; its scale loop does not settle either way). Proteins and private subset: see the branch report. Tests: BraggIntegrationEngineCPU_SaturatedPeakIsFlaggedNotDropped (new), BraggIntegrationEngineGPU_MatchesCPU (overloaded flag compared), AcceptReflection_ResolutionLimits, [write_reflections], [large]. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
c3be6c6bcb |
Docs: persistent hot-pixel patches are masked as well
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
70fe5d2af2 |
Docs: the footprint stencil reaches 4 sigma
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
1903b8688d |
Battery: L-alanine is scored against its 100 K ambient-pressure structure
The open-arm L-alanine set's COD reference (2104782) is a 0.2 GPa room-temperature diamond-anvil-cell structure (372 reflections, 43% complete), not the ambient one the docs called it. The set's own cell (5.787 5.940 12.263) is the 100 K ambient form, so the reference is now COD 2311261 (100 K, 5.791 5.944 12.269; Parsons, Flack & Wagner, Acta Cryst. B69 (2013) 249-259). SHELXL's refined R1 does not depend on the starting model (0.0546 vs 0.0524), but the fixed-model R1(F) the battery reports goes from 0.168 to 0.087, so that number now measures the data rather than the pressure difference; cell_dev_pct likewise compares against the right cell. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
4c7d8a0385 |
Merge branch 'dq-sym-screw' into rc174-all
# Conflicts: # docs/CHANGELOG.md |
||
|
|
0c5ac8c8e5 | Merge branch 'dq-sm-scale' into rc174-all | ||
|
|
ac179e549e |
Rotation scaling: reconcile with the ingest partiality fix; no flux on the fulls-only path
Merged dq-sm-absorb, whose ingest fix (corr_ingested carries the recomputed partiality, not the predictor's) repairs the same defect as this branch's unit partial scale on the path without partial scaling. The two did not double-apply - the unit scale rebuilt corr from scratch - but they differ by the incident flux, and measured head to head the flux costs the sparse sweeps: SHELXL R1 on four in-house organic sweeps 0.0459/0.0396/0.0709/0.0413 with it, 0.0421/0.0393/ 0.0697/0.0405 without; on five open small-molecule sets equal or better without (0.0707 -> 0.0660 on one). Only the cubic absorbing sweep prefers it (0.119 vs 0.139): there the background really does fall with the absorbed beam. So the unit partial scale and its device kernel are removed and the ingest fix stands alone; the flux meter's smoothing, which only mattered on that path, is reverted, so the partial-scaling path sees the flux exactly as before. The penalised per-frame scale of the fulls stays. Also restores two characters of CPU_DATA_ANALYSIS_INTEGRATION.md that the previous commit's rewrite had turned from a stray carriage return into a line break. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
4979f8aa68 |
French-Wilson: anisotropic Wilson prior from the fitted anisotropy tensor
The French-Wilson prior of each reflection is now epsilon * K_shell * a(h), with a(h) = exp(-1/2 s^T B s) from the deviatoric tensor AnalyzeAnisotropy already fits (the form it is fitted in) and K_shell = sum(I/eps) / sum(a), so a shell's priors still average to its measured mean. The amplitudes are made isotropically at the merge as before and made again once the tensor exists (full pipeline and --mode scale). Only F/SIGF and F(+)/F(-) change; IMEAN/I(+)/I(-) are bit-identical. Applied whenever a tensor was fitted, with no detection gate: a near-isotropic tensor gives a(h) ~ 1 and the isotropic prior back, and the prior wants the best estimate of <I> along h whatever its cause. Follows ctruncate's anisotropic prior (Ballard & Stein, CCP4); credit in ACKNOWLEDGEMENT.md, CPU_DATA_ANALYSIS.md and at the algorithm. --model scaling (ModelScaling.cpp) was checked: k_overall + symmetry-constrained anisotropic B + flat bulk solvent fitted on the working set, against the same FW F written to the MTZ - as REFMAC/phenix.refine do. No change needed. Evidence (REFMAC 10-cycle restrained refinement of the deposited model, R-free on the depositor's free reflections shared by both data sets; base = rc174 processing, same IMEAN): set base new d set base new d 9rcs 0.3475 0.3494 +0.0019 8qq7 0.4452 0.4503 +0.0051 9yzk 0.3192 0.3171 -0.0021 9hs7 0.2898 0.2465 -0.0433 6yqf 0.4642 0.4543 -0.0099 5nw5 0.3256 0.3206 -0.0050 7n2s 0.3126 0.2998 -0.0128 6z8o 0.2927 0.2892 -0.0035 6qaj 0.3390 0.3038 -0.0352 6moj 0.2756 0.2651 -0.0105 6r72 0.3826 0.3797 -0.0029 7qij 0.3239 0.3140 -0.0099 anisotropic sets: median -0.0075, mean -0.0107, 10/12 better isotropic controls: 5reo -0.0014, 7kcn +0.0003, 6fid +0.0002, 11if 0.0000 rugnux's own --model R-free moves the same way (median about -0.019; 5nw5 +0.006), R_model shell-scaled too; dep_cc_delta unchanged (intensity based). The adoption rule (median gain >= 0.005 on the anisotropic sets, no control worse than +0.002) is met. The two sets that lose are the one with a FLAT resolution signature (8qq7) and 9rcs, where the exp form drives the dead direction's prior to ~0 beyond 3.7 A. For scale: ctruncate's own anisotropic prior on the same merges moved the same REFMAC R-free by a median of only -0.0008 (9hs7 +0.026). Inhouse lyso_x06da_ref, thau_x10sa_0p1deg: every battery metric unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
495f6a97b3 |
Rotation scaling: penalised per-frame scale of the fulls; fulls-only partials get flux and partiality
Three defects in the per-frame scaling of sparse (small-molecule, weak) rotation sweeps: 1. The fulls' per-frame scale pooled sparse frames by their RAW full count, but in a high-symmetry group with many systematic absences most usable counts stayed under the minimum, so most frames were never fitted and kept corr = 1 beside pinned, fitted frames (two gauges in one reference). The release step then read the gauge offset (a constant 134x on a cubic Ia-3d small-molecule sweep) as signal and gave each frame exp(kept_f * 4.9) - the e^-5 errors on a quarter of the frames, R1 0.62. A fixed box window also cannot follow a 100x absorption ramp over a few degrees, and frames under the credible floor, exempt from the window, ran away to 1e-7. Now each round fits every frame on its own fulls (no pooling, no minimum), and the scale is a penalised second-difference smoother of log G (Whittaker/Eilers), each frame at the information of its fit, lambda by cross-validation over blocks one rocking curve wide (interleaved single frames leak through shared rocking curves and chose to follow every frame). After convergence the existing ShrinkToRestrained hands back the per-frame deviation its neighbour shares. Pooling and the box window are gone from the fulls loop; the partials loop is unchanged. 2. With partial scaling off (< 50 rocking events per frame) the partials kept the integration-time corr: no incident-flux correction and not the partiality of the ingest-smoothed geometry, because only the partial scaling loop rewrote corr. They now get corr = prescaling_corr / partiality at G = 1 (host, and a device kernel). 3. The flux meter (per-frame mean background) jumped 30x between neighbouring frames of a sparse sweep - on a few reflections it measures which reflections the frame holds. It is read through the same smoother at the precision of each frame's mean. SHELXL R1(>4sig) against the published structures, rc174-cand -> this, on the in-house small-molecule sweeps: cubic Ia-3d 0.615 -> 0.119 (XDS 0.088); four organic sweeps (monoclinic / orthorhombic) 0.0515 -> 0.0459, 0.0451 -> 0.0396, 0.0747 -> 0.0709, 0.0452 -> 0.0413; ISa up to 11.6 -> 31. Raw flux instead of smoothed costs 0.002-0.003 R1 on the first two. A weak, decaying protein sweep on the fulls-only path: ISa 6.7 -> 27.1. CPU and GPU paths agree. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
20d5146544 |
Docs: changelog and decisions page for the two screw-axis changes
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
fc4bbab8e2 |
v1.0.0-rc.174
Build Packages / Create release (push) Successful in 15s
Build Packages / build:viewer:macos-arm64:nocuda (push) Successful in 3m20s
Build Packages / build:rugnux:macos-arm64:nocuda (push) Successful in 2m33s
Build Packages / build:rugnux:linux-aarch64:cuda (push) Successful in 8m40s
Build Packages / build:rugnux:linux-x86_64:cuda (push) Successful in 10m17s
Build Packages / build:viewer:linux-x86_64:nocuda (push) Successful in 10m43s
Build Packages / build:viewer:linux-x86_64:cuda (push) Successful in 12m57s
Build Packages / build:jfjoch:rocky8:nocuda (push) Successful in 17m41s
Build Packages / build:viewer:windows-x86_64:nocuda (push) Failing after 18m6s
Build Packages / build:jfjoch:rocky9:nocuda (push) Successful in 18m1s
Build Packages / build:viewer:windows-x86_64:cuda (push) Failing after 20m57s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 24m13s
Build Packages / build:jfjoch:ubuntu2404:nocuda (push) Successful in 18m42s
Build Packages / build:jfjoch:ubuntu2204:nocuda (push) Successful in 21m13s
Build Packages / Generate python client (push) Successful in 33s
Build Packages / build:jfjoch:rocky8:cuda-sls9 (push) Successful in 20m40s
Build Packages / Build documentation (push) Successful in 1m10s
Build Packages / build:rugnux:windows-x86_64:cuda (push) Failing after 14m6s
Build Packages / build:jfjoch:rocky9:cuda-sls9 (push) Successful in 21m1s
Build Packages / build:jfjoch:rocky8:cuda (push) Successful in 19m17s
Build Packages / build:jfjoch:rocky9:cuda (push) Successful in 19m44s
Build Packages / build:jfjoch:ubuntu2204:cuda (push) Successful in 16m45s
Build Packages / build:jfjoch:ubuntu2404:cuda (push) Successful in 13m36s
Build Packages / Unit tests (push) Failing after 1h18m4s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
e72236b08d | Merge branch 'battery-drop-7udi' into rc174-cand | ||
|
|
9c0a8c740c |
Battery: drop 7UDI from the open arm
Its deposited sweep lacks 40 deg (frames 561-720 are not in the archive; the depositors processed it as two sweeps), so it tests gap handling rather than processing. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
f0349949d6 |
Battery: ten open-arm sets from under-represented facilities and beamlines
SRS Daresbury PX10.1 (6RYM), EMBL Hamburg DORIS X13 (7BGU), NSLS X29A and X25 (8V4J, 8V2T), ESRF ID14-2 (5JK4), Australian Synchrotron MX2 (6CS9), CLSI 08B1-1 (7UDI), SSRF BL17UM (9LXL), MAX IV BioMAX (9S02), ALBA XALOC (6GVK) - marCCD, ADSC (Quantum 4/210r/315), PILATUS and EIGER2 files. Each read and processed with the current rugnux; 7BGU (C2 imposed on a P1 lattice) and 7UDI (P41 under-called to P2) disagree with the deposition. Multi-sweep archives pinned to one sweep. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
86ca86f1d1 | Merge branch 'hkl-unmerged-fulls' into overnight-cint | ||
|
|
a6378800b8 |
Footprint integration: GPU/CPU parity sections, docs, changelog
BraggIntegrationEngineGPU_MatchesCPU gains three footprint sections (spaced, crowded under overlap exclude, with the radial background correction): both engines classify the summation ellipse, the grown ring and the footprint Gaussian alike. Integration chapter and changelog describe the measured footprint. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
9874db5d7f |
rugnux: .hkl holds the unmerged scaled fulls on rotation data
The SHELX HKLF 4 file now has one record per full reflection - its partials summed, the per-frame scale and every correction applied, sigma(I) as the merge weighted it - at the index it was measured at, not averaged with its equivalents: the chemical crystallographer's convention, so SHELXL computes Rint and Rsigma itself. Outliers the merge rejected and fulls beyond its resolution cut are left out; no batch column (it would select a BASF scale in SHELXL). The engine hands the fulls back only for a merge that may be written (RotationScaleMerge::SetExportScaledFulls), so the search merges, the pre-pass and the P1 cross-check carry no copy; the fulls follow the same relabelling as the merged reflections (merge_to_written). Stills keep the merged file. --mode scale writes the unmerged form too. Validation: p.mtz md5 unchanged on myob/cytc/thau (GPU). SHELXL on the same runs, merged-old vs unmerged-new (COD models, harness /data/tmp/sm_shared): aspirin 20 keV Rint 0 -> 0.071, Rsigma 0.036 -> 0.043, R1 0.0964 -> 0.0969, wR2 0.312 -> 0.310, GooF 1.53 -> 1.47; HEPES 20 keV Rint 0 -> 0.163, Rsigma 0.057 -> 0.068, R1 0.0903 -> 0.0897, wR2 0.318 -> 0.263, GooF 1.57 -> 1.10; the "input data appear to be merged" warning is gone. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5K8jvPPbmCrbqnWkddTuB |
||
|
|
2c97e654ed |
Battery: add two L-cystine sweeps (in-house arm); say which open sets are pink beam
Build Packages / Create release (push) Successful in 16s
Build Packages / build:viewer:linux-x86_64:nocuda (push) Successful in 11m20s
Build Packages / build:rugnux:linux-x86_64:cuda (push) Successful in 11m38s
Build Packages / build:viewer:linux-x86_64:cuda (push) Successful in 13m27s
Build Packages / build:rugnux:linux-aarch64:cuda (push) Successful in 7m45s
Build Packages / build:viewer:windows-x86_64:nocuda (push) Successful in 18m31s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 22m9s
Build Packages / build:viewer:windows-x86_64:cuda (push) Successful in 24m2s
Build Packages / build:jfjoch:rocky8:nocuda (push) Successful in 13m45s
Build Packages / build:jfjoch:ubuntu2204:nocuda (push) Successful in 16m17s
Build Packages / build:jfjoch:ubuntu2404:nocuda (push) Successful in 15m52s
Build Packages / build:jfjoch:rocky9:nocuda (push) Successful in 17m3s
Build Packages / build:rugnux:windows-x86_64:cuda (push) Successful in 14m1s
Build Packages / build:jfjoch:rocky8:cuda-sls9 (push) Successful in 16m32s
Build Packages / Generate python client (push) Successful in 1m16s
Build Packages / Build documentation (push) Successful in 55s
Build Packages / build:jfjoch:rocky9:cuda-sls9 (push) Successful in 16m45s
Build Packages / build:jfjoch:rocky8:cuda (push) Successful in 15m32s
Build Packages / build:jfjoch:ubuntu2404:cuda (push) Successful in 15m33s
Build Packages / build:jfjoch:ubuntu2204:cuda (push) Successful in 15m55s
Build Packages / build:jfjoch:rocky9:cuda (push) Successful in 17m21s
Build Packages / Unit tests (push) Successful in 1h20m15s
Build Packages / build:viewer:macos-arm64:nocuda (push) Successful in 3m12s
Build Packages / build:rugnux:macos-arm64:nocuda (push) Successful in 2m35s
lcystine_x10sa_20keV and lcystine_x10sa_25keV are scored against the literature structure only (hexagonal L-cystine, P 61 2 2, COD 5000005, Oughton & Harrison 1959): XDS indexes under 10% of the spots of either sweep, with the cell supplied and with the spot range cut to 150 frames, so there is no CORRECT.LP to take a reference from. On the current build the 25 keV sweep passes (P 61 2 2, cell within 0.5%) and the 20 keV sweep finds no lattice. EXTERNAL_TEST_DATA.md: none of the open-arm datasets is pink beam; every PDB record is single-wavelength (9Q41 used a multilayer monochromator). The pink-beam sets are the in-house ones. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> |
||
|
|
f06780bd91 |
Battery: record each set's wavelength; add the rc173 battery report to docs
Build Packages / Create release (push) Successful in 17s
Build Packages / build:rugnux:linux-aarch64:cuda (push) Successful in 8m33s
Build Packages / build:rugnux:linux-x86_64:cuda (push) Successful in 9m56s
Build Packages / build:viewer:linux-x86_64:nocuda (push) Successful in 11m3s
Build Packages / build:viewer:linux-x86_64:cuda (push) Successful in 12m59s
Build Packages / build:jfjoch:rocky8:nocuda (push) Successful in 15m42s
Build Packages / build:jfjoch:rocky9:nocuda (push) Successful in 16m35s
Build Packages / build:viewer:windows-x86_64:nocuda (push) Successful in 18m40s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 24m0s
Build Packages / build:viewer:windows-x86_64:cuda (push) Successful in 24m16s
Build Packages / build:jfjoch:ubuntu2204:nocuda (push) Successful in 20m58s
Build Packages / build:jfjoch:ubuntu2404:nocuda (push) Successful in 19m59s
Build Packages / Generate python client (push) Successful in 48s
Build Packages / build:jfjoch:rocky8:cuda-sls9 (push) Successful in 21m8s
Build Packages / Build documentation (push) Successful in 1m25s
Build Packages / build:rugnux:windows-x86_64:cuda (push) Successful in 13m55s
Build Packages / build:jfjoch:rocky9:cuda-sls9 (push) Successful in 21m32s
Build Packages / build:jfjoch:rocky8:cuda (push) Successful in 19m10s
Build Packages / build:jfjoch:rocky9:cuda (push) Successful in 19m54s
Build Packages / build:jfjoch:ubuntu2204:cuda (push) Successful in 19m47s
Build Packages / build:jfjoch:ubuntu2404:cuda (push) Successful in 19m38s
Build Packages / Unit tests (push) Successful in 1h46m11s
Build Packages / build:viewer:macos-arm64:nocuda (push) Successful in 3m9s
Build Packages / build:rugnux:macos-arm64:nocuda (push) Successful in 2m41s
Every open and in-house manifest row now carries `wavelength` (A), taken from WAVELENGTH in rugnux's own p_report.txt of the latest run of that set (the full rc173 run 20260929-2003 plus the two 10-02 runs for the sets added since). Descriptive only; the scorer ignores it. docs/BATTERY_REPORT.md is report.md of the full rc173 open + in-house run (210 sets), verbatim, to be polished. The private arm runs separately and has its own report, so nothing from it appears here. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> |
||
|
|
dcc710a226 |
Battery: eight more home-source sets (open arm), five small molecules (in-house arm)
Build Packages / Create release (push) Successful in 16s
Build Packages / build:rugnux:linux-aarch64:cuda (push) Successful in 8m21s
Build Packages / build:rugnux:linux-x86_64:cuda (push) Successful in 10m13s
Build Packages / build:viewer:linux-x86_64:nocuda (push) Successful in 10m19s
Build Packages / build:viewer:linux-x86_64:cuda (push) Successful in 12m44s
Build Packages / build:jfjoch:rocky8:nocuda (push) Successful in 15m37s
Build Packages / build:jfjoch:rocky9:nocuda (push) Successful in 16m59s
Build Packages / build:viewer:windows-x86_64:nocuda (push) Successful in 18m47s
Build Packages / build:viewer:windows-x86_64:cuda (push) Successful in 24m11s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 24m43s
Build Packages / build:jfjoch:ubuntu2204:nocuda (push) Successful in 18m17s
Build Packages / build:jfjoch:ubuntu2404:nocuda (push) Successful in 19m32s
Build Packages / Generate python client (push) Successful in 48s
Build Packages / build:jfjoch:rocky8:cuda-sls9 (push) Successful in 21m3s
Build Packages / Build documentation (push) Successful in 1m26s
Build Packages / build:rugnux:windows-x86_64:cuda (push) Successful in 14m5s
Build Packages / build:jfjoch:rocky9:cuda-sls9 (push) Successful in 20m50s
Build Packages / build:jfjoch:rocky8:cuda (push) Successful in 18m8s
Build Packages / build:jfjoch:rocky9:cuda (push) Successful in 18m38s
Build Packages / build:jfjoch:ubuntu2204:cuda (push) Successful in 14m34s
Build Packages / build:jfjoch:ubuntu2404:cuda (push) Successful in 13m11s
Build Packages / Unit tests (push) Successful in 1h19m13s
Build Packages / build:viewer:macos-arm64:nocuda (push) Successful in 3m37s
Build Packages / build:rugnux:macos-arm64:nocuda (push) Successful in 2m44s
Open arm, all IRRMC, single Cu K-alpha sweeps on Rigaku Saturn CCDs read through the d*TREK SMV path: 3mc4 (H 3), 3meb (P 1 21 1, Saturn 944, overflow ratio 32), 3p85 (P 63 2 2), 3r6o (I 41), 5uth (P 31 2 1), 5vml (P 42 21 2), 6cee and 6v2r (P 21 21 21 / P 41 21 2, Saturn A200, unbinned 2048x2048, 0.1 mm pixels). Detector 2theta spans -10 to +10 deg. Run 20261002-1326_84228b_home-source-12: all pass except 3r6o, called I 4 2 2 against the deposited I 41 with twinning suspected (<|L|> 0.32). Two further candidates (3r6h, 3sgw) were dropped: what the repository lists as one dataset is two sweeps under one file template, split by a phi change, which the reader refuses. In-house arm: aspirin (20 and 25 keV), anhydrous citric acid, HEPES and YAG, measured at X10SA. The reference is XDS's CORRECT.LP (refs --write) with the space group taken from the literature as ref_override, because XDS reports only Sohncke groups; each override cites its COD entry and paper. Run 20261002-1354_84228b_small-molecules-inhouse: four pass, including HEPES as P b c a where XDS has P 21 21 21; YAG is called I 41 3 2 against I a -3 d (both programs merge it poorly, rugnux CC1/2 0.40, XDS ISa 3.2). EXTERNAL_TEST_DATA.md gains the eight depositions (DOIs checked on DataCite) and updated counts; the battery README lists the small-molecule standards and has the current count of symlinked open-arm directories (42). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> |
||
|
|
ac7c6af5a8 |
Read Rigaku d*TREK SMV images; add two home-source sets to the open battery
The SMV reader only knew the ADSC vocabulary, so a Rigaku Saturn frame was recognised as SMV and then refused for want of PIXEL_SIZE. A header naming DETECTOR_NAMES is now read as d*TREK: - pixel size and the point of normal incidence from <det>SPATIAL_DISTORTION_INFO; - image directions from <det>DETECTOR_VECTORS combined by <det>SPATIAL_DISTORTION_VECTORS, matched to a DetectorOrientation (a Saturn 944+ image is mirrored and turned a quarter, so the hand is preserved); - distance and the detector circles (2theta etc.) from <det>GONIO_*, composed into PONI angles; spindle from ROTATION_VECTOR, angles from ROTATION; - wavelength from SCAN_WAVELENGTH, or the second number of SOURCE_WAVELENGTH (the first is a count - the old NumAny fallback would have read 1.0 A); - pixels above 32767 decoded as (v - 32768) * RAXIS_COMPRESSION_RATIO. dxtbx's FormatSMVRigakuSaturnNoTS, which claims headers without DTREK_DATE_TIME, ignores the distortion vectors; on a Saturn 944+ sweep that puts the spindle 90 degrees off (DIALS: 12% indexed vs 98% with the vectors applied, at the deposited cell). The arm geometry is confirmed by the data: the refined direct beam of a 2theta = 10 deg sweep lands at x = 621.1 against 621.6 predicted. The anomalous map peaks at 11.5 sigma on the two K+ and 6-7 sigma on S and P, so the hand is right. Battery, open arm: 5cc8 (rotating anode, Saturn 944+ SMV, 2theta = 10 deg sweep) and 9jq9 (Ga K-alpha liquid-metal jet, PILATUS3 1M miniCBF, single 450 deg sweep), both IRRMC. Run 20261001-2132_84228b_dtrek-home-source: 9jq9 passes (P 21 21 21, 1.65 A); 5cc8 merges to 1.53 A at the deposited cell but is called P 21 21 21 against the deposited P 21 21 2 (screw evidence on 00l 68-78 nats, tNCS at (1/2,1/2,0.11)) - left failing, not yet adjudicated. The Saturn gain (~5 ADU/photon) is not in the header and is not modelled. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> |
||
|
|
84228bf8be |
v1.0.0-rc.173 (#83)
Build Packages / Create release (push) Successful in 24s
Build Packages / build:viewer:macos-arm64:nocuda (push) Successful in 3m29s
Build Packages / build:rugnux:macos-arm64:nocuda (push) Successful in 2m43s
Build Packages / build:rugnux:linux-aarch64:cuda (push) Successful in 8m27s
Build Packages / build:rugnux:linux-x86_64:cuda (push) Successful in 9m53s
Build Packages / build:viewer:linux-x86_64:nocuda (push) Successful in 9m58s
Build Packages / build:viewer:linux-x86_64:cuda (push) Successful in 11m22s
Build Packages / build:jfjoch:rocky8:nocuda (push) Successful in 13m39s
Build Packages / build:viewer:windows-x86_64:nocuda (push) Successful in 18m37s
Build Packages / build:jfjoch:rocky9:nocuda (push) Successful in 16m32s
Build Packages / build:viewer:windows-x86_64:cuda (push) Successful in 24m11s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 25m30s
Build Packages / build:jfjoch:ubuntu2404:nocuda (push) Successful in 19m3s
Build Packages / build:jfjoch:ubuntu2204:nocuda (push) Successful in 20m23s
Build Packages / build:jfjoch:rocky8:cuda-sls9 (push) Successful in 19m41s
Build Packages / Generate python client (push) Successful in 50s
Build Packages / Build documentation (push) Successful in 1m16s
Build Packages / build:jfjoch:rocky9:cuda-sls9 (push) Successful in 21m0s
Build Packages / build:jfjoch:rocky8:cuda (push) Successful in 18m38s
Build Packages / build:rugnux:windows-x86_64:cuda (push) Successful in 14m33s
Build Packages / build:jfjoch:rocky9:cuda (push) Successful in 17m55s
Build Packages / build:jfjoch:ubuntu2204:cuda (push) Successful in 20m50s
Build Packages / build:jfjoch:ubuntu2404:cuda (push) Successful in 18m38s
Build Packages / Unit tests (push) Successful in 1h46m14s
* jfjoch_broker: Optional per-dataset authentication - statistics, images and plots can require a bearer token, which jfjoch_viewer supports. * jfjoch_viewer: Dark mode and a theme-matched colour scheme, a magnifier panel, and simpler contrast and background controls. * Rugnux: Multiple performance improvements on GPU and CPU (CPU-only processing up to 40% faster, faster image decoding on ARM), with unchanged results. * Rugnux: `--model` rigid-body refinement runs on the GPU, and the model-validation check is faster and more reliable. * Rugnux: Improved scaling and merging - error model, outlier rejection, absorption correction and French-Wilson amplitudes now agree more closely with XDS and ctruncate. * Rugnux: Improved integration - radial background on powder and ice rings, crowded rotation data keep their reflections, and CPU-only builds integrate large unit cells as GPU builds do. * Rugnux: More robust detector geometry - measured beam centre, X-ray bandwidth and goniometer rate, and geometry refinement accepted only on significant evidence. * Rugnux: Merged files are written in the standard setting, or in the setting of a reference MTZ, structure-factor mmCIF or model, with its free-R flags. * Rugnux: Richer report - ice and powder rings, further lattices, superstructure candidates and mosaicity, with warnings worded as prompts to check. * Rugnux: Clear error messages when a data set needs more GPU or host memory than is available. Reviewed-on: #83 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch> |
||
|
|
6dfe065365 |
v1.0.0-rc.172 (#82)
Build Packages / Create release (push) Successful in 16s
Build Packages / build:rugnux:aarch64 (cross) (push) Successful in 8m27s
Build Packages / build:rugnux-tgz (x86_64) (push) Successful in 9m15s
Build Packages / build:viewer-tgz:cpu (push) Successful in 10m11s
Build Packages / build:viewer-tgz:cuda (push) Successful in 12m6s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 15m44s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 16m1s
Build Packages / build:windows:nocuda (push) Successful in 17m29s
Build Packages / build:windows:cuda (push) Successful in 19m58s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 24m7s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 19m8s
Build Packages / build:rugnux:windows (push) Successful in 10m58s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 20m46s
Build Packages / Generate python client (push) Successful in 53s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 20m13s
Build Packages / Build documentation (push) Successful in 1m36s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 19m57s
Build Packages / build:rpm (rocky8) (push) Successful in 18m7s
Build Packages / build:rpm (rocky9) (push) Successful in 18m54s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 19m32s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 17m30s
Build Packages / Unit tests (push) Successful in 1h39m2s
* Fixed `jfjoch_broker` cancelling every data collection with a CUDA "out of memory" error after long operation: GPU memory no longer leaks with each collection. * Rugnux scales a rotation sweep until the per-frame scales settle instead of for a fixed three rounds, and says so when they did not - merged intensities, and the space group, resolution cut and frame rejection read off them, change accordingly; `--scaling-iterations` is now the cap on that loop (default 100). * Rugnux places every frame of a marCCD, SMV or miniCBF series at the spindle angle its own header states, so a series with missing frames, or with angles written modulo 360, is no longer read at the wrong geometry or refused. * Every rotation run writes two diagnostic files beside its reflections: `<prefix>_detector.jpg`, the detector projection with the pixel mask and the detected beam-stop shadow drawn on it, and `<prefix>_plot.txt`, one row per image. Reviewed-on: #82 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch> |
||
|
|
30b6800289 |
v1.0.0-rc.171 (#81)
Build Packages / build:windows:nocuda (push) Successful in 17m20s
Build Packages / build:windows:cuda (push) Successful in 19m52s
Build Packages / build:viewer-tgz:cpu (push) Successful in 9m38s
Build Packages / build:viewer-tgz:cuda (push) Successful in 11m18s
Build Packages / build:rugnux-tgz (x86_64) (push) Successful in 9m34s
Build Packages / build:rugnux:aarch64 (cross) (push) Successful in 5m42s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 20m33s
Build Packages / Create release (push) Successful in 33s
Build Packages / build:rugnux:windows (push) Successful in 12m0s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 15m42s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 14m59s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 16m8s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 14m35s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 16m55s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 16m58s
Build Packages / Generate python client (push) Successful in 16s
Build Packages / build:rpm (rocky8) (push) Successful in 15m21s
Build Packages / Build documentation (push) Successful in 54s
Build Packages / build:rpm (rocky9) (push) Successful in 16m23s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 12m2s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 10m6s
Build Packages / Unit tests (push) Successful in 1h10m26s
* Rugnux: basic support for CCD images (marCCD, SMV) and for gzipped miniCBF. * `jfjoch_viewer`: opens the CCD formats, and fixes to the dataset plots. * Documentation updates. Reviewed-on: #81 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch> |
||
|
|
cb5a2f032a |
v1.0.0-rc.170 (#80)
Build Packages / Create release (push) Successful in 23s
Build Packages / build:rugnux-tgz (x86_64) (push) Successful in 10m6s
Build Packages / build:rugnux:aarch64 (cross) (push) Successful in 9m6s
Build Packages / build:viewer-tgz:cpu (push) Successful in 11m15s
Build Packages / build:viewer-tgz:cuda (push) Successful in 12m21s
Build Packages / build:windows:nocuda (push) Successful in 17m9s
Build Packages / build:windows:cuda (push) Successful in 19m49s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 25m42s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m0s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 14m54s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 17m7s
Build Packages / build:rugnux:windows (push) Successful in 10m47s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 17m4s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 17m8s
Build Packages / Generate python client (push) Successful in 45s
Build Packages / Build documentation (push) Successful in 1m45s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 19m23s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 19m20s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 18m43s
Build Packages / build:rpm (rocky8) (push) Successful in 19m31s
Build Packages / build:rpm (rocky9) (push) Successful in 20m16s
Build Packages / Unit tests (push) Successful in 1h41m19s
* Fixed a `jfjoch_broker` crash during indexing: sorting no longer misbehaves on non-finite values, and GPU FFT indexer kernel launches are now error-checked. * rugnux needs about a third less peak memory to scale, merge and post-refine rotation data, with identical results. * `rugnux --model`: the placed coordinate file carries the space group its own coordinates obey, and says so when that is not the group the reflection files beside it carry. * `jfjoch_viewer`: fixes in the dataset plots, inspector and layout; spot markers lose their black outline by default (a checkbox under "Image features" restores it) and the highest-pixel markers are white boxes around the pixel. Reviewed-on: #80 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch> |