CompNeuro Daily Problem 1-- Spike-triggered Average
The first ever daily CompNeuro coding question!
Question:
What is the Spike-triggered Average and how to implement it in Python?
Answer:
The Spike-triggered Average is the average stimulus that precedes a spike if the stimulus is white noise. It is equivalent to Linear Regression for a general stimulus. You regress the image onto the neural activity.
Here's a very nice post on STA from Wikipedia.
https://en.m.wikipedia.org/wiki/Spike-triggered_average
The first lectures from Week 2 explain STA.
https://www.coursera.org/learn/computational-neuroscience
This Stanford Machine Learning lecture from Andrew Ng explains Linear Regression and the derivation of the Normal Equations.
https://see.stanford.edu/Course/CS229/54
Dayan and Abbott explain STA in the visual system. Chapter 2 is what you need.
http://www.gatsby.ucl.ac.uk/~lmate/biblio/dayanabbott.pdf
A useful book from Aapo Hyvarinen about the algorithmic analysis of the visual system.
https://www.cs.helsinki.fi/u/ahyvarin/papers/bookfinal_ICA.pdf
Here's a talk and exercises from Frederic Theunissen, presenting at the Berkeley Summer School for Modeling and Mining Neural Data
https://archive.org/details/2018_crcns_course_2_Frederic_Theunissen
https://github.com/theunissenlab/crcns-student
How to implement it in code? You can do regularized linear regression with L1 penalty. The data can also be deconvolved calcium image traces for neurons. Here's how it's done with calcium imaging data in conjunction with a dimensionality reduction algorithm (You can also use a representation of neural activity of multiple neurons in the linear regression):
https://github.com/MouseLand/EnsemblePursuit/blob/master/Notebooks/ReceptiveFields.ipynb
Question:
What is the Spike-triggered Average and how to implement it in Python?
Answer:
The Spike-triggered Average is the average stimulus that precedes a spike if the stimulus is white noise. It is equivalent to Linear Regression for a general stimulus. You regress the image onto the neural activity.
Here's a very nice post on STA from Wikipedia.
https://en.m.wikipedia.org/wiki/Spike-triggered_average
The first lectures from Week 2 explain STA.
https://www.coursera.org/learn/computational-neuroscience
This Stanford Machine Learning lecture from Andrew Ng explains Linear Regression and the derivation of the Normal Equations.
https://see.stanford.edu/Course/CS229/54
Dayan and Abbott explain STA in the visual system. Chapter 2 is what you need.
http://www.gatsby.ucl.ac.uk/~lmate/biblio/dayanabbott.pdf
A useful book from Aapo Hyvarinen about the algorithmic analysis of the visual system.
https://www.cs.helsinki.fi/u/ahyvarin/papers/bookfinal_ICA.pdf
Here's a talk and exercises from Frederic Theunissen, presenting at the Berkeley Summer School for Modeling and Mining Neural Data
https://archive.org/details/2018_crcns_course_2_Frederic_Theunissen
https://github.com/theunissenlab/crcns-student
How to implement it in code? You can do regularized linear regression with L1 penalty. The data can also be deconvolved calcium image traces for neurons. Here's how it's done with calcium imaging data in conjunction with a dimensionality reduction algorithm (You can also use a representation of neural activity of multiple neurons in the linear regression):
https://github.com/MouseLand/EnsemblePursuit/blob/master/Notebooks/ReceptiveFields.ipynb
B = np.linalg.solve(images_.T @ images_ + 100 * np.eye(images_.shape[1]), images_.T @ av_resp)
Kommentaarid
Postita kommentaar