Understanding odor information segregation in the olfactory bulb by MC/TCs (Polese et al. 2014)

 Download zip file 
Help downloading and running models
Accession:168418
Odor identification is one of the main tasks of the olfactory system. It is performed almost independently from the concentration of the odor providing a robust recognition. This capacity to ignore concentration information does not preclude the olfactory system from estimating concentration itself. Significant experimental evidence has indicated that the olfactory system is able to infer simultaneously odor identity and intensity. However, it is still unclear at what level or levels of the olfactory pathway this segregation of information occurs. In this work, we study whether this odor information segregation is performed at the input stage of the olfactory bulb: the glomerular layer.
Reference:
1 . Polese D, Martinelli E, Marco S, Di Natale C, Gutierrez-Galvez A (2014) Understanding odor information segregation in the olfactory bulb by means of mitral and tufted cells. PLoS One 9:e109716 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
Cell Type(s): Olfactory bulb main mitral GLU cell; Olfactory bulb main interneuron periglomerular GABA cell; Olfactory bulb main tufted middle GLU cell; Olfactory bulb short axon cell;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: MATLAB;
Model Concept(s): Action Potentials; Olfaction;
Implementer(s):
Search NeuronDB for information about:  Olfactory bulb main mitral GLU cell; Olfactory bulb main interneuron periglomerular GABA cell; Olfactory bulb main tufted middle GLU cell;
 classdef glomerulus < handle
    %% GLOMERULUS
    % This class implements a glomerulus.
    % The glomerulus have four neurons Mitral Cell, Periglomerular Cell 
    % External Tufted Cell and superficial Short Axons.  
    %%
    %  Written by Davide Polese davide.polese@artov.imm.cnr.it
    %  Consiglio Nazionale delle Ricerche - Istituto per la Microelettronica e Microsistemi
    %  Via del Fosso del Cavaliere, 100 00133 Roma
    
    properties(SetAccess = private)
        
        N_input_spike = 0;
        n_input_ORN = 0;
        n_lateral_input = 0;
        %% Matrix of connection include synaptic type
        % -1 Inhitory synapse
        %  0 No synapse
        % +1 Excitatory synapse
        MatrixConnection = [0, -1, 0, 0, 0;       %MC PG ET sSA GloIn
                            1,  0, 1, 1, 0;       %PG 
                            0,  0, 0, 0, 1;       %ET
                            0,  0, 1, 0, 0];      %sSA
        
        M1;
        P1;
        T1;
        sSA1;
        
        
        out = 0;
        out_inib = 0;
        spike_flag_out = 0;
        spike_flag_out_inib = 0;
        vout = 0;
        
        %% Matrix containing time of spike
        SpikeMatrix 
    end
    
    
    properties (Dependent = true, SetAccess = private)
        sinapsiM1;
        sinapsiP1;
        sinapsiT1;
    end
    
    methods
        
        function set_SpikeMatrix(GLO, row, col, value)
            GLO.SpikeMatrix(row,col) = value;
        end
        
        function sinapsiM1 = get.sinapsiM1(GLO)
                        % ORN, PG, ET
            sinapsiM1 = [ones(1,GLO.n_input_ORN),-1, 1]; 
        end
        
        function sinapsiP1 = get.sinapsiP1(GLO)
                        %sSA MC ET 
            sinapsiP1 = [ones(1,GLO.n_input_ORN), ones(1,GLO.n_lateral_input), +1, +1];  
        end
        
        function sinapsiT1 = get.sinapsiT1(GLO)
            sinapsiT1 = [ones(1,GLO.n_input_ORN), ones(1,GLO.n_lateral_input)];
        end
        
        function GLO = glomerulus(N_INPUT, N_INIBIZIONE)
            if nargin==0
                N_INPUT = 0;
                N_INIBIZIONE = 0;
            end
            GLO.n_input_ORN = N_INPUT;
            GLO.n_lateral_input = N_INIBIZIONE;
        end
        
        function InitGlo(GLO)
            %% Initialization of neurons        
            % N = NeuronIzh([a, d, e ],  [v(0), u(0)], t_step, t0, V_peak, V_th, V_rest, V_inib, [tau1, tau2], N_neuron, input_neuron) 
            GLO.M1 = NeuronIzh([1, 40, 0.4, 2.6], [-55, 0], 0.1, 0, 35, -50, -55, -50, 200,[0 0 10,2],1, [2,3,5:(5+GLO.n_input_ORN - 1)]);
            GLO.P1 = NeuronIzh([0.049, 5.9, 0.0167, -0.94], [-53.1, 0], 0.1, 0, 35, -20, -53.1, -20, 50, [0 0 10, 2],2, [1, 3, 5:(5+GLO.n_input_ORN + GLO.n_lateral_input - 1)]);
            GLO.T1 = NeuronIzh([1, 40, 0.4, 2.6], [-55, 0], 0.1, 0, 35, -50, -55, -50,200,[0 0 10,2],3, [5:(5+GLO.n_input_ORN + GLO.n_lateral_input - 1)]);
            GLO.sSA1 = NeuronIzh([0.061 58 0.049 -0.68], [-67 0], 0.1, 0, 35, -30, -67, -30, 150, [5 1 10 2], 4, [3]);
            %% Initialization of weight
            Init_wij(GLO.M1,GLO.sinapsiM1, [40 0] );
            Init_wij(GLO.P1,GLO.sinapsiP1, [40*ones(1,15), 40 40 ] );
            Init_wij(GLO.T1,GLO.sinapsiT1, [40*ones(1,15)] );
            Init_wij(GLO.sSA1, [+1], [19.5]);
            
            GLO.SpikeMatrix(1:4+GLO.n_input_ORN+GLO.n_lateral_input,1:100)=-1000;
        end
       

        function State(GLO, Input, Input_spike, Input_lateral, Input_lateral_spike, I_ext)
            %% updating Spike matrix
            GLO.N_input_spike = GLO.N_input_spike + [Input_spike, Input_lateral_spike];
            ind = find([Input_spike, Input_lateral_spike]);                           % index of neuron spiking
            GLO.SpikeMatrix([4+ind], GLO.N_input_spike(ind) ) = GLO.M1.t;

            
            %% Calculation of potential
            PotentialNI(GLO.T1,[Input, Input_lateral],I_ext, GLO);
            PotentialNI(GLO.sSA1,[GLO.T1.Iout], 0, GLO);
            PotentialNI(GLO.P1,[Input, Input_lateral, GLO.M1.Iout, GLO.T1.Iout], I_ext, GLO);
            PotentialNI(GLO.M1,[Input,GLO.P1.Iout, GLO.T1.Iout],1*I_ext, GLO);
            
            %% Output of Glomerulo
            GLO.spike_flag_out = GLO.M1.spike_flag;
            GLO.spike_flag_out_inib = GLO.sSA1.spike_flag;
            GLO.out_inib = GLO.sSA1.Iout;
            GLO.out = GLO.M1.Iout;
            GLO.vout = GLO.M1.v;
        end
    end
end

Loading data, please wait...