NeuroTract
“Can research software refuse bad input and show how every result was made?”
A diffusion MRI research workstation: tractography, connectomes and provenance in one interface
31
pytest tests
live
job progress streamed to the browser as server-sent events
sha-256
dataset checksums stored with every result
Reel 1 of 9: Now showing
Scroll to watch. Click someone in the audience.
- In the audience
Now showing
NeuroTract
A diffusion MRI research workstation: tractography, connectomes and provenance in one interface
The case in short.
- The problem
- Diffusion MRI pipelines fail quietly: a mismatched b-vector file or a merged acquisition produces a plausible-looking result that is wrong. Research software also needs to say clearly what its output is not.
- Who it is for
- Researchers working with diffusion MRI who need reproducible runs. It is research software, not a clinical tool.
- My part
- Sole author.
How it was done
- Before anything runs, I validate the 4D diffusion NIfTI together with its b-values and b-vectors: file integrity, volume and gradient compatibility, b0 presence, gradient shape.
- The pipeline runs preprocessing, DTI fitting, CSD/FOD estimation, probabilistic tractography, surface generation, connectome construction and graph metrics.
- Job milestones and telemetry stream to the browser with server-sent events.
- I store checksums, parameters, the random seed and software versions beside every result, so a run can be reproduced.
- The front end is Next.js and Three.js, for streamlines, orthogonal slices, connectome data and graph metrics, on a FastAPI back end.
What came out
A working end-to-end pipeline and viewer with a pytest suite, a documented architecture and a deployed front end.
What it rests on.
Every figure about this project, and how each one is known. The folder structure, languages and history on the right are read straight from GitHub, so they say what the code is, not what I wish it were.
17
commits
132
files
35
folders
9.6 MB
on disk
- Python 65%
- TypeScript 34%
- CSS 0.3%
- JavaScript 0.2%
- Neurotract/
- src/106 files
- frontend/
- backend/
- __init__.py
- tests/7 files
- __init__.py
- test_api_endpoints.py
- test_benchmark_and_sensitivity.py
- models/2 files
- brain_hologram.glb
- brain_point_cloud.glb
- analysis_and_decisions/1 files
- decision_log.md
- ci/1 files
- test.yml
- docs/1 files
- PROJECT_GUIDE.md
- examples/1 files
- pathology_detection_example.py
- logs/1 files
- .gitkeep
- output/1 files
- .gitkeep
- scripts/1 files
- download_demo_data.py
- .env.example
Appwrite Migration Guard
A local-first CLI that checks an Appwrite migration did what it should, and says PASS, WARN or BLOCK with a reason
If you want to talk about how this was built, write to me.
- seq 0001you arrived
- seq 0002write back
