/dartbrains

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.

Primary LanguageJupyter Notebook

alt text DOI deploy-book sphinx-linkcheck

DartBrains

DartBrains.org 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.

Contributing

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 those changes 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 DartBrains.org through the gh-pages branch. 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 https://github.com/ljchang/dartbrains.git

  1. Install packages

pip install jupyter-book

  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.

Before running the below command, make sure you are one directory up from the cloned repo dartbrains folder (i.e., do not be inside the dartbrains repo folder when running this command as it will throw an error).

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 DartBrains.org. 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.

Acknowledgments

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.