Neuroimaging and Data Science

Human neuroscience is undergoing a rapid transformation. Through large collaborative projects and concerted data collection and data sharing efforts, the field is gaining access to large datasets at scales that have never been possible before. These developments are expected to provide new and important insights into the human brain, but also present new challenges, as many researchers struggle to access, manage, and analyze the flood of new data. At the same time, concerns about reproducibility and increased rigor in reporting of scientific results demand higher standards of computational practice.

Data Science is a set of methods, tools, and approaches that facilitate automated, reproducible and scalable analysis and understanding of data. As a convergence of dynamic research fields, such as computer science and statistics, data science is rapidly evolving and gaining traction in both academic research and many other sectors of society. Unfortunately, many neuroimaging students and researchers eager to integrate data science methods into their work find it difficult to assemble authoritative and consistent learning resources. This book provides an introduction to contemporary data science and its application in neuroimaging research. Through guided hands-on explorations of openly available data — extensive code examples written in the popular Python language — readers of the book will develop broadly relevant data science skills they can readily translate to their own questions.

Read the book!

Neuroimaging and Data Science: An Introduction is now available in book form from Princeton University Press

Purchase the book on

Getting started

The content of the book is available to browse through the table of contents in the left side-bar of this page. However, to maximize your benefit from the content, you would do best to run the code examples and to experiment with them in a hands-on fashion. There are a couple of ways to that.

Run the book in a docker container

This method, also explained in Section 4, requires the Docker software running on your computer. Once installed, you should be able to run:

docker pull
docker run -p 8888:8888

At a terminal command line. After running this, you should see some output in your terminal, ending with a URL that starts with Copy this entire URL (including the long string of letters and numbers after token=) to the URL bar of a browser. This should open the Jupyterlab application in your browser. To navigate to the book’s content, use the file navigation bar on the left side of the window. Navigate to the “contents” folder and from there to the folders that contain the different chapters. If you are used to Jupyter notebooks, you might be surprised to see that the notebooks that contain the contents of each chapter are stored as Markdown files (with the .md extension), but worry not: these will run just like .ipynb files, thanks to the jupytext software library. To open them as notebooks right-click on the file name in the file navigation pane and select “open with” and then “notebook”. Once the notebook file opens, you can execute its content by clicking within one of the code cells and pressing shift-enter. This will execute the cell within which you clicked and proceed to the next cell.

Download and run the notebooks

If you would rather download the notebooks (available as .ipynb jupyter notebook files from the download link in the top right of each page of this site) and run them yourself, you will need to install a few software libraries that are used in the code sections. You can download a file with these software requirements at this link. Once downloaded, run:

pip install -r requirements.txt

in a shell/environment of your choice to install these dependencies. Then, you should be able to run each of the notebooks using Jupyter.


We are always happy for feedback on the contents of this website.

To provide feedback please post a message to the discussion forum

If you prefer, you can also provide feedback in private (email: