Image analysis: the beam-stop size rule, defective-pixel finding on every run (hot/unstable rules under rotation only, CCD included), the adaptive threshold keeping the local SNR test, the live stills analysis forcing it on the FPGA workflow, and what 0 does to each ice gate. Resolution cutoff extends by a tenth of the kept range; time-dependent absorption bins per 10 degrees; outlier rejection and joint multi-sweep merging described; the sub-lattice hypothesis of the rotation first pass described. Stills keep the hands under -A; SWEEP_REFERENCE is the finest-resolution sweep; ffbidx is vendored; calibrants other than ice are cells with reflection conditions. Writer: output files are checked at START and PREFLIGHT; republishing is ZeroMQ-only. Deployment: packages for el8/el9/Ubuntu, the installed frontend path, optional port. FFTW is fetched, not a host library; jfjoch_portable_test and the four unlisted tools named; rugnux installs ACKNOWLEDGEMENT.md; battery.py --gpulock is a `run` flag. The update_monomers.py path is given in full in the notices (docs copy regenerated with update_version.sh's step). Co-Authored-By: Claude Fable <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HVeDQsU5a8AJUdJPgWevAK
4.1 KiB
Tools
Besides the main services (jfjoch_broker,
jfjoch_writer, jfjoch_viewer), the repository ships a
number of command-line tools. Each prints its own usage when run without arguments (rugnux has no -h).
Data analysis
Rugnux
Offline CLI tool that runs the full crystallographic analysis pipeline (spot finding, indexing,
integration, scaling/merging) on a stored HDF5 dataset, producing a _process.h5 file and, when
merging, reflection files. Merging is on by default (--no-merge disables it). --mode picks what a
run does: mx (the above, the default), azint (only azimuthal integration, no spot
finding/indexing), scale (re-scale/merge the already-integrated reflections in a _process.h5
without re-integrating) or calibration (detector geometry from a calibrant's powder rings, written
as <prefix>.poni and <prefix>.json). See Rugnux.
rugnux installs on its own, as the rugnux package or as a standalone archive — see
Installing Rugnux.
jfjoch_extract_hkl
Extracts reflections (HKL list) from a Jungfraujoch master file; can sum the same HKL across
neighbouring images and compare against an XDS INTEGRATE.HKL reference. A developer utility: it is
built from source but is not installed into any package.
jfjoch_recompress
Re-compresses /entry/data/data of a Jungfraujoch _data_NNNNNN.h5 file from bitshuffle/LZ4 to
bitshuffle/Zstandard; every other object in the file is reproduced unchanged.
rugnux_refine_test
Runs the restrained refinement of a model against a rugnux merged MTZ without processing anything, for measuring the refinement on finished runs against another program on the same files. Prints the outcome and one JSON line for scripts.
FPGA / PCIe card management
jfjoch_pcie_status
Prints detailed status information about the card. Safe to run during data collection:
./jfjoch_pcie_status /dev/jfjoch0
jfjoch_pcie_net_cfg
Reads and modifies the network configuration of the card's interfaces:
jfjoch_pcie_net_cfg <device name>
Read configuration for all network interfaces of a device
jfjoch_pcie_net_cfg <device name> <if number>|fgen
Read configuration for a particular network interface / internal frame generator
jfjoch_pcie_net_cfg <device name> <if number>|fgen ipv4 <IPv4 address>
Set IPv4 address for a particular network interface / internal frame generator
jfjoch_pcie_net_cfg <device name> <if number>|fgen direct 0|1
Set direct mode for a particular network interface / internal frame generator
jfjoch_pcie_net_cfg <device name> <if number>|fgen clear
Clear Ethernet counters for a particular network interface / internal frame generator
jfjoch_pcie_clear_net_counters
Resets the card's Ethernet, UDP and ICMP packet counters (which otherwise run from power-on):
./jfjoch_pcie_clear_net_counters /dev/jfjoch0
Testing, benchmarking and simulation
jfjoch_udp_simulator
UDP packet simulator used to test the Jungfraujoch FPGA receiver.
jfjoch_fpga_test
Exercises and benchmarks the FPGA data path and receiver. With -H it runs the high-level
synthesis C model on the CPU, so no FPGA device is required.
jfjoch_lite_perf_test
Performance test of the lite (CPU/GPU) analysis path — spot finding, indexing and optional file writing.
jfjoch_hdf5_test
Tests single-threaded HDF5 writer performance.
jfjoch_simplon_test
Minimal test client for a DECTRIS SIMPLON detector API.
jfjoch_stream2_replay
Replays a stored dataset as the image stream of a DECTRIS detector (a ZeroMQ PUSH socket the broker's DECTRIS receiver connects to): start message, every image at the given rate, end message. With a stand-in for the detector's control interface the broker then runs a real collection with no detector.
jfjoch_stills_gpu_replay
Replays the frames of a stored serial collection through the broker's GPU analysis of converted JUNGFRAU frames: the pre-pass on the first images, then every frame analysed with the beam centre and mask it decided. Reports the pre-pass, the indexed fraction and the sustained rate.