{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "# Workshop Cambridge, November 2020\n", "\n", "Python is on its way to become the most used programming language in neuroscience. It is easy to understand, can be learned rather quickly and has a very strong and helpful community behind it. There exist many amazing neuroimaging software packages, such as Nipype, Nilearn, fMRIPrep and more which facilitate the everyday life of a neuroscientist.\n", "\n", "The goal of this 2-day workshop is to introduce participants to many different neuroimaging toolboxes, the Python framework around it and everything you need to know about [Nipype](https://nipype.readthedocs.io/en/latest/) to start creating your own pipelines and optimizing your workflows.\n", "\n", "
\n", "

How to run workshop locally

\n", "Instructions on how to setup the docker environment to interactively explore this content can be found here.\n", "
" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Save the workshop and nipype_tutorial content into your output folder\n", "!cp -R /home/neuro/workshop/* /output/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

Save your notes and changes

\n", "Alternatively, if you just want to ensure that you have a backup of each notebook (including your changes, notes and outputs), you can also download each notebook individually by clicking on the menu: File > Download as > Notebook (.ipynb) or HTML (.html).\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

Interactive Workshop Q & A

\n", "For the workshop, we will be using sli.do to have an online Q&A board. Feel free to post any questions and comments you might have! The board is anonymous and any feedback is welcomed. You can access the event directly via this link or visit www.sli.do and join with the event code pybrain.\n", " \n", "We will try to get back to any questions as quickly as possible. Either during the event or afterwards. And feel free to upvote any questions you find urgend or of higher priority.\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Schedule - Day 1

\n", "\n", "

09:30-10:00 Workshop overview

\n", "\n", "- Slides: [Workshop overview](slides/day1_01_intro.html)\n", "\n", "

10:00-10:45 Quick recap on Jupyter, Python and more

\n", "\n", "This section is meant as a quick introduction and recap to Jupyter Notebooks, Python and its core packages. \n", "\n", "- Slides: [Recap of Jupyter, Python and more](slides/day1_02_python_recap.html)\n", "- Notebook 1: [Jupyter Notebook](notebooks/01a_intro_jupyter-notebook.ipynb)\n", "- Notebook 2: [All about Python](notebooks/01b_intro_python.ipynb)\n", "- Notebook 3: [Numpy](notebooks/01c_intro_numpy.ipynb)\n", "- Notebook 4: [Scipy](notebooks/01d_intro_scipy.ipynb)\n", "- Notebook 5: [Scikit-Learn and Scikit-Image](notebooks/01e_intro_scikit.ipynb)\n", "- Notebook 6: [Statistics](notebooks/01f_intro_statistics.ipynb)\n", "- Notebook 7: [Visualization](notebooks/01g_intro_visualization.ipynb)\n", "\n", "**Note**: Notebooks will not be covered during the workshop but are included for individual learning.\n", "\n", "

10:45-12:00 Explore MRI data with Nibabel and Nilearn

\n", "\n", "Having direct access to your neuroimaging data can be quite liberating. `Nibabel` and `Nilearn` allow exactly that. With those two neuroimaging packages, you can consider any brain image, a simple 3D/4D matrix of voxel values, which you can transform and move around like you would do with any other toolbox.\n", "\n", "- Slides: [Data Manipulation](slides/day1_03_data_manipulation.html)\n", "- Notebook 1: [Nibabel](notebooks/02a_image_manipulation_nibabel.ipynb)\n", "- Notebook 2: [Nilearn](notebooks/02b_image_manipulation_nilearn.ipynb)\n", " \n", "

This section involves exercises and individual exploration of notebooks.

\n", "\n", "

12:00-13:00 Lunch

\n", "\n", "

13:00-13:30 How to set up your system, using Conda and Docker

\n", "\n", "There are many ways to create the right computational environment for your research. But if you want to use the newest technologies you will not get around using Docker or Conda.\n", "\n", "- Slides: [Conda and Docker](slides/day1_04_conda_and_docker.html)\n", "\n", "

13:30-15:00 Functional connectivity and machine learning

\n", "\n", "In this section we will focus on resting-state fMRI analysis, in particular functionali connectivity analysis and how these kind of information can be used to predict the age of a participants. The goal of this section is to show you some capabilities of Nilearn and Scikit-Learn.\n", "\n", "- Notebook 1: [Functional Connectivity with Nilearn](notebooks/03a_functional_connectivity.ipynb)\n", "- Notebook 2: [Predicting age with machine learning with Nilearn](notebooks/03b_predicting_age_with_machine_learning.ipynb)\n", "\n", "

This section involves exercises and individual exploration of notebooks.

\n", "\n", "

15:00-15:30 Innovations in neuroimaging tools (Part I)

\n", "\n", "There are many new and innovative neuroimaging resources & softwares, such as BIDS, fMRIPrep, MRIQC, OpenNeuro, etc. And many of them wouldn't be possible without Nipype and the open-source neuroimaging community. In this section, we want to introduce you to some toolboxes. If you don't already use them yet yourself, you certainly want to be aware about them!\n", "\n", "- Slides: [Innovations in neuroimaging tools - Part I](https://docs.google.com/presentation/d/19G_z3Wshi61t-5OQrC9on0I1dAtIhHmjyB4u-0Gg5y8/edit?usp=sharing)\n", "\n", "

15:30-... Open ended for questions

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Schedule - Day 2

\n", "\n", "

09:30-10:00 Introduction to Nipype

\n", "\n", "In this short introduction, we will show you what Nipype is and why you should use it. It contains a powerful short example that shows the strength behind Nipype.\n", "\n", "- Slides: [Short introduction to Nipype](slides/day2_01_nipype_intro.html)\n", "- Notebook: [Nipype Showcase](nipype_tutorial/notebooks/introduction_showcase.ipynb)\n", "\n", "

10:00-11:00 Exploration of Nipype's building blocks

\n", "\n", "Nipype can be learned very quickly, but it's nonetheless important that you know about some of the main building blocks.\n", "\n", "- Slides: [Interfaces & Workflows](slides/day2_02_nipype_basics.html)\n", "- Notebook: [Basic Concepts](nipype_tutorial/index.ipynb)\n", "\n", "

This section involves exercises and individual exploration of notebooks.

\n", "\n", "

11:00-12:00 Creating a Nipype Pipeline from A-Z

\n", "\n", "- Notebook: [Creating a Nipype pipeline](notebooks/nipype_handson_preprocessing.ipynb)\n", "\n", "

This section involves exercises and individual exploration of notebooks.

\n", "\n", "

12:00-13:00 Lunch

\n", "\n", "

13:00-14:00 PyBIDS and statistical analysis of fMRI data

\n", "\n", "- Notebook 1: [PyBIDS](notebooks/04a_pybids.ipynb)\n", "- Notebook 2: [Statistical analysis of fMRI data](notebooks/04b_statistical_analyses_MRI.ipynb)\n", "\n", "

This section involves exercises and individual exploration of notebooks.

\n", "\n", "

14:00-15:00 Multivariate pattern analysis using Searchlight and Deep Learning

\n", "\n", "- Notebook 1: [Preparation](notebooks/05a_machine_learning_preparation.ipynb)\n", "- Notebook 2: [Prediction with Nilearn](notebooks/05b_machine_learning_nilearn.ipynb)\n", "- Notebook 3: [Deep Learning](notebooks/05c_machine_learning_keras.ipynb)\n", "\n", "

This section involves exercises and individual exploration of notebooks.

\n", "\n", "

15:00-15:30 Innovations in neuroimaging tools (Part 2)

\n", "\n", "This continues the presentations from the first day by introducing some more great open source neuroimaging tools!\n", "\n", "- Slides: [Innovations in neuroimaging tools - Part II](https://docs.google.com/presentation/d/19G_z3Wshi61t-5OQrC9on0I1dAtIhHmjyB4u-0Gg5y8/edit?usp=sharing)\n", "\n", "

15:30-... Open ended for questions

" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.8" } }, "nbformat": 4, "nbformat_minor": 2 }