An introduction to BrainHack School, including a brief history, motivation, objectives, evaluation process, and code of conduct. There will be an outline of the four-week course proposed across Concordia, McGill, Polytechnique and Université de Montréal, followed by an introduction to Week 1.
Learning Objectives: - Become familiar with the objectives and logistics of BrainHack school.
An in-depth exploration of the facets and challenges of neuroscience that created the need for initiatives like BrainHack School. This will included an overview of some classical epistemological contexts, and topics related to reproducibility, falsifiability, and statistics.
Learning Objectives: Understand the greater context that created the need for the tools you will learn to use in BrainHack school.
Content | Time allotted | Instructor |
---|---|---|
Summary of current reproducibility problems | 1 hour | JB Poline |
Popper and Kuhn | 1 hour | JB Poline |
Interactive session where students will become familiar with the shell, followed by a deep dive into the Git model for distributed version-control and collaboration. The aim of this workshop will be not only to understand the basics of Git, but also understand how to never lose any work, and how to successfully collaborate with oneself.
Learning Objectives: 1) Transition to using the shell regularly and comfortably, 2) an understanding of how Git works, and 3) how to use Git and Github for version-control.
Content | Time allotted | Instructor |
---|---|---|
Introduction to the shell | 1 hour | JB Poline |
Introduction to git for version control | 1 hour | JB Poline |
Introduction to github for collaboration | 1 hour | Liza Levitis |
A presentation on why to use Python for data analysis, followed by an interactive workshop. The workshop will cover key data structures, automation basics, and the concept of functional programming. Students will also be introduced to the most common packages used for Python data analysis, including Numpy, Scipy, Matplotlib, Pandas and Nibabel. Finally, students will learn how to convert neuroimages to analyzable data.
Learning Objectives: 1) Use a python interpreter and text editor to write and execute python scripts. 2) Use python to convert neuroimages and spreadsheets to data to analyze and visualize.
Content | Time allotted | Instructor |
---|---|---|
Variables, types, and comparisons | 20 minutes | Greg Kiar |
Logic, looping, and functions | 20 minutes | Greg Kiar |
Debugging, scripts, and file I/O | 20 minutes | Greg Kiar |
File parsing in standard python | 1 hour | Greg Kiar |
Libraries and the scientific python ecosystem | 20 minutes | Peer Herholz |
Better data management | 10 minutes | Peer Herholz |
Stepwise neuroimaging workflow in python | 30 minutes | Peer Herholz |
A large challenge to reproducibility lies in the fact that scientists use different versions of different tools across different platforms and operating systems, all of which are in constant flux. Virtual machines and containers help to create static environments tailored to one’s analyses, which can be easily shared. This lesson will include an overview (and interactive workshop?) of popular containers in neuroscience, including Docker, Singularity and Neurodocker.
Learning objectives: 1) Understand the difference between Virtual Machines (VMs) and containers. 2) Learn why, when and how to containerize your code, tool or analyses.
Content | Time allotted | Instructor |
---|---|---|
What is a computer | 20 minutes | Greg Kiar |
Reproducibility / re-executability | 10 minutes | Greg Kiar |
Introduction to Virtualenv, Conda, Containers | 1.5 hours | Peer Herholz |
Boutiques / Zenodo for effective data sharing | 10 minutes | Greg Kiar |
Package python environment from morning session | 50 minutes | Liza Levitis |
Neuroscience is rapidly moving from isolated analysis in the void to collaboration, translation and data sharing/hosting. New challenges have thus arisen relating to project organization, sharing of tools and data and standardization of protocols across labs and environments. We will review tools for general project organization (e.g. Project TIER and DRESS protocol) and standardization (BIDS), and cover the basics of creating a sharable package or toolset.
Learning Objectives: 1) Understand the challenges and responsibilities of effectively sharing data and tools. 2)
Content | Time allotted | Instructor |
---|---|---|
BIDS, Project Tier, and SciCrunch | 1 hour | Elizabeth DuPre |
Project Jupyter | 1 hour | Elizabeth DuPre |
pyBIDS, BIDS App practical | 1 hours | Elizabeth DuPre |
Abstract TBA
A presentation on what is Compute Canada and advanced research computing (ARC) intertwined with an interactive workshop. The workshop will focus on connecting to a computing cluster with SSH, accessing the scientific softwares and interacting with the job scheduler Slurm.
Learning Objectives: 1) Understand what is Compute Canada and ARC 2) Learn how to connect to an ARC cluster and 3) Learn how to write and submit jobs to Slurm
Content | Time allotted | Instructor |
---|---|---|
Introduction to Compute Canada | 45 min | Félix-Antoine Fortin |
Connection and file transfer with SSH | 30 min | Félix-Antoine Fortin |
Loading scientific software with Lmod | 30 min | Félix-Antoine Fortin |
Creation and submission of jobs with Slurm | 1 hour | Félix-Antoine Fortin |
Introduction to data transfer with Globus | 15 min | Félix-Antoine Fortin |
Life science and medicine researchers often rely on a series of classical tools for data analysis and the null hypothesis testing framework. In this session, we will present some of the classical tools often used by this community, particularly linear regression and GLM. We will show how to use them in an appropriate manner and point to alternatives in a non parametric context. Examples of models and results will be demonstrated in a hands on session.
Learning Objectives: 1) Use python to visualize variables. 2) Run a basic linear statistical model using python (statsmodels). 3) Introduce the general linear model (GLM). 4) Introduce non-parametric inference.
Content | Time allotted | Instructor |
---|---|---|
Visualizations to understand your data | 30 minutes | Jake Vogel |
Basic statistcal testing in python | 30 minutes | Elizabeth Dupre |
Intro to multiple testing and data reduction | 20 minutes | Elizabeth Dupre |
Stretch break / extra time | 10 minutes | E'rbody |
Abstract TBA
Machine learning has rapidly become a popular approach in Neuroscience. We will overview what machine learning actually is, when it is useful and when it is not, important themes and best practices, and some of the most common algorithms. An interactive workshop will involve using Python to perform model comparison, feature selection, prediction using classification and regression algorithms, feature interpretation, and other topics like bagging/consensus.
Learning Objectives: 1) Understand how and when to include machine learning in your study design; 2) Learn to avoid the many mistakes commonly made in machine learning studies; 3) Use python to perform a machine learning pipeline from end to end.
Content | Time allotted | Instructor |
---|---|---|
Key concepts in machine learning | 1.25 hours | Estefany Suarez |
Caffiene break | 15 minutes | E'rbody |
Nilearn for machine learning with neuroimaging data | 1.5 hours | Jake Vogel |
Deep learning and AI are gaining extreme popularity within all strata of science, and even in popular culture. This lecture will cover what deep learning actually is, when it is and is not appropriate for data analysis, some basic examples of common and highly successful algorithms, and a review of best practices. (An interactive workshop will demonstrate how to use Python to construct an execute a deep learning model.
Learning Objectives: 1) Understand when deep learning is an appropriate tool for analysis. 2) Run a basic deep learning model.
Content | Time allotted | Instructor |
---|---|---|
Learning Objectives: 1) Introduce common decompositions such such as PCA, NMF. 2) Demonstrate how to perform decompositions in Python. 3) Discuss why and how decompositions can be integrated into a machine learning framework.