Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

alt text DOI deploy-book sphinx-linkcheck

DartBrains is an open access online educational resource that provides an introduction to functional neuroimaging analysis methods using Python. DartBrains is built using Jupyter-Book and provides interactive tutorials for introducing the basics of neuroimaging data analysis. This includes the basics of programming, signal processing, preprocessing, univariate analyses using the general linear model, functional connectivity, and multivariate analytic techniques (e.g., prediction/classification and representational similarity analysis). The tutorials focus on practical applications using open access data, short open access video lectures, and interactive Jupyter notebooks. All of the tutorials use open source packages from the python scientific computing community (e.g.,  numpy, pandas, scipy, matplotlib, scikit-learn, networkx, nibabel, nilearn, fmriprep, and nltools). The course is designed to be useful for varying levels of experience, including individuals with minimal experience with programming, Python, and statistics.


One of the wonderful aspects of both the neuroimaging and Python scientific computing communities is the strong commitment to developing and sharing knowledge and tools within the broader community. The goal of the dartbrains project is to build on this work and provide a resource for people to learn about how to analyze neuroimaging data. We try to incorporate as much open content as we can find that contributes to this goal. Please let us know if we have inadvertently ommitted credit for any content generated by others. Though this project is based on a neuroimaging analysis course taught at Dartmouth College, we welcome contributions from anyone in the broader imaging community.

Getting Started

The DartBrains project is hosted on github. If you have any questions, comments, or suggestions, please open an issue.

If you notice any mistakes or have idea for new content, please either open an issue or submit a pull request for us to review.

The website is built using jupyter book, which creates a jekyll website from markdown and jupyter notebooks. Please read their materials to learn more about this neat resource.

Updating Book

To update the book, you can either push changes directly to the master branch (skip to step 4) or you can build the book locally with jupyter-book build and then push it to the master branch on this repo. We are syncing the code to master and then deploying the website through the gh-pages branch. Thanks to this workflow in our repo, when changes are pushed to the master branch they will be automatically deployed to through the gh-pages branch. To locally build the book, to easily visualize any changes you make, I recommend using ghp-import. We are using the new version of jupyter-book, so make sure this package is up to date.

  1. Clone the repo into your desired directory

git clone

  1. Install packages

pip install jupyter-book ghp-import

  1. Build website locally

By building the website locally you can preview any changes you make in your web browser. In other words, you will need to re-run this build command each time you make changes to the book to view them locally in your web browser. We are using the new version of jupyter-book which will run the notebooks to generate the figures by default. I find it helpful to keep 1-2 subjects in ~/Github/dartbrains/data/localizer, which is in .gitignore so it will not get pushed to GitHub.

jupyter-book build dartbrains

  1. Push updated book to GitHub on the master branch

This will automatically trigger a workflow to sync the updated book to the gh-pages branch of our github repository, which ultimately deploys the website on If you would like us to review your changes before pushing or deploying them, you can submit a pull request to the master branch and add @ljchang as a reviewer.

License for this book

All content in this book is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.


Dartbrains was created by Luke Chang and supported by an NSF CAREER Award 1848370.

Our jupyterhub server was built and maintained by the Research Computing staff at Dartmouth. Special thanks to Arnold Song, William Hamblen, Christian Darabos, and John Hudson.


This repository is a Python package with all of the functions and python libraries required for the Dartmouth fMRI Analysis Course taught by Prof Luke Chang, PhD.






No packages published