[projects] added solution to isicorrelations
This commit is contained in:
		
							parent
							
								
									012c3e39b4
								
							
						
					
					
						commit
						f76ab7170e
					
				@ -29,8 +29,7 @@ Improve questions
 | 
			
		||||
 | 
			
		||||
project_isicorrelations
 | 
			
		||||
medium-difficult
 | 
			
		||||
Add statistical test for dependence on adapttau!
 | 
			
		||||
Need to program a solution!
 | 
			
		||||
Need to finish solution
 | 
			
		||||
 | 
			
		||||
project_isipdffit
 | 
			
		||||
Too technical
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@
 | 
			
		||||
      \textbf{Evaluation criteria:}
 | 
			
		||||
 | 
			
		||||
      You can view the evaluation criteria on the
 | 
			
		||||
      emph{SciCompScoreSheet.pdf} on Ilias.
 | 
			
		||||
      \emph{SciCompScoreSheet.pdf} on Ilias.
 | 
			
		||||
 | 
			
		||||
      \vspace{1ex}
 | 
			
		||||
      \textbf{Dates:}
 | 
			
		||||
@ -23,7 +23,7 @@
 | 
			
		||||
      zip-file.
 | 
			
		||||
 | 
			
		||||
      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}
 | 
			
		||||
      \textbf{Code:}
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,8 @@ clean:
 | 
			
		||||
 | 
			
		||||
latex:
 | 
			
		||||
	pdflatex $(BASENAME).tex
 | 
			
		||||
	pdflatex $(BASENAME).tex
 | 
			
		||||
 | 
			
		||||
zip: pdf
 | 
			
		||||
zip: latex
 | 
			
		||||
	rm -f zip $(BASENAME).zip
 | 
			
		||||
	zip $(BASENAME).zip *.pdf *.m data/* $(ZIPFILES)
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
\documentclass[a4paper,12pt,pdftex]{exam}
 | 
			
		||||
 | 
			
		||||
\newcommand{\ptitle}{Interspike-intervall correlations}
 | 
			
		||||
\newcommand{\ptitle}{Adaptation and interspike-interval correlations}
 | 
			
		||||
\input{../header.tex}
 | 
			
		||||
\firstpagefooter{Supervisor: Jan Benda}{phone: 29 74573}%
 | 
			
		||||
{email: jan.benda@uni-tuebingen.de}
 | 
			
		||||
@ -20,9 +20,9 @@
 | 
			
		||||
  Explore the dependence of interspike interval correlations on the firing rate,
 | 
			
		||||
  adaptation time constant and noise level.
 | 
			
		||||
 | 
			
		||||
The neuron is a neuron with an adaptation current. 
 | 
			
		||||
    It is implemented in the file \texttt{lifadaptspikes.m}.  Call it
 | 
			
		||||
    with the following parameters:
 | 
			
		||||
  The neuron is a neuron with an adaptation current.  It is
 | 
			
		||||
  implemented in the file \texttt{lifadaptspikes.m}.  Call it with the
 | 
			
		||||
  following parameters:
 | 
			
		||||
  \begin{lstlisting}
 | 
			
		||||
trials = 10;
 | 
			
		||||
tmax = 50.0;
 | 
			
		||||
@ -39,29 +39,42 @@ spikes = lifadaptspikes( trials, input, tmax, Dnoise, adapttau, adaptincr );
 | 
			
		||||
    and the adaptation time constant via \texttt{adapttau}.
 | 
			
		||||
 | 
			
		||||
  \begin{parts}
 | 
			
		||||
    \part Measure the intensity-response curve of the neuron, that is the mean firing rate 
 | 
			
		||||
    as a function of the input for a range of inputs from 0 to 120.
 | 
			
		||||
    \part Show a spike-raster plot and a time-resolved firing rate of
 | 
			
		||||
    the neuron for an input current of 50 for three different
 | 
			
		||||
    adaptation time constants \texttt{adapttau} (10\,m, 100\,ms,
 | 
			
		||||
    1\,s). How do the neural responses look like and how do they
 | 
			
		||||
    depend on the adaptation time constant?
 | 
			
		||||
 | 
			
		||||
    \part Compute the correlations between each interspike interval $T_i$ and the next one $T_{i+1}$
 | 
			
		||||
    (serial interspike interval correlation at lag  1). Plot this correlation as a function of the 
 | 
			
		||||
    firing rate by varying the input as in (a).
 | 
			
		||||
    \uplevel{For all the following analysis we only use the spike
 | 
			
		||||
      times of the steady-state response, i.e. we skip all spikes
 | 
			
		||||
      occuring before at least three times the adaptation time
 | 
			
		||||
      constant.}
 | 
			
		||||
 | 
			
		||||
    \part How does this dependence change for different values of the adaptation 
 | 
			
		||||
    time constant \texttt{adapttau}?  Use values between 10\,ms and
 | 
			
		||||
    1\,s for \texttt{adapttau}.
 | 
			
		||||
    \part \label{ficurve} Measure the intensity-response curve of the
 | 
			
		||||
    neuron, that is the mean firing rate as a function of the input
 | 
			
		||||
    for a range of inputs from 0 to 120.
 | 
			
		||||
 | 
			
		||||
    \part Determine the firing rate at which the minimum interspike interval correlation
 | 
			
		||||
    occurs. How does the minimum correlation and this firing rate
 | 
			
		||||
    depend on the adaptation time constant \texttt{adapttau}?
 | 
			
		||||
    \part Additionally compute the correlations between each
 | 
			
		||||
    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
 | 
			
		||||
    of the input.
 | 
			
		||||
 | 
			
		||||
    \part How do 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}.
 | 
			
		||||
    \part How does the intensity-response curve and the
 | 
			
		||||
    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?
 | 
			
		||||
 | 
			
		||||
    \uplevel{If you still have time you can continue with the following question:}
 | 
			
		||||
 | 
			
		||||
    \part How do the interspike interval distributions look like for the different noise levels
 | 
			
		||||
    at some example values for the input and the adaptation time constant?
 | 
			
		||||
    \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}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -41,13 +41,10 @@ function spikes = lifadaptspikes( trials, input, tmaxdt, D, tauadapt, adaptincr
 | 
			
		||||
            if v >= vthresh
 | 
			
		||||
                v = vreset;
 | 
			
		||||
                a = a + adaptincr/tauadapt;
 | 
			
		||||
                spiketime = i*dt;
 | 
			
		||||
                if spiketime > 4.0*tauadapt
 | 
			
		||||
                    times(j) = spiketime - 4.0*tauadapt;
 | 
			
		||||
                times(j) = i*dt;
 | 
			
		||||
                j = j + 1;
 | 
			
		||||
            end
 | 
			
		||||
        end
 | 
			
		||||
        end
 | 
			
		||||
        spikes{k} = times;
 | 
			
		||||
    end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										11
									
								
								projects/project_isicorrelations/solution/firingrate.m
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								projects/project_isicorrelations/solution/firingrate.m
									
									
									
									
									
										Normal 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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										36
									
								
								projects/project_isicorrelations/solution/isicorrelations.m
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								projects/project_isicorrelations/solution/isicorrelations.m
									
									
									
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										50
									
								
								projects/project_isicorrelations/solution/lifadaptspikes.m
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								projects/project_isicorrelations/solution/lifadaptspikes.m
									
									
									
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										15
									
								
								projects/project_isicorrelations/solution/serialcorr.m
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								projects/project_isicorrelations/solution/serialcorr.m
									
									
									
									
									
										Normal 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
 | 
			
		||||
@ -36,22 +36,29 @@ resting potential before stimulus onset.
 | 
			
		||||
  project, however, you can treat it as if it was the intensity.)
 | 
			
		||||
 | 
			
		||||
  \begin{parts}
 | 
			
		||||
    \part{} Create a plot of the raw data. For each light intensity plot the average response 
 | 
			
		||||
    as a function of time. This plot should also depict the across-trial
 | 
			
		||||
    variability in an appropriate way.\\[0.5ex]
 | 
			
		||||
    \part{} You will notice that the responses have three main parts, a
 | 
			
		||||
    \part Create a plot of the raw data. For each light intensity plot
 | 
			
		||||
    the average response as a function of time. This plot should also
 | 
			
		||||
    depict the across-trial variability in an appropriate way.
 | 
			
		||||
 | 
			
		||||
    \part You will notice that the responses have three main parts, a
 | 
			
		||||
    pre-stimulus phase, the phase in which the light was on, and
 | 
			
		||||
    finally a post-stimulus phase. Create an characteristic curve that
 | 
			
		||||
    plots the response strength as a function of the stimulus
 | 
			
		||||
    intensity for the ``onset'' and the ``steady state''
 | 
			
		||||
    phases of the light response.\\[0.5ex]
 | 
			
		||||
    \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.
 | 
			
		||||
    \pate{} The membrane potential shows some fluctuations (noise)
 | 
			
		||||
    phases of the light response.
 | 
			
		||||
 | 
			
		||||
    \part The light switches on at time zero. Estimate the delay
 | 
			
		||||
    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
 | 
			
		||||
    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{questions}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user