SynthStrip: Skull-Stripping for Any Brain Image

Andrew Hoopes, Jocelyn S. Mora, Adrian V. Dalca, Bruce Fischl, Malte Hoffmann

Code Video Dataset Tool arXiv Paper Cite


SynthStrip is a skull-stripping tool that extracts brain voxels from a landscape of image types, ranging across imaging modality, contrast, resolution, and subject population. It leverages a deep learning strategy that synthesizes arbitrary training images from segmentation maps to optimize a robust model agnostic to acquisition specifics.

If you use our tool or dataset, please cite:

SynthStrip: Skull-Stripping for Any Brain Image

Andrew Hoopes, Jocelyn S. Mora, Adrian V. Dalca, Bruce Fischl*, Malte Hoffmann* (*equal contribution)

NeuroImage 260, 2022, 119474

SynthStrip Dataset

The SynthStrip dataset (6.7 GB) is a freely available collection of full-head images with corresponding ground-truth brain masks from 622 MRI, CT, and PET scans. This diverse data collection includes images acquired with various MRI contrasts, resolutions, and in subject populations ranging from infants to patients with glioblastoma. See the included README file for the license terms and a breakdown of the dataset. While we cannot redistribute the CT and PET data, we include information on how to obtain these.

To download and extract the compressed tar archive on the command line, run:

curl | tar xzf -

If you use this dataset, please cite SynthStrip and any relevant authors of the original data sources.

SynthStrip Tool

We ship SynthStrip as a command line tool included in FreeSurfer and as a standalone utility using Docker or Singularity containers. Both versions are functionally identical and use the same command-line syntax.

Within FreeSurfer: The mri_synthstrip utility has been included in FreeSurfer since the v7.3.0 release. For the most up-to-date version of SynthStrip, please download a (nightly) build of the FreeSurfer development branch.

Containerized version: If you do not want to install FreeSurfer, you can run SynthStrip through a standalone script that wraps a Docker or a Singularity container. These wrappers provide an easy mechanism for running SynthStrip containers, so you do not need to worry about mounting paths to input and output files. For those interested, the underlying build image is available on the Docker Hub.

Singularity: To download the Singularity-based wrapper script, run:

curl -O && chmod +x synthstrip-singularity

Docker: To download the Docker-based wrapper script, run:

curl -O && chmod +x synthstrip-docker

Please read the brief instructions at the top of the downloaded script. Singularity requires one-time configuration.


Once installed, you can run SynthStrip with the following command-line syntax:

mri_synthstrip -i input -o stripped

Note: If using the Docker or Singularity wrappers, replace mri_synthstrip with the downloaded script name, for example synthstrip-singularity.

In this command, "input" represents the path to the input image and "stripped" is the skull-stripped output. To also save the corresponding brain mask, the -m command line flag can be used to specify the "mask" output path:

mri_synthstrip -i input -o stripped -m mask

Additionally, if you would like to compute the immediate boundary of brain matter excluding surrounding CSF, use the --no-csf flag as shown below. You may also want to explore the -b option, which controls the boundary distance from the brain.

mri_synthstrip -i input -o stripped --no-csf

For additional options and command description, use the --help flag. For the large majority of images with voxel sizes near 1 mm3, SynthStrip should run in less than 1 minute on the CPU. As image size or resolution increases, the runtime might increase as well.

Video (5 minutes)

Known Issues

Previous versions may have shifted NIfTI outputs during visualization (issue 1025), generated an error indicating that "ITK only supports orthonormal direction cosines" (issue 1015), or introduced floating-point errors in output voxel sizes (issue 1060). These problems were related to improper qform and sform handling by the surfa library and have been fixed in FreeSurfer releases after 2023-02-14 and in SynthStrip container v1.4. Make sure to update the wrapper script headers!


The authors thank Douglas Greve, Lilla Zöllei, and David Salat for sharing data. This research project benefitted from computational hardware generously provided by the Massachusetts Life Sciences Center.