Olfactory Bulb mitral-granule network generates beta oscillations (Osinski & Kay 2016)

 Download zip file 
Help downloading and running models
Accession:185464
This model of the dendrodendritic mitral-granule synaptic network generates gamma and beta oscillations as a function of the granule cell excitability, which is represented by the granule cell resting membrane potential.
Reference:
1 . Osinski BL, Kay LM (2016) Granule cell excitability regulates gamma and beta oscillations in a model of the olfactory bulb dendrodendritic microcircuit. J Neurophysiol 116:522-39 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Dendrite;
Brain Region(s)/Organism: Olfactory bulb;
Cell Type(s): Olfactory bulb main interneuron granule MC GABA cell; Olfactory bulb main interneuron granule TC GABA cell; Abstract integrate-and-fire leaky neuron;
Channel(s): I N; I Sodium; I Calcium;
Gap Junctions:
Receptor(s): AMPA; NMDA; Gaba;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: MATLAB;
Model Concept(s): Oscillations; Active Dendrites; Extracellular Fields; Calcium dynamics; Gamma oscillations; Beta oscillations; Olfaction;
Implementer(s): Osinski, Boleslaw [boleszek at uchicago.edu];
Search NeuronDB for information about:  Olfactory bulb main interneuron granule MC GABA cell; Olfactory bulb main interneuron granule TC GABA cell; AMPA; NMDA; Gaba; I N; I Sodium; I Calcium; Gaba; Glutamate;
function [Mitral GraProximal GraDistal param InputCurrent MitLFPs GraDistLFPs] = IandVLFP_GCE_tdepVrest(input_file, VrestGC)


% Simulate LFP activity using membrane voltage

% INPUTS
%
% input_file  -  parameter file name
% VrestGC     -  1D vector of VrestGC values

% OUTPUTS

numtp = length(VrestGC);

MitLFPs.GradistMitGlobal = zeros(numtp,1);
MitLFPs.GradistMit1 = zeros(numtp,1);
MitLFPs.GradistMit2 = zeros(numtp,1);
MitLFPs.GradistMit3 = zeros(numtp,1);


GraDistLFPs.VG = zeros(numtp,1);

MitLFPs.VG = zeros(numtp,1);
MitLFPs.V1 = zeros(numtp,1);
MitLFPs.V2 = zeros(numtp,1);
MitLFPs.V3 = zeros(numtp,1);

% GraProxLFPs = zeros(numtp,1);
% GraDistLFPs = zeros(numtp,1);

%%% Must sum ALL currents into each neuron type

    [Mitral GraProximal GraDistal param InputCurrent] = OB_network_GCE_tdepVrest(input_file, VrestGC);
    % Mitral LFP
    nmit  = length(Mitral);
    % Filter input currrents into Mit (ignore respiration)
    Gradistmit_filtered = zeros(nmit,length(Mitral{1}.V));
%     Glomit_filtered = zeros(nmit,length(Mitral{1}.V));
    Mitral_filtered = zeros(nmit,length(Mitral{1}.V));
    for n = 1:nmit
%         Gradistmit_filtered(n,:) = filtfilt(Hd.Numerator,1,InputCurrent.Igradistmit(n,:));
        Gradistmit_filtered(n,:) = InputCurrent.Igradistmit(n,:);
        Gradistmit_filtered(n,:) = smoothts(Gradistmit_filtered(n,:),'b',50);
%         Glomit_filtered(n,:) = filtfilt(Hd.Numerator,1,InputCurrent.Iglomit(n,:));
%         Glomit_filtered(n,:) = smoothts(Glomit_filtered(n,:),'b');
        Mitral_filtered(n,:) = Mitral{n}.V;
        Mitral_filtered(n,:) = smoothts(Mitral_filtered(n,:),'b',50);
    end
    MitLFPs.GradistMitGlobal(:) = sum(Gradistmit_filtered,1)/nmit;
    if mod(nmit/3,1) == 0
    MitLFPs.GradistMit1(:) = sum(Gradistmit_filtered(1:(nmit/3),:),1)/(nmit/3);
    MitLFPs.GradistMit2(:) = sum(Gradistmit_filtered((1+nmit/3):2*(nmit/3),:),1)/(nmit/3);
    MitLFPs.GradistMit3(:) = sum(Gradistmit_filtered((1+2*nmit/3):end,:),1)/(nmit/3);
    end
    
    MitLFPs.VG(:) = sum(Mitral_filtered,1)/nmit;
    if mod(nmit/3,1) == 0
    MitLFPs.V1(:) = sum(Mitral_filtered(1:(nmit/3),:),1)/(nmit/3);
    MitLFPs.V2(:) = sum(Mitral_filtered((1+nmit/3):2*(nmit/3),:),1)/(nmit/3);
    MitLFPs.V3(:) = sum(Mitral_filtered((1+2*nmit/3):end,:),1)/(nmit/3);
    end
%     MitILFPs.GloMit(:,ii) = sum(Glomit_filtered,1);
    
    
%     % Proximal Granule LFP
%     ngra  = length(GraProximal);
%     % Filter input currrents into proximal Gra
%     Mitgraprox_filtered = zeros(ngra,length(GraProximal{1}.V));
%     Pyrgraprox_filtered = zeros(ngra,length(GraProximal{1}.V));
%     Gragraprox_filtered = zeros(ngra,length(GraProximal{1}.V));
%     for n = 1:ngra
%         Mitgraprox_filtered(n,:) = filtfilt(Hd.Numerator,1,InputCurrent.Imitgraprox(n,:));
%         Mitgraprox_filtered(n,:) = smoothts(Mitgraprox_filtered(n,:),'b');
%         Pyrgraprox_filtered(n,:) = filtfilt(Hd.Numerator,1,InputCurrent.Ipyrgraprox(n,:));
%         Pyrgraprox_filtered(n,:) = smoothts(Pyrgraprox_filtered(n,:),'b');
%         Gragraprox_filtered(n,:) = filtfilt(Hd.Numerator,1,InputCurrent.Igragra(n,:));
%         Gragraprox_filtered(n,:) = smoothts(Gragraprox_filtered(n,:),'b');
%     end
%     GraILFPs.MitGra(:,ii) = sum(Mitgraprox_filtered,1);
%     GraILFPs.PyrGra(:,ii) = sum(Pyrgraprox_filtered,1);
%     GraILFPs.GraGra(:,ii) = sum(Gragraprox_filtered,1);
    
    % Distal Granule LFP
    ngra  = length(GraDistal);
    Gradist_filtered = zeros(ngra,length(GraDistal{1}.V));
    for n = 1:ngra
%         MitGradist_filtered(n,:) = filtfilt(Hd.Numerator,1,GraDistal{n}.V);
        Gradist_filtered(n,:) = GraDistal{n}.V;
        Gradist_filtered(n,:) = smoothts(Gradist_filtered(n,:),'b');
    end
    GraDistLFPs.VG(:) = sum(Gradist_filtered,1)/ngra;
    


end