Follow-up from #301 Stage 6 scope decision.
The cross-sectional rbc qc workflow produces pass/fail metrics (motion, registration Dice, coverage) but no human-readable visual report. For release, we want a visualization layer that turns the QC TSV into something reviewable — individual-subject reports or a single-page dashboard per run.
Scope
- One HTML (or similar) report per subject-session summarizing QC outcomes.
- Registration overlay (T1w brain + template outline).
- BOLD-to-T1w coregistration overlay.
- Motion traces (FD, DVARS, RMS over time).
- Carpet plot of cleaned BOLD.
- Pass/fail summary at top with the numeric thresholds.
Exact renderer TBD (nireports, fmriplot, matplotlib-to-HTML, custom). Prefer something with minimal new deps.
Interaction with the longitudinal viz issue
Design this so longitudinal viz (tracked separately) can inherit the layout and swap in longitudinal-space overlays + inter-session reliability panels. Shared utilities should live in rbc.qc.reports or similar.
Out of scope
- Group-level reports.
- Interactive web dashboards.
- Any viz of longitudinal outputs (separate issue).
Acceptance
rbc qc (or a new rbc qc-report subcommand — decide during implementation) produces an HTML report per subject-session alongside the existing TSV outputs.
- Covered by a smoke test asserting the HTML file exists and contains expected section headers.
Follow-up from #301 Stage 6 scope decision.
The cross-sectional
rbc qcworkflow produces pass/fail metrics (motion, registration Dice, coverage) but no human-readable visual report. For release, we want a visualization layer that turns the QC TSV into something reviewable — individual-subject reports or a single-page dashboard per run.Scope
Exact renderer TBD (nireports, fmriplot, matplotlib-to-HTML, custom). Prefer something with minimal new deps.
Interaction with the longitudinal viz issue
Design this so longitudinal viz (tracked separately) can inherit the layout and swap in longitudinal-space overlays + inter-session reliability panels. Shared utilities should live in
rbc.qc.reportsor similar.Out of scope
Acceptance
rbc qc(or a newrbc qc-reportsubcommand — decide during implementation) produces an HTML report per subject-session alongside the existing TSV outputs.