Evidence
The runnable backing for every claim in these docs.
When a tutorial says neuroim catches a mistake that raw nibabel + numpy would let through, this page is where that claim is checked. Each row is one neuroimaging task implemented both ways under examples/scenarios/, with a pytest file that runs the comparison.
You don’t need to read these to use the library — they exist so the claims in the tutorials are verifiable rather than asserted. Every public feature has a scenario, and the table below is regenerated from the scenario reports each time the docs are built, so it stays in step with the code.
| # | Scenario | Verdict | Report |
|---|---|---|---|
| 01 | Scenario 01 — MNI Spotlight | Win on read-time, provenance, and total line count after the PAIN-1 and PAIN-3 fixes. | REPORT |
| 02 | Scenario 02 — ROI mean time series | Win on contract semantics; net wash on lines. | REPORT |
| 02 | Scenario 02 — Seed-Sphere Mean (RENUMBERED to 03) | — | REPORT |
| 03 | Scenario 03 — Seed-Sphere Mean | Clean win on every axis | REPORT |
| 04 | Scenario 04 – Temporal SNR Map | Clean win on every axis (after S04 PAIN-1/PAIN-2 landed). | REPORT |
| 05 | Scenario 05 — receipts across the IO boundary | Originally falsified the mission claim that ME-9 alone is sufficient; now fixed and guarded. | REPORT |
| 06 | Scenario 06 Report: Public Seed-To-Voxel Correlation | This is a credibility-gate win rather than a bespoke toy win. The computation is the same correlation math as the baseline, but neuroim makes the spatial con… | REPORT |
| 07 | Scenario 07 — Multi-subject concat | Win on contract semantics; an ME-9 chain-prefix gap surfaced adjacent to the scenario was fixed in the same iteration. | REPORT |
| 08 | Scenario 08 — Pickle / multiprocessing handoff | Win on inspectability; neutral on numeric work. | REPORT |
| 09 | Scenario 09 — Native-to-template provenance | Originally falsified inspectability for a careful-user workflow; now fixed and guarded. | REPORT |
| 10 | Scenario 10 — Searchlight Space Mismatch | Falsifies a mission-bearing safety claim. | REPORT |
| 11 | Scenario 11 – Atlas-based per-parcel mean BOLD time series | After PAIN-1/3: neuroim now wins the call-site shape for this workflow. | REPORT |
| 12 | Scenario 12 — File-Backed Affine Drift | Originally falsified a mission-bearing backend-safety claim; now fixed. | REPORT |
| 12 | Scenario 12 – Gaussian spatial smoothing at FWHM = 6 mm | neuroim now wins the call-site shape for this workflow | REPORT |
| 13 | Scenario 13 – Cited Nilearn port: seed-to-voxel correlation | The cited part is the value here, not the call-site delta. | REPORT |
| 13 | Scenario 13 — Pipeline Provenance Audit | Win on forensic inspectability. | REPORT |
| 14 | Scenario 14 — Time-axis slicing as silent provenance loss | Falsifies “Receipts by default” at the slicing surface. | REPORT |
| 15 | Scenario 15 - Block Parcel Contrast | Clear win on analysis readability and spatial safety. | REPORT |
| 16 | Scenario 16 - Smoothed Temporal-SNR QC Map | Safety, readability, and inspectability win. | REPORT |
| 17 | Scenario 17 - Local Block-Effect Searchlight | Typed-result and spatial-safety win. | REPORT |
| 18 | Scenario 18 – Cluster-table from a thresholded stat map | neuroim now wins the call-site shape for this workflow. | REPORT |
| 19 | Scenario 19 — Group-mean tSNR across subjects in template space | Per-subject win, group-reduce gap. | REPORT |
22 scenarios. Regenerated from examples/scenarios/*/REPORT.md at render time.
How to read a verdict
A scenario is a win if the neuroim form improves on at least one of read-time, safety, or inspectability and ties or improves on the rest. Surfaced pain points are filed as PAIN-N in the scenario’s REPORT.md even when the scenario wins overall — they are how the suite stays honest. A verdict that says it falsifies a mission claim is not a failure of the docs; it is the suite catching the library and is tracked to a closing fix.
Run them
PYTHONPATH=src:tests:. python -m pytest examples/scenarios -qThe shared fixture is tests/fixtures/realistic_bold.py::make_realistic_bold() — a deterministic 32×32×24×40 BOLD. Two tiny fixtures (golden_tests/fixtures/tiny_*.nii.gz) ship for the doc snippets and exercise the same code paths.
See also
- Spec: contract-failure vocabulary — the refusals these scenarios assert.
- Concepts: Contract failures — the narrative behind the refusals.
- Start — the on-ramp whose every “Refuses to” block links back into this table.