fmriprep: A Robust Preprocessing Pipeline for fMRI Data¶
fmriprep is a functional magnetic resonance imaging (fMRI) data
preprocessing pipeline that is designed to provide an easily accessible,
state-of-the-art interface that is robust to variations in scan acquisition
protocols and that requires minimal user input, while providing easily
interpretable and comprehensive error and output reporting.
It performs basic processing steps (coregistration, normalization, unwarping,
noise component extraction, segmentation, skullstripping etc.) providing
outputs that can be easily submitted to a variety of group level analyses,
including task-based or resting-state fMRI, graph theory measures, surface or
volume-based statistics, etc.
fmriprep performs minimal preprocessing. Here we define ‘minimal preprocessing’ as motion correction, field unwarping, normalization, bias field correction, and brain extraction. See the workflows for more details.
fmriprep pipeline uses a combination of tools from well-known software
packages, including FSL, ANTs, FreeSurfer and AFNI.
This pipeline was designed to provide the best software implementation for each
state of preprocessing, and will be updated as newer and better neuroimaging
software become available.
This tool allows you to easily do the following:
Take fMRI data from raw to fully preprocessed form.
Implement tools from different software packages.
Achieve optimal data processing quality by using the best tools available.
Generate preprocessing quality reports, with which the user can easily identify outliers.
Receive verbose output concerning the stage of preprocessing for each subject, including meaningful errors.
Automate and parallelize processing steps, which provides a significant speed-up from typical linear, manual processing.
More information and documentation can be found at https://fmriprep.readthedocs.io/
fmriprep is built around three principles:
Robustness - The pipeline adapts the preprocessing steps depending on the input dataset and should provide results as good as possible independently of scanner make, scanning parameters or presence of additional correction scans (such as fieldmaps).
Ease of use - Thanks to dependence on the BIDS standard, manual parameter input is reduced to a minimum, allowing the pipeline to run in an automatic fashion.
“Glass box” philosophy - Automation should not mean that one should not visually inspect the results or understand the methods. Thus,
fmriprepprovides visual reports for each subject, detailing the accuracy of the most important processing steps. This, combined with the documentation, can help researchers to understand the process and decide which subjects should be kept for the group level analysis.
Limitations and reasons not to use
Very narrow FoV images oftentimes do not contain enough information for standard image registration methods to work correctly. Also, problems may arise when extracting the brain from these data. Supporting these particular images is already a future line of the development road-map.
fmriprepmay also underperform for particular populations (e.g., infants) and non-human brains, although appropriate templates can be provided to overcome the issue.
The “EPInorm” approach is currently not supported, although we plan to implement this feature (see #857).
If you really want unlimited flexibility (which is obviously a double-edged sword).
If you want students to suffer through implementing each step for didactic purposes, or to learn shell-scripting or Python along the way.
If you are trying to reproduce some in-house lab pipeline.
Please acknowledge this work by mentioning explicitly the name of this software (fmriprep) and the version, along with a link to the GitHub repository or the Zenodo reference. For more details, please see Citing FMRIPREP.
We use the 3-clause BSD license; the full license may be found in the
All trademarks referenced herein are property of their respective holders.
Copyright (c) 2015-2018, the fMRIPrep developers and the CRN. All rights reserved.
- What’s new
- 1.5.0 (TBD)
- 1.4.1 (July 9, 2019)
- 1.4.0 (May 15, 2019)
- 1.3.2 (March 18, 2019)
- 1.3.1.post2 (March 13, 2019)
- 1.3.1.post1 (March 11, 2019)
- 1.3.1 (March 6, 2019)
- 1.3.0.post3 (March 1, 2019)
- 1.3.0.post2 (February 14, 2019)
- 1.3.0.post1 (February 8, 2019)
- 1.3.0 (February 7, 2019)
- 1.2.6-1 (January 24, 2019)
- 1.2.6 (January 17, 2019)
- 1.2.5 (December 4, 2018)
- 1.2.4 (December 3, 2018)
- 1.2.3 (November 16, 2018)
- 1.2.2 (November 9, 2018)
- 1.2.1 (November 1, 2018)
- 1.2.0 (October 31, 2018)
- 1.1.8 (October 4, 2018)
- 1.1.7 (September 25, 2018)
- 1.1.6 (September 10, 2018)
- 1.1.5 (September 06, 2018)
- 1.1.4 (August 06, 2018)
- 1.1.3 (July 30, 2018)
- 1.1.2 (July 6, 2018)
- 1.1.1 (June 7, 2018)
- 1.1.0 (June 4, 2018)
- 1.0.15 (May 17, 2018)
- 1.0.14 (May 15, 2018)
- 1.0.13 (May 11, 2018)
- 1.0.12 (May 03, 2018)
- 1.0.11 (April 16, 2018)
- 1.0.10 (April 16, 2018)
- 1.0.9 (April 10, 2018)
- 1.0.8 (February 22, 2018)
- 1.0.7 (February 13, 2018)
- 1.0.6 (29th of January 2018)
- 1.0.5 (21st of January 2018)
- 1.0.4 (15th of January 2018)
- 1.0.3 (3rd of January 2018)
- 1.0.2 (2nd of January 2018)
- 1.0.1 (1st of January 2018)
- 1.0.0 (6th of December 2017)
- 1.0.0-rc13 (1st of December 2017)
- 1.0.0-rc12 (29th of November 2017)
- 1.0.0-rc11 (24th of November 2017)
- 1.0.0-rc10 (9th of November 2017)
- 1.0.0-rc9 (2nd of November 2017)
- 1.0.0-rc8 (27th of October 2017)
- 1.0.0-rc7 (20th of October 2017)
- 1.0.0-rc6 (11th of October 2017)
- 1.0.0-rc5 (25th of September 2017)
- 1.0.0-rc4 (12th of September 2017)
- 1.0.0-rc3 (28th of August 2017)
- 1.0.0-rc2 (12th of August 2017)
- 1.0.0-rc1 (8th of August 2017)
- 0.6.0 (31st of July 2017)
- 0.5.4 (20th of July 2017)
- 0.5.3 (18th of July 2017)
- 0.5.2 (30th of June 2017)
- 0.5.1 (24th of June 2017)
- 0.5.0 (21st of June 2017)
- 0.4.6 (14th of June 2017)
- 0.4.5 (12th of June 2017)
- 0.4.4 (20th of May 2017)
- 0.4.3 (10th of May 2017)
- 0.4.2 (3rd of May 2017)
- 0.4.1 (20th of April 2017)
- 0.4.0 (20th of April 2017)
- 0.3.2 (7th of April 2017)
- 0.3.1 (24th of March 2017)
- 0.3.0 (20th of March 2017)
- 0.2.0 (13th of January 2017)
- 0.1.2 (3rd of October 2016)
- 0.1.1 (30th of July 2016)
- Execution and the BIDS format
- Command-Line Arguments
- Positional Arguments
- Named Arguments
- Options for filtering BIDS queries
- Options to handle performance
- Workflow configuration
- Specific options for running ICA_AROMA
- Specific options for estimating confounds
- Specific options for ANTs registrations
- Specific options for handling fieldmaps
- Specific options for SyN distortion correction
- Specific options for FreeSurfer preprocessing
- Surface preprocessing options
- Other options
- The docker wrapper CLI
- Support and communication
- Not running on a local machine? - Data transfer
- Processing pipeline details
- T1w/T2w preprocessing
- BOLD preprocessing
- BOLD reference image estimation
- Head-motion estimation
- Slice time correction
- Susceptibility Distortion Correction (SDC)
- Pre-processed BOLD in native space
- EPI to T1w registration
- Resampling BOLD runs onto standard spaces
- EPI sampled to FreeSurfer surfaces
- Confounds estimation
- T2* Driven Coregistration
- Susceptibility Distortion Correction (SDC)
- Defining standard and nonstandard spaces where data will be resampled
- Outputs of fMRIPrep
- FAQ, Tips, and Tricks
- Should I run quality control of my images before running fMRIPrep?
- What if I find some images have undergone some pre-processing already (e.g., my T1w image is already skull-stripped)?
- My fMRIPrep run is hanging…
- ERROR: it appears that
recon-allis already running
- Running subjects in parallel
- How much CPU time and RAM should I allocate for a typical fMRIPrep run?
- A new version of fMRIPrep has been published, when should I upgrade?
- Contributing to FMRIPREP
- Patching working repositories
- Adding dependencies
- Rebuilding Docker image
- Code-Server Development Environment (Experimental)
- Adding new features to the citation boilerplate
- Citing FMRIPREP