Module 0: Intro to Research Software Development.

This module will introduce you to tools and good practices to keep your projects organized, effectively collaborate with others and shape your code so that is easy to share, read and reuse.

This module is based on material from The Carpentries, where you can find a lot of free, open source and high quality material on software development and data science.

Get started with the module here: https://github.com/neural-data-science-course/research-software-development

Module content:

Introduction to version control with git

  • Tracking changes: git add & git commit
  • Exploring history, checking out older versions
  • Ignoring things with .gitignore files
  • Github remotes

Collaboration with git and Github

  • Creating pull requests
  • Review process
  • Good practices for collaboration

Intermediate research software development

  • Virtual environments
  • Integrated Software Development Environments (IDEs)
  • Python code style conventions
  • Automatically testing software
  • Software architecture and design
  • Writing reusable software
  • Software management

Module 1: Neural data handling and preprocessing

In this module you’ll get acquainted with some of the most used neural recording techniques. You will learn how to read, preprocess and start analyizing data from these different modalities.

Get started with the module here:
https://github.com/neural-data-science-course/neural-data

Module content:

Local field potential (LFP)

  • Introduction to the local field potential
  • Fourier analysis and power spectrum
  • Signal filtering
  • Introduction to time-frequency analysis
  • Wavelet transform and spectrograms

Calcium imaging

  • Introduction to calcium imaging and CaImAn
  • Data loading and summary images
  • Motion correction
  • Source extraction with Constrained Non-negative Matrix Factorization

Module 2: Single cell analysis

In this module you will learn some analysis techniques to describe the activity of individual neurons, its statistics and its relationship to behavioural variables.

Get started with the module here:
https://github.com/neural-data-science-course/single-cell-analysis

Module content:

Tuning curves and ratemaps

  • Visualization techniques for the response of a neuron
  • Raster plots and Peri-timulus Time Histograms (PSTH)
  • Tuning curves
  • Visualizing hippocampal place cells
  • Measuring spatial information

Generalized Linear models (GLMs)

  • The timulus-response function
  • Linear and non-linear stages of GLMs
  • Linear Gaussian models
  • Linear-Nonlinear Poisson models

Module 3: Population methods

In this module you will learn how to analyize the collective behaviour of a population of neurons and how to decode external stimuli from neural activity.

Get started with the module here:
https://github.com/neural-data-science-course/population-methods

Module content:

Bayesian decoding

  • Introduction to bayesian decoding with poisson neurons
  • Decoding position on a linear track
  • Decoding during sleep
  • Analysis of seuqential reactivations during sleep

Support Vector Machines for neural decoding

  • Support Vector Machines and linear separability of data
  • Decoding stimulus identity from neural activity
  • Cross validation techniques
  • Assessing significance with surrogate data

Dimensionality reduction

  • Principal component analysis (PCA)
  • Discovering collective modes of acrtivity in the cortex
  • Clustering: K-means and DBSCAN
  • Discovering co-active assemblies with clustering methods