Awesome Open Source
Awesome Open Source

Introduction to fMRI Analysis in Python

Create a Slack Account with us Slack Status Binder


This is one sub-module within the Neuroimaging cirriculum. Visit the link to view all the modules associated with the Neuroimaging Carpentries program.

fMRI Analysis in Python is a programme developed to facilitate reproducibility in functional neuroimaging analyses. Python is emerging as a standard language of data analysis, visualization, and workflow building. More recently, it has rapidly been adopted by the neuroimaging community as a means of developing powerful open-source tools in favour of historically used opaque software such as AFNI, FSL and SPM. In addition, the barrier to entry to Python is low - meaning that you as the user can easily develop your own packages and contribute to the open-source codebase of neuroimaging!

The fMRI Analysis in Python is a workshop series started up via a collaboration between researchers and staff at the Centre for Addiction and Mental Health (Toronto, ON), the University of Western Ontario (London, Ontario), and McGill University (Montreal, Quebec).

About the lesson

This lesson covers fMRI imaging analysis from the basic steps of preprocessing and data cleaning, to running an analysis, to exploring connectivity patterns in the brain.


Time Episode Question(s) Answered
Setup Download files required for the lesson
00:00 1. Course Overview and Introduction What steps do I need to take before beginning to work with fMRI data?
00:25 2. Exploring Preprocessed fMRI Data from fMRIPREP How does fMRIPrep store preprocessed neuroimaging data? How do I access preprocessed neuroimaging data?
00:50 3. Introduction to Image Manipulation using Nilearn How can I perform arithmetic operations on MR images?
01:35 4. Integrating Functional Data How is fMRI data represented? How can I access fMRI data along spatial and temporal dimensions? How can I integrate fMRI and structural MRI together?
02:20 6. Cleaning Confounders in your Data with Nilearn How can I clean the data so that it more closely reflects BOLD instead of artifacts?
02:50 7. Applying Parcellations to Resting State Data How can I reduce amount of noise-related variance in my data? How can I frame my data as a set of meaningful features?
03:30 8. Functional Connectivity Analysis How can we estimate brain functional connectivity patterns from resting state data?
04:15 Finish


We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any questions, concerns, or experience any difficulties along the way.

We'd like to ask you to familiarize yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, ways to render the lesson locally, and even how to write new episodes.

Please see the current list of issues for ideas for contributing to this repository. For making your contribution, we use the GitHub flow, which is nicely explained in the chapter Contributing to a Project in Pro Git by Scott Chacon. Look for the tag good_first_issue. This indicates that the mantainers will welcome a pull request fixing this issue.



A list of contributors to the lesson can be found in AUTHORS


To cite this lesson, please consult with CITATION

Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Python (807,238
Jupyter Notebook (154,306
Programming (18,140
English (6,837
Preprocessing (2,278
Binder (1,824
Neuroimaging (620
Fmri (203
Bids (84
Pre Alpha (64
Carpentries Incubator (54
Fmri Data Analysis (28
Fmri Analysis (8
Nilearn (7