Commit Graph
6 Commits
Author SHA1 Message Date
leonarski_fandClaude Opus 5.5 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>
2026-10-02 16:27:52 +02:00
leonarski_fandClaude Opus 5.5 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>
2026-10-02 16:06:13 +02:00
leonarski_fandClaude Opus 5.5 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>
2026-10-02 13:57:30 +02:00
leonarski_fandClaude Opus 5.5 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>
2026-10-01 21:44:44 +02:00
leonarski_f 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>
2026-09-29 15:57:32 +02:00
leonarski_f 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>
2026-09-22 06:48:37 +02:00