L5 pyr. cell spiking control by oscillatory inhibition in distal apical dendrites (Li et al 2013)

 Download zip file   Auto-launch 
Help downloading and running models
This model examined how distal oscillatory inhibition influences the firing of a biophysically-detailed layer 5 pyramidal neuron model.
1 . Li X, Morita K, Robinson HP, Small M (2013) Control of layer 5 pyramidal cell spiking by oscillatory inhibition in the distal apical dendrites: a computational modeling study. J Neurophysiol 109:2739-56 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism: Neocortex;
Cell Type(s): Neocortex L5/6 pyramidal GLU cell;
Channel(s): I K,Ca; I Na, leak;
Gap Junctions:
Receptor(s): AMPA;
Transmitter(s): Dopamine;
Simulation Environment: NEURON; MATLAB;
Model Concept(s): Intrinsic plasticity;
Implementer(s): Moradi, Keivan [k.moradi at gmail.com]; Robinson, H.P.C. [hpcr at cam.ac.uk]; Small, Michael ; Li, Xiumin ;
Search NeuronDB for information about:  Neocortex L5/6 pyramidal GLU cell; AMPA; I K,Ca; I Na, leak; Dopamine;
function makestim_GABAgamma(poidur, stimdur, gammafreq, prespfreqs);

% make the conductance waveform of 'gamma GABA full stochastic' (the same as the classical one except for 'no synaptic delay' (see below))
% [condwaves, cumrandoms] = makestim_GABAgamma(poidur, stimdur, gammafreq, prespfreqs)
% <input variables>
%   poidur : duration of the preceding Poisson conductance ([sec])
%   stimdur : duration of the gamma GABA conductance ([sec])
%   gammafreq : frequency of the pressumed LFP gamma oscillation ([Hz])
%   prespfreqs : set of frequencies of the total presynaptic GABAergic (FS) spikes ([Hz])
% <output variables>
%   condwaves : conductance waveforms
%   cumrandoms : random numbers used (A{k_prespfreq}{1:randoms-for-cycle, 2:randoms-for-phase, 3:randoms-for-Poisson}) (NB: CUMLATIVELY including ALL the random numbers used)
% NB: '1 ms synaptic delay', which was included in all of the previous stimuli, is NO LONGER included here! (should be careful at the time of the analysis!!)
% e.g.,
%   [G,R] = makestim_GABAgamma(2, 5, 40, [600:20:1200]);
% Kenji Morita
% Sep 2007

% Modified from Kenji's codes by Min

for j=1:21 
    poidur=1; stimdur=11;  %unit-s
    prespfreqs=2000;     %event number
    gammafreq=2+4*(j-1);   %frequency of each synapse

% sampling rate used in Ginj
samplerate = 20000; % [Hz]
% poidur=0.5; stimdur=4;
% gammafreq=40; prespfreqs=[1000];
% generate random numbers
prespfreqs_diff = [prespfreqs(1) diff(prespfreqs)];
tmp_cyclerandoms = [];
tmp_phaserandoms = [];
tmp_poirandoms = [];
for k = 1:length(prespfreqs_diff)
    % randoms for "which gamma cycle"
    randoms{k}{1} = rand(prespfreqs_diff(k)*gammadur,1);
    tmp_cyclerandoms = [tmp_cyclerandoms; randoms{k}{1}];
    cumrandoms{k}{1} = tmp_cyclerandoms;
    % randoms for "at which phase within a gamma cycle"
    randoms{k}{2} = rand(prespfreqs_diff(k)*gammadur,1);
    tmp_phaserandoms = [tmp_phaserandoms; randoms{k}{2}];
    cumrandoms{k}{2} = tmp_phaserandoms;
    % randoms for poisson
    randoms{k}{3} = rand(prespfreqs_diff(k)*poidur,1);
    tmp_poirandoms = [tmp_poirandoms; randoms{k}{3}];
    cumrandoms{k}{3} = tmp_poirandoms;

% conductance waveforms
% preparation for gamma

% load FS_inv_spline % load spline representation of the FS cumulative probability function, which was made by 'Mccum'
% spike_cum_function = FS_inv_spline;

load GABAspline_Gaussian_delta2_5.mat  %change delta_2 in Mccum_Gaussian.m accordingly!!!

spike_cum_function = FS_inv_spline;

num_points_per_cycle = (1/gammafreq) * samplerate;

for k = 1:length(prespfreqs)
    % gamma
    indice_cycle = ceil(cumrandoms{k}{1} * (gammafreq*gammadur)); % which gamma cycle the relevant pre spike is belonging to
    cycle_start_points = (poidur + (indice_cycle - 1) * (1/gammafreq)) * samplerate; % - 10*0.001  points (wrt samplerate) of the gamma cycle including the relevant pre spike
    prespphases_per_cycle = ppval(spike_cum_function, cumrandoms{k}{2});
    presppoints_per_cycle = round(num_points_per_cycle * prespphases_per_cycle); % points (wrt samplerate) of the presynaptic spikes within a single gamma cycle
    presppoints = cycle_start_points + presppoints_per_cycle; % points (wrt samplerate) of the presynaptic spikes from the beginning
    for k_spgamma = 1:length(presppoints)
        tmp_gamma(k_spgamma) = round(presppoints(k_spgamma))/samplerate*1000;
    % add the preceding Poisson conductance
    presppoints_Poisson = round(samplerate * poidur * cumrandoms{k}{3});
    for k_prespPoisson = 1:length(presppoints_Poisson)
        tmp_start(k_prespPoisson) = (presppoints_Poisson(k_prespPoisson) + 1)/samplerate*1000; % '+1' is just avoid to become 0
    prespiketime_gamma = length(tmp_start)+length(tmp_gamma);
    prespiketime_gamma = [prespiketime_gamma; tmp_start'; tmp_gamma'];
    save(['GABAprespikes_delta2_' num2str(delta2) '_' num2str(gammafreq) '_' num2str(prespfreqs) '.dat'], 'prespiketime_gamma', '-ascii');

clear all;

Loading data, please wait...