Skip to content

DLSurfer vs FreeSurfer vs FastSurfer — coverage & gaps

DLSurfer is an orchestrator. This table compares capability surfaces.

Legend: Y = first-class · P = partial / via called tool · N = missing · E = experimental in DLSurfer · C = classical (non-DL) still used · W = wired best alternative (profile/flag)

Gaps without any credible alternative: GAPS_WITHOUT_ALTERNATIVES.md · dlsurfer gaps-remaining

A. Core morphometry

Capability FreeSurfer FastSurfer DLSurfer now Gap / note
Whole-brain aseg Y (CA / SynthSeg in FS8) Y (VINN) Y (core → VINN; fs8; seg-quick-synthseg) —
Cortical parc DKT Y Y (native) Y (default) —
Cortical parc DK Y P (--fsaparc) W (--atlas dk / core-dk → --fsaparc) Implemented
Cortical parc Destrieux Y N native W (atlas-destrieux → -a2009s) Needs prior surfaces
Schaefer / MMP / custom annot P (project) P (project) W (atlas-schaefer; MMP same pattern) Needs SCHAEFER_ANNOT_*
Surfaces white/pial Y Y (recon-surf C) Y (calls recon-surf C) DL surface backends E (surf-dl-*)
Thickness / curv / area Y Y Y (via recon-surf) Fast thickness E (thickness-fast)
sphere.reg / fsaverage Y Y Y (via recon-surf); SUGAR E —
CC / cereb / hypothal modules P / add-ons Y Y + W toggles (--no-cc / --no-cereb / --no-hypothal) —
Lesion inpainting N native Y (LIT ≥2.6) Y (core-lesion standalone default) Native LIT profile opt-in
GPU/CPU job split Manual Y (srun_fastsurfer) Y (plan + HPC) + W --hpc srun\|brun Native LIT cannot split
High-res <1 mm VINN — Y (--vox_size) W (--vox-size) —
Single container story FS install Docker/Apptainer Pins documented; meta-image N No alt — see gaps-remaining
dlsurfer doctor — — Y Ops-only

B. FreeSurfer suite areas

Capability FS FastSurfer DLSurfer Status
Longitudinal -base / -long Y Limited W (fs-long) Best alt = classical FS long
Hippocampal/amygdala subfields (HA) Y Downstream FS W (subfields-ha) Runners-up: HippUnfold, Hippodeep
Brainstem / thalamic nuclei Y P W (nuclei-bs-thal) No stronger DL default
Infant / clinical recon-all-clinical Y N W (fs-clinical); Infant FS = runner-up only Neonates still external
Manual edit loops (-autorecon2-*) Y P N No alt (by design)
TRACULA / PET / fMRI helpers Y N N No alt (out of scope)
Full QC GUI (FreeView workflows) Y Y N No alt — use FreeView
Bit-identical recon-all Y N N Non-claim
Claustrum N (add-on mri_claustrum_seg) N W (structure-claustrum) Mauri 2025
Piriform cortex 125/126 N N E (structure-piriform-synthseg); JLF alt documented Not in VINN
SynthSR T1 salvage Y (mri_synthsr) N W (preprocess-synthsr) Preprocess only
HippUnfold HA External N W (structure-hippunfold) Ready alt to segmentHA

C. FastSurfer-specific (CLI completeness)

FastSurfer feature In DLSurfer?
run_fastsurfer.sh full defaults Y (core)
--seg_only / --surf_only split Y (core / core-lesion plans)
--lesion_mask native Y (core-lesion-native)
--fsaparc W (--atlas dk)
CerebNet / HypVINN / CC toggles W (--no-cc / --no-cereb / --no-hypothal)
brun_fastsurfer / srun_fastsurfer W (--hpc srun\|brun)
High-res <1 mm VINN W (--vox-size)

D. What DLSurfer adds (neither FS nor FastSurfer alone)

Addition Why
Cited engine registry + “why chosen” Lab / paper transparency
Standalone-LIT-first lesion profile for HPC split Upstream native LIT blocks seg/surf split
Optional Ready/Research backends catalogued (TopoFit, V2C-Flow, …) Future without forking FS
Explicit non-interference with DKT connectome Isolation.md
Multi-atlas wiring ATLASES.md + gap-fill profiles
Documented no-alternative remainder GAPS_WITHOUT_ALTERNATIVES.md

E. Bottom line

Question Answer
Replace FreeSurfer? No
Replace FastSurfer? No — wraps it
Gaps with best alt wired? DK, Destrieux, Schaefer, long, HA, BS/thal, clinical, module toggles, srun, hires
Gaps without alternatives? Meta-SIF, manual edits, FreeView GUI, TRACULA/PET/fMRI, bit-identity, Infant FS (partial), native-LIT+split