This repository has been archived on 2021-05-17. You can view files and clone it, but cannot push or open issues or pull requests.
scientificComputing/pointprocesses/exercises/pointprocesses-1.tex

206 lines
7.9 KiB
TeX

\documentclass[12pt,a4paper,pdftex]{exam}
\newcommand{\exercisetopic}{Point processes}
\newcommand{\exercisenum}{11}
\newcommand{\exercisedate}{January 19th, 2021}
\input{../../exercisesheader}
\firstpagefooter{Prof. Dr. Jan Benda}{}{jan.benda@uni-tuebingen.de}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\input{../../exercisestitle}
\begin{questions}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\question \qt{Read in chapter 10 on ``Spike-train analysis'' sections 10.1 -- 10.5!}\vspace{-3ex}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\question \qt{Statistics of interspike intervals}
Download the files \code{poisson.mat},
\code{pifou.mat}, and \code{lifadapt.mat} from Ilias.
Each of these files contains several trials of spike trains
of a specific type of neuron. The spike times are measured in seconds.
We want to compare the statistics of the interspike intervals of the
three neurons.
\begin{parts}
\part Load the spike trains from the three files.
Make sure that the data are assigned to different variables.
What is the type of the data? How can you access individual spike trains?
How do you access single spike times?
\begin{solution}
\begin{lstlisting}
% not so good:
clear all
load poisson.mat
whos
poissonspikes = spikes;
load pifou.mat;
pifouspikes = spikes;
load lifadapt.mat;
lifadaptspikes = spikes;
clear spikes;
% better:
clear all
x = load('poisson.mat');
poissonspikes = x.spikes;
x = load('pifou.mat');
pifouspikes = x.spikes;
x = load('lifadapt.mat');
lifadaptspikes = x.spikes;
clear x;
\end{lstlisting}
The files contain cell arrays with 20 trials of spike
trains. Each spike train is a vector containing the times of
spikes.
\begin{lstlisting}
% access first trial:
trial = poissonspikes{1};
% access second spike of first trial:
trial(2);
\end{lstlisting}
\end{solution}
\newsolutionpage
\part Write a function that displays the spike times of the
first $t_{max}$ seconds in a raster plot. Each spike train is one
row in the raster plot. Each spike is a vertical line at the time
of the spike. When appropriate, the function should use milliseconds
for the time axis instead of seconds.
Use this function to plot the first second of the spike rasters of
the three neurons. Carefully look at the raster plots. How do the
spike rasters differ between the three neurons?
\begin{solution}
\lstinputlisting{rasterplot.m}
\lstinputlisting{plotspikeraster.m}
\mbox{}\\[-3ex]
\colorbox{white}{\includegraphics[width=1\textwidth]{spikeraster}}
\end{solution}
\part Write a function that returns a single vector containing the
interspike intervals of all trials of spike times.
\begin{solution}
\lstinputlisting{isis.m}
\end{solution}
\part Write a function that computes an estimate of the
probability density of interspike intervals from a vector of
interspike intervals. The function should automatically choose a
good bin width for the histogram.
Write another function that plots the probability density of
interspike intervals given a vector of interspike intervals as
argument. The function should use the first function for computing
the probability density. The interspike intervals are given in
seconds, but the plot should mark the interspike intervals in
milliseconds. In addition, the function should compute the mean,
the standard deviation and the coefficient of variation and
display them in the plot as well.
Use this and the previous functions to compare the interspike
interval statistics of the three neurons. How do the ISI
histograms differ between the three neurons?
\begin{solution}
\lstinputlisting{isihist.m}
\lstinputlisting{plotisihist.m}
\lstinputlisting{plotisihs.m}
\mbox{}\\[-3ex]
\colorbox{white}{\includegraphics[width=1\textwidth]{isihist}}
\end{solution}
\part Compare the interspike interval histogram of the Poisson
spike train to the expected exponential distribution
\[ p(T) = \lambda e^{-\lambda T} \; .\] of a Poisson process with
firing rate $\lambda$. Estimate the firing rate from the inverse
of the mean interspike interval.
\begin{solution}
\lstinputlisting{plotpoissonisih.m}
\mbox{}\\[-3ex]
\colorbox{white}{\includegraphics{poissonisihist}}
\end{solution}
\continue
% XXX Add return map!!! XXX
\part Write a function that computes the serial correlations of
interspike intervals for lags up to \code{maxlag}. The serial
correlations $\rho_k$ for lag $k$ of the interspike intervals
$T_i$ are the correlation coefficients between interspike
intervals $T_i$ and the intervals $T_{i+k}$ that are shifted by
lag $k$:
\[ \rho_k = \frac{\langle (T_{i+k} - \langle T \rangle)(T_i -
\langle T \rangle) \rangle}{\langle (T_i - \langle T
\rangle)^2\rangle} = \frac{{\rm cov}(T_{i+k}, T_i)}{{\rm
var}(T_i)} = {\rm corr}(T_{i+k}, T_i) \]
Write another function that plots the serial correlations.
Use the functions to compare the serial correlations of the
interspike intervals of the three neurons. What do the serial
correlations mean? How do they relate to what you see in the
raster plots? Do the serial correlations of the Poisson spike
train match the expectations?
\begin{solution}
\lstinputlisting{isiserialcorr.m}
\lstinputlisting{plotisiserialcorr.m}
\lstinputlisting{plotserialcorr.m}
\colorbox{white}{\includegraphics[width=1\textwidth]{serialcorr}}
\end{solution}
\end{parts}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\question \qt{Statistics of spike counts}
Now let's have a look at the statistics of the spike counts.
\begin{parts}
\part \label{counts} Write a function that counts with the number
of spikes in windows of a given width $W$. The spikes are passed
to the function as a cell array containing vectors of spike times.
The function returns a single vector with all the spike counts.
\begin{solution}
\lstinputlisting{counts.m}
\end{solution}
\part Generate a properly normalized histogram of spike counts for
the data of the three types of neurons. Use 100\,ms for the window
width and the function from (\ref{counts}) for computing the spike
counts.
In addition, compare the distributions with the Poisson
distribution expected for a Poisson spike train:
\[ P(k) = \frac{(\lambda W)^ke^{-\lambda W}}{k!} \; , \] where
$\lambda$ is the rate of the spike train that you should estimate
from the data.
\begin{solution}
\newsolutionpage
\lstinputlisting{spikecountshists.m}
\colorbox{white}{\includegraphics[width=1\textwidth]{spikecountshists}}
\end{solution}
\newsolutionpage
\part Write a function that computes for a range of window widths
the mean, the variance and the Fano factor of the corresponding
spike counts. The function should generate two plots. One showing
the spike count variance in dependence on the mean spike count
(the mean spike count increases for larger window widths). The
other plot showing the Fano factor as a function of window width.
\begin{solution}
\lstinputlisting{fanoplot.m}
\newsolutionpage
\lstinputlisting{fanoplots.m}
\colorbox{white}{\includegraphics[width=1\textwidth]{fanoplotspoisson}}
\colorbox{white}{\includegraphics[width=1\textwidth]{fanoplotspifou}}
\colorbox{white}{\includegraphics[width=1\textwidth]{fanoplotslifadapt}}
\end{solution}
\end{parts}
\end{questions}
\end{document}