sMRI Skill (Modality Layer)
SkillDev toolsUse this skill whenever the user wants to process structural MRI (sMRI) such as T1w/T2w/FLAIR for brain extraction, bias correction, tissue segmentation (GM/WM/CSF), registration to MNI, cortical/subcortical parcellation, cortical thickness/volumetry (FreeSurfer), HCP-style structural preprocessing, WMH lesion segmentation (FLAIR+T1), ROI-wise feature extraction, or converting results back to DICOM. This is the NeuroClaw modality-layer interface: it plans WHAT to do and delegates execution to tool skills.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the sMRI Skill (Modality Layer) skill
What this skill tells your AI
The instructions your AI receives, as published by cuhk-aim-group/neurodiscovery in skills/smri-skill/SKILL.md and read by ahel’s review.
Overview
smri-skill is the NeuroClaw modality-layer interface skill responsible for structural MRI processing (T1w/T2w/FLAIR) and feature extraction.
It strictly follows NeuroClaw hierarchical design principles:
- This skill describes WHAT needs to be done and which tool skill to delegate to.
- It contains no implementation code and no direct shell commands.
- All concrete execution is delegated to tool skills and routed through
claw-shell.
Core workflow (never bypassed):
- Identify input type (DICOM / NIfTI / BIDS), modalities available (T1w only vs T1w+T2w vs T1w+FLAIR).
- Generate a numbered execution plan (steps, tools, outputs, runtime, risks).
- Present the plan and wait for explicit user confirmation (“YES” / “execute” / “proceed”).
- On confirmation, delegate each step via
claw-shell. - Save outputs into a clean folder structure (
smri_output/).
Benchmark-Facing Default Mainline
For benchmark-style structural MRI tasks, start from the narrowest valid anatomical mainline and only add optional branches when the prompt or inputs explicitly require them.
- If the task is full structural MRI processing with no explicit T2w or FLAIR dependency:
- Default to
DICOM -> NIfTI if needed -> T1w mainline -> FreeSurfer recon-all -> feature/stat table export. - Keep T2w, FLAIR, WMH, HCP structural, and DICOM re-export as optional branches, not default branches.
- Default to
- If the task is only DICOM conversion:
- Delegate to
dcm2niiand stop there.
- Delegate to
- If the task asks for quick volumetric preprocessing only:
- Prefer the
fsl-toolroute rather than mixing FreeSurfer and HCP options in the mainline.
- Prefer the
- If optional modalities or branches are missing:
- Mark them as skipped or blocked.
- Do not widen the task into unrelated structural subpipelines.
Avoid listing unrelated modality-adjacent tools in the primary plan for T1-only structural benchmarks.
Research use only.
Quick Reference (Common sMRI Tasks → Delegation Map)
| Task | What needs to be done (high level) | Delegate to which skill | Expected outputs |
|---|---|---|---|
| DICOM → NIfTI | Convert DICOM series to NIfTI (+ JSON) | dcm2nii | *_T1w.nii.gz, *_T2w.nii.gz, *_FLAIR.nii.gz, *.json |
| Organize to BIDS | Create valid BIDS layout (anat/) | bids-organizer | bids/sub-*/anat/sub-*_T1w.nii.gz etc. |
| Fast structural preprocessing | Brain extraction, bias correction, tissue segmentation, MNI registration | fsl-tool (fsl_anat, BET/FAST/FLIRT/FNIRT) | brain mask, tissue maps, transforms, QC |
| FreeSurfer Autorecon1 (volumetric preprocessing) | Image conversion, motion correction, intensity normalization, registration to Talairach, bias correction, skull stripping | freesurfer-tool (recon-all -autorecon1) | orig.mgz, T1.mgz, brainmask.mgz, transforms/talairach.xfm |
| FreeSurfer Autorecon2 (subcortical segmentation & surface extraction) | Tissue classification, white matter segmentation, surface tessellation, topology repair, white matter & pial surface generation | freesurfer-tool (recon-all -autorecon2) | ?h.orig, ?h.white, ?h.pial, aseg.mgz, wm.mgz, surface QC |
| FreeSurfer Autorecon3 (spherical registration & parcellation) | Spherical surface registration, cortical parcellation (Desikan-Killiany, Destrieux, DKT), anatomical statistics extraction, Brodmann area mapping | freesurfer-tool (recon-all -autorecon3) | ?h.sphere.reg, ?h.aparc.annot, stats/?h.aparc.stats, ROI morphology tables |
| Full FreeSurfer pipeline (all 3 stages) | Complete T1/T2 preprocessing with optional T2-pial refinement | freesurfer-tool (recon-all -all -T2pial) | Full FreeSurfer subject directory with surfaces, atlases, stats |
| Surface-based morphometry (quick) | Cortical surfaces, parcellation, thickness, aseg/aparc stats (simplified) | freesurfer-tool | FreeSurfer subject dir, stats tables |
| HCP-grade structural pipeline | PreFreeSurfer → FreeSurfer → PostFreeSurfer | hcppipeline-tool | HCP-style derivatives, surfaces, QC |
| BIDS anatomical derivatives (standardized) | Run BIDS-App anatomical-only workflow | fmriprep-tool (--anat-only) | BIDS derivatives + QC report |
| WMH lesion segmentation | Segment WMH from FLAIR+T1 | wmh-segmentation (+ docker-env-manager if Docker ops needed) | WMH mask NIfTI + run log |
| ROI-wise feature extraction | Extract ROI stats from derived maps (GM prob, WMH mask, thickness maps in NIfTI, cortical thickness, surface-based stats) | nilearn-tool (or fsl-tool fslstats, FreeSurfer mris_anatomical_stats) | roi_stats_*.csv, morphology tables |
| Export results to DICOM | Convert final NIfTI outputs back to DICOM series | nii2dcm | DICOM series for PACS/viewers |
Recommended Strategy (Decision Logic)
-
If the goal is quick brain extraction + tissue segmentation + MNI alignment (fast baseline, ~6 minutes):
- Prefer
fsl-tool(fsl_anat). - Best for: quick QC, preprocessing, multi-subject batches.
- Prefer
-
If the goal is cortical thickness / surface parcellation / aseg-aparc volumetry (detailed surface morphometry):
- Prefer
freesurfer-tool(recon-all) with 3-stage execution (recommended for flexibility):- Stage 1:
-autorecon1(volumetric preprocessing, ~15-30 min)- Produces: intensity-normalized brain image (
T1.mgz), Talairach registration (talairach.xfm), brain mask (brainmask.mgz). - Use when: you need just preprocessing, quality control, or pial surface refinement before running surface extraction.
- Produces: intensity-normalized brain image (
- Stage 2:
-autorecon2(white matter segmentation & surface extraction, ~30-60 min)- Produces: white matter mask (
wm.mgz), initial surfaces (?h.orig,?h.white,?h.pial), segmentation (aseg.mgz). - Use when: you need cortical surfaces for thickness measurement, but haven't registered to standard space yet.
- Produces: white matter mask (
- Stage 3:
-autorecon3(spherical registration & parcellation, ~15-30 min)- Produces: registered sphere (
?h.sphere.reg), cortical parcellations (?h.aparc.annot,?h.aparc.a2009s.annot,?h.aparc.DKTatlas.annot), morphometric statistics (stats/?h.aparc.stats). - Use when: you need full atlas-based ROI labels, cortical thickness maps, and anatomical statistics for group-level analysis.
- Produces: registered sphere (
- Stage 1:
- Quick execution: Run
recon-all -all -T2pial(if T2 available, ~2-3 hours total) for immediate full results. - Best for: surface-based group analysis, cortical thickness studies, clinico-anatomical correlation.
- Prefer
-
If the goal is highest-quality, HCP-style surfaces and multimodal alignment:
- Prefer
hcppipeline-tool(structural stages). - Best for: HCP datasets, publication-grade preprocessing, maximal anatomical detail.
- Prefer
-
If the dataset is already BIDS and you want standardized derivatives + QC (and future fMRI integration):
- Prefer
fmriprep-tool --anat-only(or full fMRIPrep if fMRI exists). - Best for: reproducible BIDS-compliant preprocessing, multi-modal (fMRI-ready), open science.
- Prefer
-
If the goal is WMH lesion segmentation (vascular burden, aging, MS-like WM lesions):
- Use
wmh-segmentation(Docker-based); ensure Docker readiness viadocker-env-managerif needed. - Best for: FLAIR+T1 pathological lesion mapping.
- Use
-
If the goal is ROI-level tables from any NIfTI scalar map (thickness, volume, WMH count, etc.):
- Use
nilearn-toolto generate reproducible CSV feature tables. - Best for: downstream statistical analysis, machine learning pipelines.
- Use
FreeSurfer Setup & Prerequisites (Ubuntu)
System Dependencies & Installation
For Ubuntu 22.04+ systems, freesurfer-tool must ensure:
1. System-level Dependencies
sudo apt-get update
sudo apt-get install -y \
tcsh bc perl tar libgomp1 build-essential \
wget vim-common libxmu-dev libxi-dev libxt-dev \
libx11-dev libglu1-mesa-dev libjpeg62-dev
2. FreeSurfer Installation & License
- Download FreeSurfer 7.4.1 (or newer): Install to
/usr/local/freesurfer/ - License file: Obtain from https://surfer.nmr.mgh.harvard.edu/fswiki/License → place at
/usr/local/freesurfer/license.txt
3. Environment Configuration (in shell profile, e.g., .bashrc)
export FREESURFER_HOME=/usr/local/freesurfer
export SUBJECTS_DIR=/path/to/your/freesurfer/subjects
source $FREESURFER_HOME/SetUpFreeSurfer.sh
When to Use Each Stage
| Stage | Command | Input | Output | Runtime | Use Case |
|---|---|---|---|---|---|
| Autorecon1 | recon-all -autorecon1 -i <T1.nii.gz> -subjid <sub> | T1w NIfTI (mandatory) | orig.mgz, T1.mgz, brainmask.mgz, Talairach xfm | 15–30 min | Preprocessing only, QC checkpoints, T2-pial setup |
| Autorecon2 | recon-all -autorecon2 -subjid <sub> | (uses autorecon1 outputs) | wm.mgz, surfaces (?h.orig, ?h.white, ?h.pial) | 30–60 min | Cortical surface extraction, thickness measurement |
| Autorecon3 | recon-all -autorecon3 -subjid <sub> | (uses autorecon2 outputs) | ?h.sphere.reg, ?h.aparc.annot, stats tables | 15–30 min | Atlas registration, ROI labels, group analysis ready |
| All (1-click) | recon-all -all -T2pial -i <T1.nii.gz> -T2 <T2.nii.gz> -subjid <sub> | T1w (required), T2w (optional but improves pial surface) | Complete subject dir | 2–3 hours | Full pipeline; T2-pial refines pial boundary |
Standard Output Layout (Recommended)
All outputs must be written under ./smri_output/:
smri_output/nifti/(converted inputs if needed:*_T1w.nii.gz,*_T2w.nii.gz)smri_output/bids/(optional staging BIDS:bids/sub-*/anat/)smri_output/fsl_anat/(FSL structural outputs: brain mask, tissue maps, transforms)smri_output/freesurfer/(FreeSurfer SUBJECTS_DIR structure)freesurfer/sub-01/mri/orig.mgz,T1.mgz,T2.mgz(if T2 available)brainmask.mgz,wm.mgz,norm.mgzaseg.mgz,aparc+aseg.mgz,wmparc.mgz(after autorecon2+3)transforms/talairach.xfm,cc_up.lta, etc.
freesurfer/sub-01/surf/?h.orig,?h.white,?h.pial(surfaces)?h.sphere.reg(registered sphere, after autorecon3)?h.inflated,?h.sphere(topological surfaces)
freesurfer/sub-01/label/?h.aparc.annot,?h.aparc.a2009s.annot,?h.aparc.DKTatlas.annot(parcellations, after autorecon3)?h.cortex.label,?h.BA*.label(Brodmann areas, after autorecon3)
freesurfer/sub-01/stats/?h.aparc.stats,?h.aparc.a2009s.stats,?h.aparc.DKTatlas.stats(cortical morphometry)aseg.stats,wmparc.stats(subcortical volumes)?h.curv.stats(curvature statistics)
smri_output/hcp/(HCP structural outputs)smri_output/fmriprep/(fMRIPrep derivatives/QC pointers)smri_output/wmh/(WMH masks + logs)smri_output/roi/(ROI feature CSVs extracted from FreeSurfer stats or NIfTI-based ROIs)smri_output/logs/(claw-shell log tags / pointers, FreeSurfer recon-all logs)
Safety / Execution Rules (NeuroClaw)
- No execution without explicit user confirmation of the full numbered plan.
- All execution must be routed through
claw-shell. - If a required dependency is missing, delegate installation planning to
dependency-planner. - If Docker is required (e.g., WMH segmentation containers), coordinate via
docker-env-manager(plan → confirm → run).
Important Notes & Limitations
- Structural pipelines are long-running (especially FreeSurfer/HCP). Always provide realistic runtime + disk estimates in the plan:
- Autorecon1: 15–30 min, ~2 GB disk
- Autorecon2: 30–60 min, ~1 GB additional
- Autorecon3: 15–30 min, ~500 MB additional
- Full pipeline (
-all): 2–3 hours total, ~4–5 GB disk per subject
- FreeSurfer License: Required and must be placed at
$FREESURFER_HOME/license.txt. Obtain from https://surfer.nmr.mgh.harvard.edu/fswiki/License (free registration). - T2-pial optimization: Include T2w image with
-T2 <file> -T2pialflags to refine pial surface in cortical regions with ambiguous GM/CSF boundaries. Recommended for HCP and high-resolution clinical datasets. - System dependencies: Unix/Linux-only (macOS with Rosetta2 for ARM; Windows via WSL2). Requires X11 forwarding for visualization tools.
- ROI extraction: Surface-based ROIs from FreeSurfer
.annotfiles can be extracted viamris_anatomical_stats(built-in) or converted to NIfTI viamri_aparc2asegfor volumetric ROI analysis. - Registration outputs: FreeSurfer surfaces (
?h.sphere.reg) are registered to average template space; enables cross-subject statistical inference via QDEC or nilearn. - This skill is for research workflows; not for clinical decision-making.
When to Call This Skill
- Any request involving: T1w/T2w/FLAIR preprocessing, brain extraction, tissue segmentation, MNI registration, cortical thickness, FreeSurfer recon-all, HCP structural pipeline, WMH segmentation, or ROI-wise structural features.
Post-Execution Verification (Harness Integration)
After structural MRI processing completes, this skill automatically invokes harness-core's VerificationRunner to validate structural derivatives:
Integrated verification checks:
from skills.harness_core import VerificationRunner, AuditLogger
import nibabel as nib
import numpy as np
verifier = VerificationRunner(task_type="structural_mri_processing")
# 1. Structural brain extraction quality
verifier.add_check("brain_extraction_mask",
checker=lambda: verify_brain_mask_exists(output_dir),
severity="error"
)
# 2. Tissue segmentation (GM/WM/CSF) available and reasonable
verifier.add_check("tissue_segmentation",
checker=lambda: verify_tissue_maps_integrity(output_dir),
severity="error"
)
# 3. MNI registration transforms
verifier.add_check("mni_registration",
checker=lambda: verify_mni_transforms(output_dir),
severity="warning"
)
# 4. Cortical surface files (if FreeSurfer)
verifier.add_check("cortical_surfaces",
checker=lambda: verify_freesurfer_surfaces(output_dir),
severity="warning"
)
# 5. No NaN/Inf in structural maps
verifier.add_check("structural_data_integrity",
checker=lambda: verify_structural_no_nan_inf(output_dir),
severity="error"
)
# 6. Cortical thickness reasonable range (if available)
verifier.add_check("cortical_thickness_bounds",
checker=lambda: verify_thickness_range(output_dir, min_mm=1.0, max_mm=4.0),
severity="warning"
)
# 7. Volume statistics plausible
verifier.add_check("volume_statistics",
checker=lambda: verify_tissue_volume_ratios(output_dir),
severity="warning"
)
report = verifier.run(output_dir)
# Log verification results
logger = AuditLogger(log_file=f"{output_dir}/structural_verification.jsonl")
logger.log_validation(
task_name="structural_mri_processing",
checks_passed=len([r for r in report.results if r.passed]),
checks_failed=len([r for r in report.results if not r.passed]),
warnings=len([r for r in report.results if r.severity == "warning" and not r.passed]),
report_summary=report.to_dict()
)
if report.failed:
raise ValueError(f"Structural MRI verification failed: {report.summary}")
Output files generated:
{output_dir}/structural_verification.jsonl— structured audit log{output_dir}/.structural_verification_timestamp— completion marker
Complementary / Related Skills
dcm2nii→ DICOM → NIfTIfsl-tool→ fsl_anat / BET / FAST / FIRST / registration utilitiesfreesurfer-tool→ cortical & subcortical morphometry + thickness/parcellationhcppipeline-tool→ HCP-style structural pipelinefmriprep-tool→ standardized BIDS-App anatomical-only derivatives + QCwmh-segmentation→ WMH lesion mask from FLAIR+T1 (Docker)docker-env-manager→ safe Docker operations (when needed)nilearn-tool→ ROI feature extraction from structural-derived NIfTI mapsnii2dcm→ export final NIfTI results back to DICOMdependency-planner+conda-env-manager→ installation/environment managementclaw-shell→ mandatory safe execution layerharness-core→ automated verification and audit logging
Reference
Aligned with NeuroClaw modality-skill pattern (see fmri-skill, dwi-skill, eeg-skill).
Common sMRI toolchain: FSL (fast structural utilities), FreeSurfer (surface morphometry), HCP pipelines (HCP-grade structural processing), fMRIPrep (BIDS anatomical derivatives), Nilearn (ROI features on NIfTI maps), MARS-WMH (WMH segmentation via Docker).
Created At: 2026-03-26 01:09 HKT Last Updated At: 2026-04-05 02:01 HKT Author: chengwang96
Signals
- GitHub stars
- 85
- Forks
- 4
- Last commit
- Sep 2026
ahel recommends instead
Advanced
- Catalog kind
- skill
- Gateway key
smri-skill-cuhk-aim-group- Source
- github.com/cuhk-aim-group/neurodiscovery