Differences between revisions 4 and 17 (spanning 13 versions)
Revision 4 as of 2022-03-13 23:21:07
Size: 1991
Editor: AndrewHoopes
Comment:
Revision 17 as of 2022-03-21 09:27:13
Size: 4285
Editor: AndrewHoopes
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Robust, universal skull-stripping for brain images of any type.

<<BR>> {{attachment:skullstrips.png||height="250"}} <<BR>>

Note: this functionality is currently only available in the development version of !FreeSurfer. Rather than directly contacting the author, please post your questions on this module to the !FreeSurfer [[FreeSurferSupport|mailing list]].
'''''Robust, universal brain-extraction for images of any type.'''''
Line 11: Line 7:
This wiki page is still a work-in-progress. {{attachment:skullstrips.png||width="600"}}

SynthStrip is a skull-stripping tool that accurately extracts brain signal 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 !SynthStrip in your analysis, please cite:

    '''SynthStrip: Skull-Stripping for Any Brain Image'''<<BR>>
    Andrew Hoopes, Jocelyn S. Mora, Adrian V. Dalca, Bruce Fischl, Malte Hoffmann.<<BR>>
    [[https://arxiv.org/abs/2203.09974|arXiv preprint]].

'''Note:''' If you have questions related to running SynthStrip, please post your issue to the !FreeSurfer [[FreeSurferSupport|mailing list]] instead of reaching out directly to the authors.
Line 15: Line 21:
We offer two ways of running !SynthStrip: within !FreeSurfer or as a standalone command-line tool. The !SynthStrip command line tool can be be run within !FreeSurfer or as standalone utility using Docker or Singularity containers.
Line 17: Line 23:
'''''Within !FreeSurfer:''''' As of March 14 2022, SynthStrip is available in the dev (nightly) !FreeSurfer distributions and will be included in the upcoming !FreeSurfer v7.3 release. '''Within !FreeSurfer:''' As of March 16 2022, the `mri_synthstrip` command is available in the dev (nightly) !FreeSurfer distributions and will be included in the upcoming !FreeSurfer v7.3 release.
Line 19: Line 25:
'''''Standalone Utility:''''' Coming soon! /* If you do not want to install an entire !FreeSurfer distribution to run !SynthStrip, you can install a singular, pre-built macOS or linux !SynthStrip executable. To do this, download the maxOS or linux file from this source. */ If you do not want to install an entire !FreeSurfer distribution, you can run !SynthStrip through a standalone script that wraps either a Docker or Singularity container. To download either of these scripts, run the commands described below. Once downloaded, please read the brief instructions in the header of the downloaded script. This is especially necessary for the Singularity script, which requires setting up a one-time configuration. The downloaded scripts can be run directly, using the same command-line syntax defined in the ''Usage'' section below.

'''Singularity:''' To download the Singularity-based wrapper script, run:
{{{
curl -O https://surfer.nmr.mgh.harvard.edu/ftp/dist/freesurfer/synthstrip/synthstrip-singularity && chmod +x synthstrip-singularity
}}}

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

{{{
curl -O https://surfer.nmr.mgh.harvard.edu/ftp/dist/freesurfer/synthstrip/synthstrip-docker && chmod +x synthstrip-docker
}}}

The aim of these wrappers is to provide easy mechanisms for running SynthStrip containers, i.e. so users do not need to worry about mounting paths to input and output files, etc. For those interested, the underlying build image can be accessed from [[https://hub.docker.com/r/freesurfer/synthstrip|DockerHub]].
Line 23: Line 42:
Once installed, you can run !SynthStrip with the following: Once installed, you can run !SynthStrip with the following command-line syntax:
Line 26: Line 45:
synthstrip -i <input> -o <stripped> mri_synthstrip -i <input> -o <stripped>
Line 29: Line 48:
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. For additional options and command description, please use the `--help` flag. For the large majority of images with voxel sizes near 1 mm^3, !SynthStrip should run in less than 1 minute on the CPU. As image size (or resolution) increases, this runtime might increase as well. '''Note:''' If using the Docker or Singularity wrappers, replace `mri_synthstrip` with the downloaded script name, e.g. `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. For additional options and command description, please use the `--help` flag. For the large majority of images with voxel sizes near 1 mm^3^, !SynthStrip should run in less than 1 minute on the CPU. As image size (or resolution) increases, this runtime might increase as well.
Line 33: Line 55:
In the SynthStrip publication, we gather a large test set, from a collection of public datasets, that spans across acquisition type, age, and health. We plan to make this subset of images, along with ground-truth brain mask labels, available for download in the near future. In the SynthStrip publication, we gather a test collection of public datasets that span across acquisition type and subject population. We make this subset of images, with ground-truth brain mask labels, available for download as a [[https://surfer.nmr.mgh.harvard.edu/ftp/dist/freesurfer/synthstrip/synthstrip_data_v1.tar.gz|compressed tar archive]]. Note that we only distribute images from datasets that we have permission for. A breakdown of the datasets is available in the README of the archive, and please be sure to cite SynthStrip and the relevant work (more details in the README) if you use any of this data in a publication.


== 5. Code ==

Open-source code is available in the !FreeSurfer !GitHub repository, at https://github.com/freesurfer/freesurfer/tree/dev/mri_synthstrip.

SynthStrip

Robust, universal brain-extraction for images of any type.

1. Overview

skullstrips.png

SynthStrip is a skull-stripping tool that accurately extracts brain signal 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 SynthStrip in your analysis, please cite:

  • SynthStrip: Skull-Stripping for Any Brain Image
    Andrew Hoopes, Jocelyn S. Mora, Adrian V. Dalca, Bruce Fischl, Malte Hoffmann.
    arXiv preprint.

Note: If you have questions related to running SynthStrip, please post your issue to the FreeSurfer mailing list instead of reaching out directly to the authors.

2. Installation

The SynthStrip command line tool can be be run within FreeSurfer or as standalone utility using Docker or Singularity containers.

Within FreeSurfer: As of March 16 2022, the mri_synthstrip command is available in the dev (nightly) FreeSurfer distributions and will be included in the upcoming FreeSurfer v7.3 release.

If you do not want to install an entire FreeSurfer distribution, you can run SynthStrip through a standalone script that wraps either a Docker or Singularity container. To download either of these scripts, run the commands described below. Once downloaded, please read the brief instructions in the header of the downloaded script. This is especially necessary for the Singularity script, which requires setting up a one-time configuration. The downloaded scripts can be run directly, using the same command-line syntax defined in the Usage section below.

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

curl -O https://surfer.nmr.mgh.harvard.edu/ftp/dist/freesurfer/synthstrip/synthstrip-singularity && chmod +x synthstrip-singularity

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

curl -O https://surfer.nmr.mgh.harvard.edu/ftp/dist/freesurfer/synthstrip/synthstrip-docker && chmod +x synthstrip-docker

The aim of these wrappers is to provide easy mechanisms for running SynthStrip containers, i.e. so users do not need to worry about mounting paths to input and output files, etc. For those interested, the underlying build image can be accessed from DockerHub.

3. Usage

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, e.g. 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. For additional options and command description, please 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, this runtime might increase as well.

4. Evaluation Dataset

In the SynthStrip publication, we gather a test collection of public datasets that span across acquisition type and subject population. We make this subset of images, with ground-truth brain mask labels, available for download as a compressed tar archive. Note that we only distribute images from datasets that we have permission for. A breakdown of the datasets is available in the README of the archive, and please be sure to cite SynthStrip and the relevant work (more details in the README) if you use any of this data in a publication.

5. Code

Open-source code is available in the FreeSurfer GitHub repository, at https://github.com/freesurfer/freesurfer/tree/dev/mri_synthstrip.

SynthStrip (last edited 2022-05-02 08:57:53 by AndrewHoopes)