# 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.

```{admonition} Read the book!

Neuroimaging and Data Science: An Introduction is now available in book form
from [Princeton University Press](https://press.princeton.edu/books/paperback/9780691222752/data-science-for-neuroimaging)

```{image} ./images/nds_pup_cover.jpg
:alt: Purchase the book on Amazon.com
:class: bg-primary mb-1
:width: 400px
:align: center
:target: https://amzn.to/3XBUYe5
```

## 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 {numref}`docker`, requires the
[Docker](https://www.docker.com/) software running on your computer.
Once installed, you should be able to run:

```
docker pull ghcr.io/neuroimaging-data-science/neuroimaging-data-science:latest
docker run -p 8888:8888 ghcr.io/neuroimaging-data-science/neuroimaging-data-science:latest
```

At a terminal command line. After running this, you should see some output in
your terminal, ending with a URL that starts with
`http://127.0.0.1:8888/?token=`. 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](https://jupytext.readthedocs.io/en/latest/) 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 {download}`this link <requirements.txt>`. 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](https://jupyter.org/).

```{admonition} Feedback

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

To provide feedback please post a message to the [discussion forum](https://github.com/neuroimaging-data-science/feedback/discussions)

If you prefer, you can also provide feedback in private (email: arokem@uw.edu)

```