Files
MX_Pmodule/careless/README.md
T
duan_jandClaude Fable 5 c3c38856b3 Docs overhaul: quickstart, current commands everywhere, credits
Main README: clone/SSH/branching quickstart with full /das paths,
--tmpdir/--distdir as part of the standard build command (do not fill
/var/tmp or $HOME) with cleanup for defaults, tips deduplicated against
module READMEs, old-system references removed, resource links and
tutorial acknowledgements added.

Module READMEs: purge outdated recipes repo-wide — Pmodules/1.1.20 and
2.0.0 plus ./build replaced by modbuild/2.1.3 invocations; the cctbx
unbound-variable fix moved from the main README into phenix and DIALS
READMEs where it belongs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 22:18:37 +02:00

62 lines
2.1 KiB
Markdown

# careless
Scaling and merging of X-ray diffraction data with approximate Bayesian
inference (variational merging), built on TensorFlow.
- Upstream: https://github.com/rs-station/careless
- License: MIT
## How it is built
Upstream recommends a fresh conda env, but repo.anaconda.com is not
reachable from Ra, so the build uses uv instead: it fetches a standalone
Python 3.12 into `$PREFIX/python` (upstream supports >=3.9,<3.13), creates
`$PREFIX/venv`, and runs `uv pip install careless[cuda]==<version>` into
it. The `[cuda]` extra pulls the NVIDIA libraries as pip wheels, so the
same install works on GPU and CPU-only Ra nodes.
`uv` must be on PATH on the build host (e.g. `pip install --user uv`).
Loading the module puts the venv's `bin/` on `PATH` (the `careless`
command is directly available, no activation needed) and sets
`CARELESS_ENV` to the venv path.
## Verifying the install
Run on a Ra login node after building (in order, cheap to expensive):
```sh
# 1. module is visible and loads
module search careless
module load careless/<version>
# 2. modulefile wiring: PATH + CARELESS_ENV
which careless # -> .../careless/<version>/venv/bin/careless
echo $CARELESS_ENV # -> .../venv
# 3. venv is self-contained: must resolve inside the module PREFIX,
# not the builder's home cache (which may be cleaned later)
readlink -f "$CARELESS_ENV/bin/python"
# 4. CLI entry point; imports the full TensorFlow stack
careless --help # usage text, no traceback
# 5. installed version matches the one requested
"$CARELESS_ENV/bin/python" -c "import careless; print(careless.__version__)"
# 6. GPU pickup (GPU node only; [] on a CPU node is fine)
"$CARELESS_ENV/bin/python" -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
```
Optional end-to-end smoke test with a small unmerged mtz (a few seconds;
proves the TF graph builds and the optimizer steps):
```sh
careless mono dHKL <file.mtz> /tmp/careless_test --iterations 10
```
## Adding a new version
Add the version under `versions:` in `files/config.yaml`, then on a Ra
login node: `modbuild build <version>` (modbuild/2.1.3).