fsl-tool · diff
git:20260328.891ed93 to git:20260404.fa7f354
57 added, 2 removed. Audit A to A.
---
name: fsl-tool
description: "Use this skill whenever the user wants to process neuroimaging data with FSL (FMRIB Software Library), covering structural MRI, functional MRI (fMRI), and diffusion MRI (dMRI/DTI). Triggers include: 'use FSL', 'FSL processing', 'fsl_anat', 'FEAT', 'MELODIC', 'eddy', 'bedpostx', 'probtrackx', 'BET', 'FAST', 'FLIRT', 'FNIRT', 'run FSL pipeline'. This skill is the NeuroClaw interface-layer wrapper for FSL: checks installation, generates execution plan with concrete shell commands, waits for explicit confirmation, then routes all commands through claw-shell."
license: MIT License (NeuroClaw custom skill – freely modifiable within the project)
---
# FSL Tool
## Overview
FSL is a comprehensive library of analysis tools for MRI, fMRI, and diffusion brain imaging. This skill provides a safe, unified interface for the three core modalities in NeuroClaw:
- Structural MRI (T1w, T2w, FLAIR)
- Functional MRI (task-based and resting-state)
- Diffusion MRI (DTI / dMRI)
**Workflow**:
1. Check if FSL is installed (`fslversion`).
2. If not installed → call `dependency-planner` to generate installation plan.
3. Analyze input files and propose concrete shell commands with parameter explanations.
4. Present full numbered plan + estimated time + risks.
5. Wait for explicit user confirmation (“YES”, “execute”, “proceed”).
6. Execute all commands safely via `claw-shell`.
7. Summarize outputs and suggest next steps.
**Research use only.**
## Core Modalities and Common Shell Commands
### 1. Structural MRI
```bash
# One-click structural preprocessing (strongly recommended)
fsl_anat -i T1w.nii.gz -o T1w_anat --clobber
# -i : input T1w file
# -o : output folder name
# --clobber : overwrite existing files (commonly used)
# Brain extraction (BET)
bet T1w.nii.gz T1w_brain -m -f 0.5
# -m : output brain mask (_mask.nii.gz)
# -f : brain extraction threshold (0.3~0.7; 0.5 is usually stable)
# Tissue segmentation + bias correction
fast -t 1 -n 3 -H 0.1 -I 4 -l 20.0 -o T1w_fast T1w_brain
# -t 1 : T1-weighted image
# -n 3 : 3 tissue classes (GM, WM, CSF)
# -H 0.1 : bias field correction strength
# Linear + nonlinear registration to MNI152
flirt -in T1w_brain -ref $FSLDIR/data/standard/MNI152_T1_2mm_brain -out T1w_to_MNI -omat T1w_to_MNI.mat -dof 12
fnirt --in=T1w_brain --aff=T1w_to_MNI.mat --cout=T1w_to_MNI_warp --config=T1_2_MNI152_2mm
# Subcortical segmentation
first -i T1w_brain -o T1w_first -b
```
### 2. Functional MRI
```bash
# Motion correction
mcflirt -in bold.nii.gz -out bold_mcf -plots -refvol 0
# Task-based fMRI full analysis (FEAT)
feat design.fsf
# Resting-state ICA
melodic -i bold_mcf.nii.gz -o melodic_output --report --nobet --bgthreshold=10 --tr=2.0 --mmthresh=0.5 --dim=30
# Automatic denoising (FIX)
fix melodic_output -c $FSLDIR/training_files/Standard.RData -m -f 20
```
### 3. Diffusion MRI
```bash
# Distortion and eddy current correction
topup --imain=AP_PA_b0.nii.gz --datain=acqparams.txt --out=topup_results --fout=field --iout=b0_unwarped
eddy --imain=dwi.nii.gz --mask=dwi_brain_mask.nii.gz --acqp=acqparams.txt --index=index.txt \
--bvecs=bvecs --bvals=bvals --topup=topup_results --out=eddy_corrected --very_verbose
# Tensor fitting
dtifit -k eddy_corrected.nii.gz -m dwi_brain_mask.nii.gz -r bvecs -b bvals -o dtifit
# Multi-fiber modeling
bedpostx bedpostx_input -n 3 -w 1 -b 1000
# Automated major tract extraction
xtract -bpx bedpostx_input.bedpostX -out xtract_results -str $FSLDIR/data/xtract/tracts.txt
```
## Quick Reference
| Modality | Task | Main Command | Typical Time |
|--------------|-----------------------------|-------------------------------|-------------------|
| Structural | Full preprocessing | `fsl_anat` | 10–40 min |
| Structural | Brain extraction | `bet` | 1–3 min |
| Structural | Tissue segmentation | `fast` | 5–15 min |
| Functional | Motion correction | `mcflirt` | 2–10 min |
| Functional | Task GLM | `feat` | 15–90 min |
| Functional | Resting-state ICA | `melodic` | 20–120 min |
| Diffusion | Preprocessing | `topup + eddy` | 30–180 min |
| Diffusion | Tensor metrics | `dtifit` | 5–20 min |
| Diffusion | Tractography | `probtrackx2 / xtract` | 30 min – 24 h+ |
## Installation
Use `dependency-planner` skill with one of the following requests:
- “Install latest FSL on Ubuntu using official installer”
- “Install FSL via conda-forge in a new environment”
After installation, verify with:
```bash
fslversion
echo $FSLDIR
```
## Important Notes & Limitations
- All actual execution is routed through `claw-shell`.
- Long-running commands (bedpostx, probtrackx, group FEAT, etc.) run safely in the `claw` tmux session.
- Always consider running `fsl_anat` first for structural data — it handles BET + FAST + registration automatically.
- Input must be NIfTI format. Use `dcm2nii` skill first if starting from DICOM.
- Monitor progress with `tail -f` on the log file provided by claw-shell.
## When to Call This Skill
- After `dcm2nii` conversion
- When any FSL preprocessing, registration, segmentation or advanced analysis is needed
- Before feeding quantitative results into `paper-writing` or `experiment-controller`
## Complementary / Related Skills
- `dependency-planner`
- `claw-shell`
## More Advanced Features
For less common tools (ASL, FABBER, VBM, PALM, custom scripting, etc.), please refer to the official FSL documentation:
- Official FSL Website: https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/
- Structural tools: https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/Structural
- Functional tools: https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FEAT
- Diffusion tools: https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FDT
- Full tool list: https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FSL
You may use the `multi-search-engine`, `academic-research-hub`, or `arxiv-cli-tools` skill anytime to find the latest FSL tutorials or example pipelines.
+ ## Post-Execution Verification (Harness Integration)
+
+ After FSL processing completes, this skill **automatically invokes harness-core's VerificationRunner** to validate output integrity:
+
+ **Integrated verification checks**:
+
+ ```python
+ from skills.harness_core import VerificationRunner, AuditLogger
+
+ verifier = VerificationRunner(task_type="fsl_processing")
+
+ # 1. Brain extraction quality (BET)
+ verifier.add_check("brain_extraction",
+ checker=lambda: verify_bet_output(output_dir),
+ severity="error"
+ )
+
+ # 2. FSL output files existence
+ verifier.add_check("output_files",
+ checker=lambda: verify_output_files(output_dir),
+ severity="error"
+ )
+
+ # 3. Data integrity (NaN/Inf checks)
+ verifier.add_check("data_integrity",
+ checker=lambda: verify_no_nan_inf(output_dir),
+ severity="error"
+ )
+
+ # 4. Registration quality metrics
+ verifier.add_check("registration_quality",
+ checker=lambda: verify_registration_quality(output_dir),
+ severity="warning"
+ )
+
+ # 5. Tensor metrics bounds (for DTI/DWI)
+ verifier.add_check("tensor_bounds",
+ checker=lambda: verify_fa_md_bounds(output_dir),
+ severity="warning"
+ )
+
+ report = verifier.run(output_dir)
+
+ # Log verification results
+ logger = AuditLogger(log_file=f"{output_dir}/fsl_verification.jsonl")
+ logger.log_validation(
+ task_name="fsl_processing",
+ checks_passed=len([r for r in report.results if r.passed]),
+ total_checks=len(report.results),
+ output_path=output_dir
+ )
+ ```
+
+ **Output**: `{output_dir}/fsl_verification.jsonl` (structured audit log with JSONL format)
+
---
Created At: 2026-03-25 00:00 HKT
- Last Updated At: 2026-03-25 23:56 HKT
- Author: Cheng Wang
+ Last Updated At: 2026-04-05 02:03 HKT
+ Author: chengwang96