[projects] added solution to isicorrelations

This commit is contained in:
Jan Benda 2019-01-11 19:31:01 +01:00
parent 012c3e39b4
commit f76ab7170e
10 changed files with 178 additions and 49 deletions

View File

@ -29,8 +29,7 @@ Improve questions
project_isicorrelations project_isicorrelations
medium-difficult medium-difficult
Add statistical test for dependence on adapttau! Need to finish solution
Need to program a solution!
project_isipdffit project_isipdffit
Too technical Too technical

View File

@ -4,7 +4,7 @@
\textbf{Evaluation criteria:} \textbf{Evaluation criteria:}
You can view the evaluation criteria on the You can view the evaluation criteria on the
emph{SciCompScoreSheet.pdf} on Ilias. \emph{SciCompScoreSheet.pdf} on Ilias.
\vspace{1ex} \vspace{1ex}
\textbf{Dates:} \textbf{Dates:}
@ -23,7 +23,7 @@
zip-file. zip-file.
Hint: make the zip file you want to upload, unpack it somewhere Hint: make the zip file you want to upload, unpack it somewhere
else and check if your main script is running properly. else and check if your main script is still running properly.
\vspace{1ex} \vspace{1ex}
\textbf{Code:} \textbf{Code:}

View File

@ -19,7 +19,8 @@ clean:
latex: latex:
pdflatex $(BASENAME).tex pdflatex $(BASENAME).tex
pdflatex $(BASENAME).tex
zip: pdf zip: latex
rm -f zip $(BASENAME).zip rm -f zip $(BASENAME).zip
zip $(BASENAME).zip *.pdf *.m data/* $(ZIPFILES) zip $(BASENAME).zip *.pdf *.m data/* $(ZIPFILES)

View File

@ -1,6 +1,6 @@
\documentclass[a4paper,12pt,pdftex]{exam} \documentclass[a4paper,12pt,pdftex]{exam}
\newcommand{\ptitle}{Interspike-intervall correlations} \newcommand{\ptitle}{Adaptation and interspike-interval correlations}
\input{../header.tex} \input{../header.tex}
\firstpagefooter{Supervisor: Jan Benda}{phone: 29 74573}% \firstpagefooter{Supervisor: Jan Benda}{phone: 29 74573}%
{email: jan.benda@uni-tuebingen.de} {email: jan.benda@uni-tuebingen.de}
@ -20,10 +20,10 @@
Explore the dependence of interspike interval correlations on the firing rate, Explore the dependence of interspike interval correlations on the firing rate,
adaptation time constant and noise level. adaptation time constant and noise level.
The neuron is a neuron with an adaptation current. The neuron is a neuron with an adaptation current. It is
It is implemented in the file \texttt{lifadaptspikes.m}. Call it implemented in the file \texttt{lifadaptspikes.m}. Call it with the
with the following parameters: following parameters:
\begin{lstlisting} \begin{lstlisting}
trials = 10; trials = 10;
tmax = 50.0; tmax = 50.0;
input = 10.0; % the input I input = 10.0; % the input I
@ -31,7 +31,7 @@ Dnoise = 1e-2; % noise strength
adapttau = 0.1; % adaptation time constant in seconds adapttau = 0.1; % adaptation time constant in seconds
adaptincr = 0.5; % adaptation strength adaptincr = 0.5; % adaptation strength
spikes = lifadaptspikes( trials, input, tmax, Dnoise, adapttau, adaptincr ); spikes = lifadaptspikes(trials, input, tmax, Dnoise, adapttau, adaptincr);
\end{lstlisting} \end{lstlisting}
The returned \texttt{spikes} is a cell array with \texttt{trials} elements, each being a vector The returned \texttt{spikes} is a cell array with \texttt{trials} elements, each being a vector
of spike times (in seconds) computed for a duration of \texttt{tmax} seconds. of spike times (in seconds) computed for a duration of \texttt{tmax} seconds.
@ -39,29 +39,42 @@ spikes = lifadaptspikes( trials, input, tmax, Dnoise, adapttau, adaptincr );
and the adaptation time constant via \texttt{adapttau}. and the adaptation time constant via \texttt{adapttau}.
\begin{parts} \begin{parts}
\part Measure the intensity-response curve of the neuron, that is the mean firing rate \part Show a spike-raster plot and a time-resolved firing rate of
as a function of the input for a range of inputs from 0 to 120. the neuron for an input current of 50 for three different
adaptation time constants \texttt{adapttau} (10\,m, 100\,ms,
\part Compute the correlations between each interspike interval $T_i$ and the next one $T_{i+1}$ 1\,s). How do the neural responses look like and how do they
(serial interspike interval correlation at lag 1). Plot this correlation as a function of the depend on the adaptation time constant?
firing rate by varying the input as in (a).
\uplevel{For all the following analysis we only use the spike
\part How does this dependence change for different values of the adaptation times of the steady-state response, i.e. we skip all spikes
time constant \texttt{adapttau}? Use values between 10\,ms and occuring before at least three times the adaptation time
1\,s for \texttt{adapttau}. constant.}
\part Determine the firing rate at which the minimum interspike interval correlation \part \label{ficurve} Measure the intensity-response curve of the
occurs. How does the minimum correlation and this firing rate neuron, that is the mean firing rate as a function of the input
depend on the adaptation time constant \texttt{adapttau}? for a range of inputs from 0 to 120.
\part How do the results change if the level of the intrinsic noise \texttt{Dnoise} is modified? \part Additionally compute the correlations between each
Use values of 1e-4, 1e-3, 1e-2, 1e-1, and 1 for \texttt{Dnoise}. interspike interval $T_i$ and the next one $T_{i+1}$ (serial
interspike interval correlation at lag 1) for the same range of
inputs as in (\ref{ficurve}). Plot the correlation as a function
\uplevel{If you still have time you can continue with the following question:} of the input.
\part How do the interspike interval distributions look like for the different noise levels \part How does the intensity-response curve and the
at some example values for the input and the adaptation time constant? interspike-interval correlations depend on the adaptation time
constant \texttt{adapttau}? Use several values between 10\,ms and
1\,s for \texttt{adapttau} (logarithmically distributed).
\part Determine the firing rate at which the minimum interspike
interval correlation occurs. How does the minimum correlation and
this firing rate (or the inverse of it, the mean interspike
interval) depend on the adaptation time constant
\texttt{adapttau}? Is this dependence siginificant? If yes, can
you explain this dependence?
\part How do all the results change if the level of the intrinsic
noise \texttt{Dnoise} is modified? Use values of 1e-4, 1e-3,
1e-2, 1e-1, and 1 for \texttt{Dnoise}.
\end{parts} \end{parts}

View File

@ -41,11 +41,8 @@ function spikes = lifadaptspikes( trials, input, tmaxdt, D, tauadapt, adaptincr
if v >= vthresh if v >= vthresh
v = vreset; v = vreset;
a = a + adaptincr/tauadapt; a = a + adaptincr/tauadapt;
spiketime = i*dt; times(j) = i*dt;
if spiketime > 4.0*tauadapt j = j + 1;
times(j) = spiketime - 4.0*tauadapt;
j = j + 1;
end
end end
end end
spikes{k} = times; spikes{k} = times;

View File

@ -0,0 +1,11 @@
function [ rate ] = firingrate(spikes, t0, t1)
% compute the firing rate from spikes between t0 and t1
rates = zeros(length(spikes), 1);
for k = 1:length(spikes)
spiketimes = spikes{k};
rates(k) = length(spiketimes((spiketimes>=t0)&(spiketimes<=t1)))/(t1-t0);
end
rate = mean(rates);
end

View File

@ -0,0 +1,36 @@
trials = 5;
tmax = 10.0;
Dnoise = 1e-2; % noise strength
adapttau = 0.1; % adaptation time constant in seconds
adaptincr = 0.5; % adaptation strength
t0=2.0;
t1=tmax;
maxlag = 5;
taus = [0.01, 0.1, 1.0];
colors = ['r', 'b', 'g'];
for j = 1:length(taus)
adapttau = taus(j);
% f-I curves:
Is = [0:10:80];
rate = zeros(length(Is),1);
corr = zeros(length(Is),maxlag);
for k = 1:length(Is)
input = Is(k);
spikes = lifadaptspikes(trials, input, tmax, Dnoise, adapttau, adaptincr);
rate(k) = firingrate(spikes, t0, t1);
corr(k,:) = serialcorr(spikes, t0, t1, maxlag);
end
figure(1);
hold on
plot(Is, rate, colors(j));
hold off
figure(2);
hold on
plot(Is, corr(:,2), colors(j));
hold off
end
pause

View File

@ -0,0 +1,50 @@
function spikes = lifadaptspikes( trials, input, tmaxdt, D, tauadapt, adaptincr )
% Generate spike times of a leaky integrate-and-fire neuron
% with an adaptation current
% trials: the number of trials to be generated
% input: the stimulus either as a single value or as a vector
% tmaxdt: in case of a single value stimulus the duration of a trial
% in case of a vector as a stimulus the time step
% D: the strength of additive white noise
% tauadapt: adaptation time constant
% adaptincr: adaptation strength
tau = 0.01;
if nargin < 4
D = 1e0;
end
if nargin < 5
tauadapt = 0.1;
end
if nargin < 6
adaptincr = 1.0;
end
vreset = 0.0;
vthresh = 10.0;
dt = 1e-4;
if max( size( input ) ) == 1
input = input * ones( ceil( tmaxdt/dt ), 1 );
else
dt = tmaxdt;
end
spikes = cell( trials, 1 );
for k=1:trials
times = [];
j = 1;
v = vreset + (vthresh-vreset)*rand();
a = 0.0;
noise = sqrt(2.0*D)*randn( length( input ), 1 )/sqrt(dt);
for i=1:length( noise )
v = v + ( - v - a + noise(i) + input(i))*dt/tau;
a = a + ( - a )*dt/tauadapt;
if v >= vthresh
v = vreset;
a = a + adaptincr/tauadapt;
times(j) = i*dt;
j = j + 1;
end
end
spikes{k} = times;
end
end

View File

@ -0,0 +1,15 @@
function [ isicorrs ] = serialcorr(spikes, t0, t1, maxlag)
% compute the serial correlations from spikes between t0 and t1
ics = zeros(length(spikes), maxlag);
for k = 1:length(spikes)
spiketimes = spikes{k};
isis = diff(spiketimes((spiketimes>=t0)&(spiketimes<=t1)));
if length(isis) > 2*maxlag
for j=1:maxlag
ics(k, j) = corr(isis(j:end)', isis(1:end+1-j)');
end
end
end
isicorrs = mean(ics, 1);
end

View File

@ -36,22 +36,29 @@ resting potential before stimulus onset.
project, however, you can treat it as if it was the intensity.) project, however, you can treat it as if it was the intensity.)
\begin{parts} \begin{parts}
\part{} Create a plot of the raw data. For each light intensity plot the average response \part Create a plot of the raw data. For each light intensity plot
as a function of time. This plot should also depict the across-trial the average response as a function of time. This plot should also
variability in an appropriate way.\\[0.5ex] depict the across-trial variability in an appropriate way.
\part{} You will notice that the responses have three main parts, a
\part You will notice that the responses have three main parts, a
pre-stimulus phase, the phase in which the light was on, and pre-stimulus phase, the phase in which the light was on, and
finally a post-stimulus phase. Create an characteristic curve that finally a post-stimulus phase. Create an characteristic curve that
plots the response strength as a function of the stimulus plots the response strength as a function of the stimulus
intensity for the ``onset'' and the ``steady state'' intensity for the ``onset'' and the ``steady state''
phases of the light response.\\[0.5ex] phases of the light response.
\part{} The light switches on at time zero. Estimate the delay between stimulus and response.\\[0.5ex]
\part{} Analyze the across trial variability in the ``onset'' and ``steady state''. Check for statistically significant differences. \part The light switches on at time zero. Estimate the delay
\pate{} The membrane potential shows some fluctuations (noise) between stimulus and response.
\part Analyze the across trial variability in the ``onset'' and
``steady state''. Check for statistically significant differences.
\part The membrane potential shows some fluctuations (noise)
compare the noise before stimulus onset and in the steady state compare the noise before stimulus onset and in the steady state
phase of the response. phase of the response.
\part{} (optional) You may also analyze the post-stimulus response in some
more detail. \part (optional) You may also analyze the post-stimulus response
in some more detail.
\end{parts} \end{parts}
\end{questions} \end{questions}