QSM-CI
September 10, 2026 · View on GitHub
An open benchmarking platform and leaderboard for Quantitative Susceptibility Mapping (QSM) reconstruction.
Submit a QSM algorithm — in any language, as a container — and QSM-CI runs it on standardized data, scores it against ground truth, and publishes the result to an interactive leaderboard. Every published algorithm gets a citable Zenodo DOI and can be run by anyone with one command.
→ https://qsmxt.github.io/QSM-CI
- Results — per-stage tables, the background-removal × dipole-inversion combination matrix, and findings, with an interactive volume viewer.
- Run an algorithm — locally or from a workflow engine (nipype, Pydra, CWL, Snakemake, Nextflow).
- Submit yours — open a pull request adding a folder
under
algorithms/.
Run an algorithm
pip install qsm-ci
qsm-ci list # the published algorithms you can run
qsm-ci run sharp-qsmrs --totalfield tf.nii.gz --mask mask.nii.gz
Algorithms are fetched from Zenodo and run in their pinned container, so results are reproducible. See the running guide for details.
Submit an algorithm
A submission is a folder under algorithms/<slug>/ — your run.sh, a stage: declaration, and a
container environment — reading and writing canonical artifacts (all fields and χ in ppm). Your
code is mounted, not baked. QSM is scored stage-aware (field-mapping → background removal → dipole
inversion, plus combined spans), both isolated and composed with other stages.
Start from the Submit guide; the full rules are in CONTRACT.md and the machine-readable stages.yml. MATLAB is welcome via the license-free MATLAB Runtime.
Repository layout
| Path | What it is |
|---|---|
algorithms/<slug>/ | One submission each |
qsm_ci/ | The qsm-ci CLI (published to PyPI) |
eval/ | qsm-eval — the Python scorer (metrics ported from QSM.rs) |
scripts/pipeline.py | Isolated + composed evaluation runner |
web/, results/index.json | The leaderboard site and the scores that feed it |
CONTRACT.md, stages.yml | The submission contract and stage registry |