All Projects → rougier → CNCC-2020

rougier / CNCC-2020

Licence: MIT license
Computational Neuroscience Crash Course (University of Bordeaux, 2020)

Programming Languages

Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to CNCC-2020

computational-neuroscience
Short undergraduate course taught at University of Pennsylvania on computational and theoretical neuroscience. Provides an introduction to programming in MATLAB, single-neuron models, ion channel models, basic neural networks, and neural decoding.
Stars: ✭ 36 (+0%)
Mutual labels:  course-materials, computational-neuroscience
CNCC-2019
Computational Neuroscience Crash Course (CNCC 2019)
Stars: ✭ 26 (-27.78%)
Mutual labels:  linear-algebra, computational-neuroscience
maths-for-deep-learning-ai
A open source book covering the foundational maths of deep learning and machine learning using TensorFlow
Stars: ✭ 35 (-2.78%)
Mutual labels:  linear-algebra
EmbeddedLapack
Linear algebra for embedded system with MATLAB style
Stars: ✭ 92 (+155.56%)
Mutual labels:  linear-algebra
arrayfire-haskell
Haskell bindings to ArrayFire
Stars: ✭ 52 (+44.44%)
Mutual labels:  linear-algebra
JOLI.jl
Julia Operators LIbrary
Stars: ✭ 14 (-61.11%)
Mutual labels:  linear-algebra
ArnoldiMethod.jl
Implicitly Restarted Arnoldi Method, natively in Julia
Stars: ✭ 59 (+63.89%)
Mutual labels:  linear-algebra
Symbolic-computation-Python
Symbolic computation using SymPy and various applications
Stars: ✭ 18 (-50%)
Mutual labels:  linear-algebra
grblas
Python wrapper around GraphBLAS
Stars: ✭ 22 (-38.89%)
Mutual labels:  linear-algebra
deep vision and graphics
Course about deep learning for computer vision and graphics co-developed by YSDA and Skoltech.
Stars: ✭ 89 (+147.22%)
Mutual labels:  course-materials
fds
DSCI-633: Foundations of Data Science https://github.com/hil-se/fds
Stars: ✭ 16 (-55.56%)
Mutual labels:  course-materials
ml-compiled
Quick definitions and intuitive explanations around machine learning.
Stars: ✭ 29 (-19.44%)
Mutual labels:  linear-algebra
Coursera---Using-Python-to-Access-Web-Data
Here is All Weeks Assignment for Using Python to Access Web Data Course on Coursera
Stars: ✭ 36 (+0%)
Mutual labels:  course-materials
auryn
Auryn: A fast simulator for spiking neural networks with synaptic plasticity
Stars: ✭ 77 (+113.89%)
Mutual labels:  computational-neuroscience
eigenvalues
symmetric matrices algorithms to compute eigenvalue/eigenvector pairs
Stars: ✭ 26 (-27.78%)
Mutual labels:  linear-algebra
Teaching
My lecture notes and other course materials
Stars: ✭ 28 (-22.22%)
Mutual labels:  course-materials
kaliningraph
🕸️ Graphs, finite fields and discrete dynamical systems in Kotlin
Stars: ✭ 62 (+72.22%)
Mutual labels:  linear-algebra
speedy-vision
GPU-accelerated Computer Vision for JavaScript.
Stars: ✭ 96 (+166.67%)
Mutual labels:  linear-algebra
NumLin
NumLin: Linear Types for Linear Algebra
Stars: ✭ 21 (-41.67%)
Mutual labels:  linear-algebra
ponylang-linal
Linear Algebra library for Pony Language
Stars: ✭ 23 (-36.11%)
Mutual labels:  linear-algebra

Computational Neuroscience Crash Course (2020)

Given the increasing complexity of neural data and the generalized use of theoretical models in neuroscience, more and more neuroscientists rely on computationnal tools for modelling or data analysis. We would like to offer the possibility to those who feel that their maths / informatics background is a bit short to update their maths and to get familiar with basic techniques for data analysis/modelling using the Python language. The Computational Neuroscience Crash Course (CNCC) will span over two years, with a first part focusing on the maths and programming pre-requisites, and a second part next year on data analysis (and possibly modelling to follow).

For all courses (maths and programming), we'll provide some theoretical background, propose small exercices for participant to work on their own and then solve the exercices together and make sure everybody has acquired the related concepts and techniques. Courses will be taught in English.

Contact



Important dates

This year and ue to the pandemic, the whole course will be online and this means you'll have to read the different lessons before each session, following the proposed schedule below:

Monday 15 June 2020

Make sure to have read (see below):

  • Math: Linear Algebra
  • Prog: Installation + Introduction

Tuesday 16 June 2020

Make sure to have read (see below):

  • Math: Signal Processing + Fourier transform
  • Prog: Numerical computing

Wednesday 17 June

Make sure to have read (seel below):

  • Math: Fourier transform
  • Prog: Scientific computing

Each morning (Monday, Tuesday and Wednesday), from 9am to 10am, we'll try to quickly highlight the main points on each lesson (15mn) and we'll take 45mn to answer any questions you may have on the lessons or the project.

The (mini) project

The goal of the project is to sort (automatically) audio files that correspond to the recording of adult or juvenile songbirds. If you listen to the audio files, you will hear that the sound is quite different between an adult (song) and a juvenile (babbling). This means we can probably process the audio files in order to decide if it corresponds to an adult or a juvenile and the goal is thus to write a function songsort(directory) that will automatically sort all the files present in some-path and label them accordingly.

For the project, you'll need to team with someone else such as to work together at one computer (pair programming). When one is typing, the other is reading an commenting and for maximum efficiency, you'll have to switch roles frequently. This can be done online by sharing the screen of someone.

For the project, we'll use Jupyter notebook and we'll start with the project/introduction.ipynb notebook.

Data is available here: https://filesender.renater.fr/?s=download&token=77a5fac3-ee68-40af-baab-4b34ab09d6b8

Mathematical lessons

Linear Algebra

This course will introduce vectors and matrices, how to peform operations such as addition & multiplication on these objects. The correspondence with geometry and the resolution of a system of linear equations will be explained.

Prerequisites: None
On-line courses:

Wikipedia | Linear Algebra

Mathematics for Computational Neuroscience: only Part 1, Chapter 2, 1-3 (ignore the least square approx in 4).

Ch4 Linear Algebra (Owen&Corrado, Stanford U)

Exercices: PDF link: https://drive.google.com/file/d/1i2xM37M35iSrTbXoNOX5qQFARRrH2MTn/view?usp=sharing


Signal Processing

We'll explain first what is the Fourier transform that is ubiquituous in signal processing, what is spectral analysis and how to compute correlation in order to reveal similarity between signals.

Prerequisites: None
On-line courses:

What is signal processing, and why ? https://www.youtube.com/watch?v=YmSvQe2FDKs

Autocorrelation and crosscorrelation : https://en.wikipedia.org/wiki/Autocorrelation & https://en.wikipedia.org/wiki/Cross-correlation (in both pages, focus on the case of ‘deterministic signals’ and ignore the case of random vectors)

Video explanation and demo : https://www.youtube.com/watch?v=_r_fDlM0Dx0

The case of neurons and spikes : https://www.med.upenn.edu/mulab/analysis.html

Fourier transforms :

https://en.wikipedia.org/wiki/Fourier_transform (up to 5.1 basic properties)

I ntuitive definition : https://sites.northwestern.edu/elannesscohn/2019/07/30/developing-an-intuition-for-fourier-transforms/ More complete definition : https://physiology.med.cornell.edu/people/banfelder/qbio/resources_2016/S.2_fourier.pdf

A video course on the basics of Fourier transform : https://www.ibiology.org/talks/fourier-transform/

To go beyond, the history and many applications of Fourier transforms : http://www.yalescientific.org/2010/12/fourier-transform-natures-way-of-analyzing-data/

Differential Equations (optional)

We'll cover first-order differential equations (that can for example describe the evolution of a membrane potential). We'll see how to analyze and solve such equation.

Prerequisites: None
See also: Wikipedia | Differential Equations & Mathematics for Computational Neuroscience




Programming lessons

Installation

This lesson aims at providing the student with a clean development environment, including Python installation and essential packages, a decent text editor, and a shell. We'll also introduce the Python & IPython shells, the Jupyter notebook and explains how to run a python script from the command line.

Prerequisites: None
See also: Anaconda installation

Introduction

We introduce here Python, a powerful and easy to learn programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming (Python website). However, we'll only cover the strict minimum necessary for getting started with numerical computing.

Prerequisites: Installation
See also: Official Python tutorial & Dive into Python

Numerical computing

This lesson gives an overview of NumPy, the core library for performant numerical computing, with support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays.

Prerequisites: Introduction
See also: Scipy Lecture Notes, Numpy for Matlab users & From Python to Numpy

Data Visualization

We'll explore the matplotlib library which is a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. Matplotlib can be used in Python scripts, the Python and IPython shells, the Jupyter notebook, web application servers, and four graphical user interface toolkits.

Prerequisites: Numerical computing
See also: Matplotlib tutorial, Ten Simple Rules for Better Figures

Scientific computing

This lesson, from the scipy mlecture notes, will cover scipy which is a scientific-computing libraries, such as the GSL (GNU Scientific Library for C and C++), or Matlab’s toolboxes. Scipy is the core package for scientific routines in Python; it is meant to operate efficiently on numpy arrays, so that numpy and scipy work hand in hand.

Prerequisites: Numerical computing
See also: Elegant Scipy, Python Data Science Handbook

 

Computational Neuroscience Crash Course (CNCC 2020)
Copyright © 2020 Arthur Leblois & Nicolas P. RougierCC-BY 4.0 International license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].