Olfactory bulb juxtaglomerular models (Carey et al., 2015)

 Download zip file 
Help downloading and running models
Accession:152111
" ...We investigated how OB circuits shape inhalation-driven dynamics in MCs using a modeling approach that was highly constrained by experimental results. First, we constructed models of canonical OB circuits that included mono- and disynaptic feedforward excitation, recurrent inhibition and feedforward inhibition of the MC. We then used experimental data to drive inputs to the models and to tune parameters; inputs were derived from sensory neuron responses during natural odorant sampling (sniffing) in awake rats, and model output was compared to recordings of MC responses to odorants sampled with the same sniff waveforms. This approach allowed us to identify OB circuit features underlying the temporal transformation of sensory inputs into inhalation-linked patterns of MC spike output. ..."
Reference:
1 . Carey RM, Sherwood WE, Shipley MT, Borisyuk A, Wachowiak M (2015) Role of intraglomerular circuits in shaping temporally structured responses to naturalistic inhalation-driven sensory input to the olfactory bulb. J Neurophysiol 113:3112-29 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Olfactory bulb;
Cell Type(s): Olfactory bulb main mitral GLU cell; Olfactory receptor GLU cell; Olfactory bulb main interneuron periglomerular GABA cell; Olfactory bulb main interneuron granule MC GABA cell; Olfactory bulb main interneuron granule TC GABA cell;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: MATLAB;
Model Concept(s): Olfaction;
Implementer(s):
Search NeuronDB for information about:  Olfactory bulb main mitral GLU cell; Olfactory receptor GLU cell; Olfactory bulb main interneuron periglomerular GABA cell; Olfactory bulb main interneuron granule MC GABA cell; Olfactory bulb main interneuron granule TC GABA cell;
function traces = preprocess_remove_bleaching(rawtraces)
    
	crv_tc = {1:100 801:900 1301:1400 1751:1850 2201:2300}; %spaces in between bouts
	crv_t = cellfun(@mean,crv_tc); %[crv_tc{:}];
	
    [numrows, trlen] = size(rawtraces);
    traces = rawtraces;
	threshes = zeros(1,numrows);
    baselines = zeros(1,numrows);
    
	for row = 1:numrows
		dec = rawtraces(row,:);%deconvolve(dec',100,0.325);
		dec(1) = dec(2); %first point usually shows filtering artifact
        dec(end-25:end) = dec(end-25); %because it's easier to just do it this way
		
		%remove bleaching:
		%calc exp. fit to inter-bout intervals:
		%expcfit = fit(crv_t',dec(crv_t)','exp2'); %going directly doesn't work all the time
		crv_binned = cellfun(@mean,subscell(dec,crv_tc));
		
        [min1hz_y, min1hz_t] = min(dec(250:650));
        min1hz_t = min1hz_t + 250;
        
        fit_t = [crv_t(1) min1hz_t crv_t(2:end)];
        fit_y = [crv_binned(1) min1hz_y crv_binned(2:end)];
        
		opt = optimset('Display','off','DiffMinChange',1.0e-8,'DiffMaxChange',0.1,'MaxFunEvals',600,'MaxIter',400);
	    expcfit = lsqcurvefit(@expcurve,[0.001 0.002 0 0], fit_t, fit_y, [0 0 -Inf -Inf], [Inf Inf Inf Inf], opt);
        
        %figure(row),plot(dec),hold all, plot(expcurve(expcfit,1:trlen))
        
		decf = dec - expcurve(expcfit,1:trlen); %subtract fit
        decf = smooth(decf')';
		
		threshes(row) = mean(decf([crv_tc{:}])) + std(decf([crv_tc{:}])) .* 1;
        baselines(row) = mean(decf([crv_tc{:}]));
        
		%decf(decf < threshes(row)) = baselines(row);
        %decf([crv_tc{:}]) = baselines(row);
        decf = smooth(decf',15)';

        decf = deconvolve(decf,100,0.325);
		decf(1:100) = decf(100);
        decf(decf < 0) = 0;
        
        decf = hpf(decf,100,2,0.01); %this doesn't work?
        
        traces(row,:) = decf;
	end
    
end

function out = subscell(c,inds)
	out = inds;
	for n = 1:length(inds)
		out{n} = c(inds{n});
	end
end

function y = expcurve(A,x)
	y = A(1) .* exp(-A(2).*x + A(3)) + A(4);
end

Loading data, please wait...