Purkinje neuron network (Zang et al. 2020)

 Download zip file 
Help downloading and running models
Accession:266799
Both spike rate and timing can transmit information in the brain. Phase response curves (PRCs) quantify how a neuron transforms input to output by spike timing. PRCs exhibit strong firing-rate adaptation, but its mechanism and relevance for network output are poorly understood. Using our Purkinje cell (PC) model we demonstrate that the rate adaptation is caused by rate-dependent subthreshold membrane potentials efficiently regulating the activation of Na+ channels. Then we use a realistic PC network model to examine how rate-dependent responses synchronize spikes in the scenario of reciprocal inhibition-caused high-frequency oscillations. The changes in PRC cause oscillations and spike correlations only at high firing rates. The causal role of the PRC is confirmed using a simpler coupled oscillator network model. This mechanism enables transient oscillations between fast-spiking neurons that thereby form PC assemblies. Our work demonstrates that rate adaptation of PRCs can spatio-temporally organize the PC input to cerebellar nuclei.
Reference:
1 . Zang Y, Hong S, De Schutter E (2020) Firing rate-dependent phase responses of Purkinje cells support transient oscillations. Elife [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell; Realistic Network;
Brain Region(s)/Organism: Cerebellum;
Cell Type(s): Cerebellum Purkinje GABA cell;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON; MATLAB;
Model Concept(s): Phase Response Curves; Action Potentials; Spatio-temporal Activity Patterns; Synchronization; Action Potential Initiation; Oscillations;
Implementer(s): Zang, Yunliang ; Hong, Sungho [shhong at oist.jp];
Search NeuronDB for information about:  Cerebellum Purkinje GABA cell;
clc;
close all;
clear all;

basal = dlmread('./simdata/curr/basal_condition.dat');

formatSpec = '%03d';
%v, availability of Na, Na current,persistent Na, sk2,BKf,BKs,Cap, axial current 

N_dim = 1000/0.02+1;
width = 2; height = 2;

stim_step = [0.25 0.25 0.1 0.1 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05];

t = 0:0.02:1000;
dt = 0.02;

jind_ph =[0.2 0.6 0.8;
0.2 0.6  0.8;  
0.2 0.6 0.8];

k_base = [
7.76e-3 -6.05e-3
2.3e-3 -6.41e-3
1.615e-3 -8.8e-3
];

k_base2 = [
0.052565 -0.01238
0.04207 -0.0167604
0.039485 -0.02

];
k_base2 = [
0 0
0 0
0 0
];

k_base3 = [
0.0944 -0.0121
0.0838 -0.0214
0.083 -0.0256

];

% ilk should be 1, 7 ,11
 for ilk = 7 : 7

     j_max = floor(basal(basal(:,1)==ilk,2)*1/stim_step(ilk)); % 0.5 ms 
     spike_base = basal(basal(:,1)==ilk,3);
     jind = round(jind_ph(2,:)*basal(basal(:,1)==ilk,2)/stim_step(ilk));

     str = num2str(ilk,formatSpec);
     cup = [];
     cun = [];
     k = 1;
      for j = jind
        str2 = num2str(j,formatSpec);
        fileName = ['./curr/spike_times_' str '_' str2 '.dat'];
        rec = dlmread(fileName);
        v = rec(1:N_dim);
        av = rec(N_dim*3+1:N_dim*4);
        narsg = rec(N_dim*4+1:N_dim*5);
        nap = rec(N_dim*5+1:N_dim*6);
        sk2 = rec(N_dim*6+1:N_dim*7);
        bkf = rec(N_dim*7+1:N_dim*8);
        bks = rec(N_dim*8+1:N_dim*9);
        cap = rec(N_dim*9+1:N_dim*10);
        ih = rec(N_dim*10+1:N_dim*11);
        kv3 = rec(N_dim*11+1:N_dim*12);
        
        [pks,locs] = findpeaks(v,'MinPeakHeight',-10);
        a = t(locs)<(spike_base-5);
        b = locs(a);
        isi = t(b(end))-t(b(end-1));
        cbas_na = narsg(round(b(end)+j*stim_step(ilk)/dt));
        cbas_nap = nap(round(b(end)+j*stim_step(ilk)/dt));
        cbas_cap = cap(round(b(end)+j*stim_step(ilk)/dt));
        
        cbas_kv3 = kv3(round(b(end)+j*stim_step(ilk)/dt));
        cbas_sk2 = sk2(round(b(end)+j*stim_step(ilk)/dt));
        cbas_bkf = bkf(round(b(end)+j*stim_step(ilk)/dt));
        cbas_bks = bks(round(b(end)+j*stim_step(ilk)/dt));
        
        % find the stimulus timing and end of the stimulus
        
        cup = [cup;narsg+nap+cap];
        cun = [cun;kv3+sk2+bks+bkf];
        
        figure('Units','inches',...
'Position',[10 5 width height],...
'PaperPositionMode','auto');
        plot((t-t(b(end-1))-2*isi),narsg+nap+cap - cbas_na-cbas_nap-cbas_cap,(t-t(b(end-1))-2*isi),kv3+sk2+bks+bkf- cbas_kv3-cbas_sk2-cbas_bkf-cbas_bks,'linewidth',1);
        ylim([-10e-3 5e-3])
        xlim([jind_ph(2,k)*isi-0.1 jind_ph(2,k)*isi+0.6]);

        k = k+1
        end
 end

Loading data, please wait...