Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Neural data-analysis Workshop
Oren Shriki, Eyal Zakkay
Exercise #1 – Analysis of orientation & direction
selectivity in V1 cells
You are given a single mat file to be loaded by your MATLAB script:
o When loading the file, you should see a structure array (SpikesX10U12D) in
your workspace.
The given structure array contains simultaneous in vivo extra cellular recordings from 10
units (neurons) in the primary visual cortex (V1) of a monkey. It was recorded using a
10x10 electrode array that is permanently implanted in the monkey’s V1. The given
dataset is a chosen subset of all units extracted by a spike sorting procedure performed on
the full 10x10 electrode recordings.
This dataset represents an experiment using full field visual stimuli of moving periodic
oriented gratings with the following features:
o 12 directions of grating movement – evenly spaced on the circle (30o apart).
o 200 repetitions (1.28 seconds duration) for each stimulus.
Each structure in the array contains a single field (TimeList).
o This TimeList is a vector of spike events. It represents the activity of the
chosen unit during the recorded repetition of the chosen direction.
o SpikesX10U12D(UnitID,DirectionID,Repetition).TimeList
can be used to access each object.
o DirectionID is an integer between 1 and 12, Repetition is an integer
between 1 and 200.
1. PSTH calculations and display
Methodological remark: for understanding of the PSTH procedure refer to the previous
Class exercise and its complementary slides.
Create a 3 dimensional array (PSTH) – i.e., with dimensions for the unit number, the
stimulus direction, and the time bin of the PSTH.
o The size of the time bin should be a parameter that is set at the code beginning
o Play with the time bin parameter until you are satisfied with the resulted figure
o Use zeros or nan to allocate memory
Choose a representative unit and display the 12 PSTH signals (for the 12 stimulus
directions) on the same figure;
o For the display command use waterfall(t,d,PSTHimage); where t is the
time bin vector, d is the direction vector and PSTHimage is a 2 dimensional
subset of the previously calculated PSTH.
Neural data-analysis Workshop
Oren Shriki, Eyal Zakkay
o “A picture is worth a thousand words” – below is an example of the above
command on unit 4 of the given dataset:
2. Orientation and direction tuning
Methodological remark: for understanding of the fitting procedure and the von-Mises
angular distribution function refer to the lesson slides.
For the purpose of this task, we shall use the spike counts of each TimeList in the
given array and ignore the temporal dimension of the recordings.
o To convert the given array to SpikesCounts use:
length(SpikesX10U12D(UnitID,Direction,Repetition).Time
List);
To estimate the conditional response of each cell, use the mean and the standard
deviation over the different repetitions. e.g.:
ResponseM = mean (SpikesCounts(UnitID, :, :), 3);
ResponseSD = std (SpikesCounts(UnitID, :, :), 1, 3);
o To understand the syntax above use the help command to see how mean and
std work when the input is a higher-order array (not a vector).
o For the required display use the subplot and errorbar commands, e.g.:
figure ('Color', 'w', 'Units', 'centimeters', 'Position', [0 0 25 10]); hold on;
for UnitID = 1:10
subplot (2,5,UnitID); hold on;
errorbar (d, ResponseM, ResponseSD, 'o');
...
Neural data-analysis Workshop
Oren Shriki, Eyal Zakkay
Here are the tuning curves of the first 5 units:
For each unit, fit the mean response to a von-Mises angular distribution and plot the fitted
curve on the appropriate figure panel.
o Methodological remark: Use the help command to learn about the fit function
and try to execute the example given in the slides.
o Note, that units 4 and 5 are direction selective as opposed to the remaining units
which tend to orientation selectivity.
o You can use such code to differentiate between the 2 cases:
if (FitDir)
vonMises = fittype ('A*exp(k*cos(x-PO))','coefficients',{'A','PO','k'},'independent','x');
else
vonMises = fittype ('A*exp(k*cos(2*(x-PO)))','coefficients',{'A','PO','k'},'independent','x');
end;
[A,G] = fit (Directions', ResponseM', vonMises);
o To differentiate the display use:
if (FitDir)
plot (180/pi*dx, A.A * exp (A.k * cos (dx-A.PO)), 'r');
else
plot (180/pi*dx, A.A * exp (A.k * cos (2*(dx-A.PO))), 'r');
end;
o The vector dx is defined as: dx = 0:0.01:2*pi;
3. Exercise deliverable
The deliverable should include the MATLAB code you used and two figures similar to
the ones presented above (with 10 units in the second figure).