|
| 1 | +# -*- coding: utf-8 -*- |
| 2 | +# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- |
| 3 | +# vi: set ft=python sts=4 ts=4 sw=4 et: |
| 4 | +""" |
| 5 | +Base module variables |
| 6 | +""" |
| 7 | + |
| 8 | +from ._version import get_versions |
| 9 | +__version__ = get_versions()['version'] |
| 10 | +del get_versions |
| 11 | + |
| 12 | +__author__ = 'The CRN developers' |
| 13 | +__copyright__ = 'Copyright 2018, Center for Reproducible Neuroscience, Stanford University' |
| 14 | +__credits__ = ['Craig Moodie', 'Ross Blair', 'Oscar Esteban', 'Chris Gorgolewski', |
| 15 | + 'Shoshana Berleant', 'Christopher J. Markiewicz', 'Russell A. Poldrack'] |
| 16 | +__license__ = '3-clause BSD' |
| 17 | +__maintainer__ = 'Ross Blair' |
| 18 | + |
| 19 | +__status__ = 'Prototype' |
| 20 | +__url__ = 'https://github.com/poldracklab/fmriprep' |
| 21 | +__packagename__ = 'fmriprep' |
| 22 | +__description__ = ("FMRIprep is a functional magnetic resonance image pre-processing pipeline " |
| 23 | + "that is designed to provide an easily accessible, state-of-the-art interface " |
| 24 | + "that is robust to differences in scan acquisition protocols and that requires " |
| 25 | + "minimal user input, while providing easily interpretable and comprehensive " |
| 26 | + "error and output reporting.") |
| 27 | +__longdesc__ = """\ |
| 28 | +Preprocessing of functional MRI (fMRI) involves numerous steps to clean and standardize |
| 29 | +data before statistical analysis. |
| 30 | +Generally, researchers create ad hoc preprocessing workflows for each new dataset, |
| 31 | +building upon a large inventory of tools available for each step. |
| 32 | +The complexity of these workflows has snowballed with rapid advances in MR data |
| 33 | +acquisition and image processing techniques. |
| 34 | +FMRIPrep is an analysis-agnostic tool that addresses the challenge of robust and |
| 35 | +reproducible preprocessing for task-based and resting fMRI data. |
| 36 | +FMRIPrep automatically adapts a best-in-breed workflow to the idiosyncrasies of |
| 37 | +virtually any dataset, ensuring high-quality preprocessing with no manual intervention, |
| 38 | +while providing easily interpretable and comprehensive error and output reporting. |
| 39 | +It performs basic preprocessing steps (coregistration, normalization, unwarping, noise |
| 40 | +component extraction, segmentation, skullstripping etc.) providing outputs that can be |
| 41 | +easily submitted to a variety of group level analyses, including task-based or resting-state |
| 42 | +fMRI, graph theory measures, surface or volume-based statistics, etc. |
| 43 | +
|
| 44 | +The workflow is based on `Nipype <https://nipype.readthedocs.io>`_ and encompases a large |
| 45 | +set of tools from well-known neuroimaging packages, including |
| 46 | +`FSL <https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/>`_, |
| 47 | +`ANTs <https://stnava.github.io/ANTs/>`_, |
| 48 | +`FreeSurfer <https://surfer.nmr.mgh.harvard.edu/>`_, |
| 49 | +`AFNI <https://afni.nimh.nih.gov/>`_, |
| 50 | +and `Nilearn <https://nilearn.github.io/>`_. |
| 51 | +This pipeline was designed to provide the best software implementation for each state of |
| 52 | +preprocessing, and will be updated as newer and better neuroimaging software becomes |
| 53 | +available. |
| 54 | +
|
| 55 | +This tool allows you to easily do the following: |
| 56 | +
|
| 57 | + * Take fMRI data from *unprocessed* (only reconstructed) to ready for analysis. |
| 58 | + * Implement tools from different software packages. |
| 59 | + * Achieve optimal data processing quality by using the best tools available. |
| 60 | + * Generate preprocessing-assessment reports, with which the user can easily identify problems. |
| 61 | + * Receive verbose output concerning the stage of preprocessing for each subject, including |
| 62 | + meaningful errors. |
| 63 | + * Automate and parallelize processing steps, which provides a significant speed-up from |
| 64 | + typical linear, manual processing. |
| 65 | +
|
| 66 | +FMRIPrep has the potential to transform fMRI research by equipping |
| 67 | +neuroscientists with a high-quality, robust, easy-to-use and transparent preprocessing workflow |
| 68 | +which can help ensure the validity of inference and the interpretability of their results. |
| 69 | +
|
| 70 | +[Pre-print doi:`10.1101/306951 <https://doi.org/10.1101/306951>`_] |
| 71 | +[Documentation `fmriprep.org <https://fmriprep.readthedocs.io>`_] |
| 72 | +[Software doi:`10.5281/zenodo.852659 <https://doi.org/10.5281/zenodo.852659>`_] |
| 73 | +[Support `neurostars.org <https://neurostars.org/tags/fmriprep>`_] |
| 74 | +""" |
| 75 | + |
| 76 | +DOWNLOAD_URL = ( |
| 77 | + 'https://github.com/poldracklab/{name}/archive/{ver}.tar.gz'.format( |
| 78 | + name=__packagename__, ver=__version__)) |
| 79 | + |
| 80 | + |
| 81 | +SETUP_REQUIRES = [ |
| 82 | + 'setuptools>=18.0', |
| 83 | + 'numpy', |
| 84 | + 'cython', |
| 85 | +] |
| 86 | + |
| 87 | +REQUIRES = [ |
| 88 | + 'numpy', |
| 89 | + 'lockfile', |
| 90 | + 'future', |
| 91 | + 'scikit-learn', |
| 92 | + 'matplotlib>=2.2.0', |
| 93 | + 'nilearn', |
| 94 | + 'sklearn', |
| 95 | + 'nibabel>=2.2.1', |
| 96 | + 'pandas', |
| 97 | + 'grabbit', |
| 98 | + 'pybids>=0.6.3', |
| 99 | + 'nitime', |
| 100 | + 'nipype>=1.1.1', |
| 101 | + 'niworkflows>=0.4.2', |
| 102 | + 'statsmodels', |
| 103 | + 'seaborn', |
| 104 | + 'indexed_gzip>=0.8.2', |
| 105 | + 'scikit-image', |
| 106 | + 'versioneer', |
| 107 | +] |
| 108 | + |
| 109 | +LINKS_REQUIRES = [ |
| 110 | +] |
| 111 | + |
| 112 | +TESTS_REQUIRES = [ |
| 113 | + "mock", |
| 114 | + "codecov", |
| 115 | + "pytest", |
| 116 | +] |
| 117 | + |
| 118 | +EXTRA_REQUIRES = { |
| 119 | + 'doc': [ |
| 120 | + 'sphinx>=1.5.3', |
| 121 | + 'sphinx_rtd_theme', |
| 122 | + 'sphinx-argparse', |
| 123 | + 'pydotplus', |
| 124 | + 'pydot>=1.2.3', |
| 125 | + 'packaging', |
| 126 | + 'nbsphinx', |
| 127 | + ], |
| 128 | + 'tests': TESTS_REQUIRES, |
| 129 | + 'duecredit': ['duecredit'], |
| 130 | + 'datalad': ['datalad'], |
| 131 | + 'resmon': ['psutil>=5.4.0'], |
| 132 | + 'sentry': ['raven'], |
| 133 | +} |
| 134 | +EXTRA_REQUIRES['docs'] = EXTRA_REQUIRES['doc'] |
| 135 | + |
| 136 | +# Enable a handle to install all extra dependencies at once |
| 137 | +EXTRA_REQUIRES['all'] = list(set([ |
| 138 | + v for deps in EXTRA_REQUIRES.values() for v in deps])) |
| 139 | + |
| 140 | +CLASSIFIERS = [ |
| 141 | + 'Development Status :: 3 - Alpha', |
| 142 | + 'Intended Audience :: Science/Research', |
| 143 | + 'Topic :: Scientific/Engineering :: Image Recognition', |
| 144 | + 'License :: OSI Approved :: BSD License', |
| 145 | + 'Programming Language :: Python :: 3.5', |
| 146 | + 'Programming Language :: Python :: 3.6', |
| 147 | + 'Programming Language :: Python :: 3.7', |
| 148 | +] |
0 commit comments