This is a jupyter repo-book containing concepts and code for a young student of computational neuroscience to understand in a hands-on way fundamental concepts in the field. The basic structure of the book is based on the lectures and tutorials taken at the Computational Approaches to Memory and Plasticity (CAMP) summer school that takes place at National Centre for Biological Science, Bengaluru, India.
As much as possible, this repo is organized in a way that first covers abstract or "simple" models, and then detail is added to the same model. This is useful for several reasons. First, the code that is created in previous sections can be reused and built upon. Second, this process of incremental build-up shows both the assumptions made at each step, and the value of adding detail(read variables) to a model. For instance to simulate phenomena that either couldn't be captured with fewer variables, or if variables have biophysical meaning (give examples of each). Third, many times this is chronological and can help understand with history how the field moved forward (XOR problem and multi-layer perceptrons). Last, it helps anchor the previous concepts by applying them immediately. In improvizational theatre, this principle is the basis of creating complex dramatic structures from scratch and is called "Yes, And" or "Accept, and Build", and as everyone knows, improv is awesome.
------ Perhaps there can be templates on how the repo can be organized later: Phase 4 ---------------------------- \pagebreak
-
Remedials
- Introduction to Jupyter notebook and Python
- Differential equations
- Dynamical systems - basics
- Linear Algebra (?)
- Simulation basics (Euler's method, integration timesteps, stiff systems, etc.)
-
Neuron as a spherial elephant
- Integrate and fire (IF neuron)
- Leaky integrate and fire (LIF neuron)
- Conductance model
- Modeling ion channels
- Abstract Neuron models
- FHN, Izikevich, etc.
-
With 5 parameters, I can make it wiggle its trunk
- Isopotential neurons - recap
- Rall's law
- D-lambda rule
- Simulating passive neurons with beautiful morphologies
- Downloading morphology files from various databases.
- Ion channel distributions
- Can be split later to its own chapter, for instance, to simulate active dendrites.
-
At the end of the day, it's all chemistry
- Simulating chemical reaction networks
- Let's fast forward to the end, shall we? (No dynamics, just the steady states)
- Bistable systems
- I like to move it, move it (Dynamics)
- Bistable systems
- Oscillators
- I need some space (diffusion)
- Turing model
- How many particles, again? (Stochastic simulation)
- All in ( Single particle tracking simulations)
- Multi-compartment models (P2)
- Hybrid models (P2)
- Plasticity : BCM Curve (Calcineurin, CamKII)
-
Everything is connected (Putting together electrical and chemical dynamics)
- Downloading morphologies, distribute ion channels, put in spines.
- Add chemistry and use adapaters to couple the chemistry to electrical dynamics.
- Wiggly spines (Structural plasticity)
- Simulating a detailed model
- Structural plasticity (More stuff to come here, perhaps from CAMP 2019?) (P2)
-
Networks
- Feedforward Networks
- SynFire Chains
- Kremkow, Kumar
- Tim Vogels (P2)
- Recurrent Networks
- Brunel, 2000
- Ostojik, 2014
- Neural coding
- Network correlations
- EI Networks
- Learning Rules
- LTP
- STDP
- Song et al
- BCM Curve
- Short Term Plasticity
- Tsodyks and Markram
- Band passing network input
- Feedforward Networks
-
Learning in neuronal networks
- Perceptron Learning Rule
- XOR Problem
- Hopfield Networks (# Could also be in Networks module)
- Backpropagation
- Algorithm
- Problems with biological implementation
- Spiking neural networks that learn
- Echo state networks
- Sophie Deneve's model
- FORCE
- FOLLOW
- Reinforcement Learning
-
Systems and Behavior
- Rate models
- Place cell models
- Neural Coding (Rate and Time codes) (# Currently also in networks module)
- Golisch and Meister
- Receptive Fields
- Sequences and sequence learning (?) (P2)