Robust transmission in the inhibitory Purkinje Cell to Cerebellar Nuclei pathway (Abbasi et al 2017)

 Download zip file 
Help downloading and running models

1 . Abbasi S, Hudson AE, Maran SK, Cao Y, Abbasi A, Heck DH, Jaeger D (2017) Robust Transmission of Rate Coding in the Inhibitory Purkinje Cell to Cerebellar Nuclei Pathway in Awake Mice PLOS Computational Biology
2 . Steuber V, Schultheiss NW, Silver RA, De Schutter E, Jaeger D (2011) Determinants of synaptic integration and heterogeneity in rebound firing explored with data-driven models of deep cerebellar nucleus cells. J Comput Neurosci 30:633-58 [PubMed]
3 . Steuber V, Jaeger D (2013) Modeling the generation of output by the cerebellar nuclei. Neural Netw 47:112-9 [PubMed]
4 . Steuber V, De Schutter E, Jaeger D (2004) Passive models of neurons in the deep cerebellar nuclei: the effect of reconstruction errors Neurocomputing 58-60:563-568
5 . Luthman J, Hoebeek FE, Maex R, Davey N, Adams R, De Zeeuw CI, Steuber V (2011) STD-dependent and independent encoding of input irregularity as spike rate in a computational model of a cerebellar nucleus neuron. Cerebellum 10:667-82 [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: Cerebellum;
Cell Type(s): Cerebellum deep nucleus neuron;
Channel(s): I h; I T low threshold; I L high threshold; I Na,p; I Na,t; I K,Ca; I K;
Gap Junctions:
Receptor(s): AMPA; NMDA; GabaA;
Transmitter(s): Gaba; Glutamate;
Simulation Environment: GENESIS;
Model Concept(s): Synaptic Integration;
Implementer(s): Jaeger, Dieter [djaeger at];
Search NeuronDB for information about:  GabaA; AMPA; NMDA; I Na,p; I Na,t; I L high threshold; I T low threshold; I K; I h; I K,Ca; Gaba; Glutamate;
.cvsignore *
display.m *
get.m *
set.m *
subsref.m *
function obj = ...

% cip_trace_profile - Creates and collects test results of a cip_trace.
% Usage 1:
% obj = 
%   cip_trace_profile(a_cip_trace, a_spikes, a_spont_spike_shape, 
%		      results, id, props)
%   Parameters:
%	a_cip_trace: A cip_trace object.
%	a_spikes: A spikes object.
%	a_spont_spike_shape: A spike_shape object for spont spikes.
%	a_pulse_spike_shape: A spike_shape object for pulse spikes.
%	results: A structure containing test results.
%	id: Identification string.
%	props: A structure with any optional properties.
% Usage 2:
% obj = cip_trace_profile(data_src, dt, dy, pulse_time_start, pulse_time_width, 
%	                  id, props)
%    Parameters:
%	data_src: The trace column OR the filename.
%	dt: Time resolution [s]
%	dy: y-axis resolution [ISI (V, A, etc.)]
%	pulse_time_start, pulse_time_width:
%		Start and width of the pulse [dt]
%	id: Identification string.
%	props: See trace object.
% Description:
% The first usage is fully customizable to be used from subclass constructors.
% The second usage generates the spikes and spont_spike_shape objects, and
% collects some generic test results from them. 
%   Returns a structure object with the following fields:
%	trace, spikes, spont_spike_shape, results, id, props.
% General methods of cip_trace_profile objects:
%   cip_trace_profile	- Construct a new cip_trace_profile object.
%   plot		- Graph the cip_trace_profile.
%   display		- Returns and displays the identification string.
%   get			- Gets attributes of this object and parents.
%   subsref		- Allows usage of . operator.
% Additional methods:
%   See methods('cip_trace_profile')
% See also: cip_trace, spikes, spike_shape
% $Id$
% Author: Cengiz Gunay <>, 2004/08/25

% Copyright (c) 2007 Cengiz Gunay <>.
% This work is licensed under the Academic Free License ("AFL")
% v. 3.0. To view a copy of this license, please look at the COPYING
% file distributed with this software or visit

if nargin == 0 % Called with no params, creates empty object
  obj.trace = trace;
  obj.spikes = spikes;
  obj.spont_spike_shape = spike_shape;
  obj.pulse_spike_shape = spike_shape;
  obj.props = struct([]);
  obj = class(obj, 'cip_trace_profile', results_profile);
elseif isa(varargin{1}, 'cip_trace_profile') % copy constructor?
  obj = varargin{1};
elseif isnumeric(varargin{2})
  % Create all data structures and collect results
  if nargin < 7
    props = struct([]);
    props = varargin{7};

  % Create cip_trace
  obj.trace = cip_trace(varargin{1:6}, props); 

  % Get spikes
  obj.spikes = spikes(obj.trace);

  % Get spont spike_shape
  % Prefix spike shape measures from different periods
  obj.spont_spike_shape = ...
      spike_shape(withinPeriod(obj.trace, periodIniSpont(obj.trace)), ...
		  withinPeriod(obj.spikes, periodIniSpont(obj.trace)));
  spont_sh_results = prefixStruct(getResults(obj.spont_spike_shape), 'Spont');

  obj.pulse_spike_shape  = ...
      spike_shape(withinPeriod(obj.trace, periodPulse(obj.trace)), ...
		  withinPeriod(obj.spikes, periodPulse(obj.trace)));
  pulse_sh_results = prefixStruct(getResults(obj.pulse_spike_shape), 'Pulse');

  % Misc measures
  misc_results.PulseSpontAmpRatio = ...
      pulse_sh_results.PulseAmplitude / spont_sh_results.SpontAmplitude;

  obj.props = props;  

  % Create the object
  % Calculate trace & spikes tests
  % Calculate all shape tests (using spike_shape.getResults)
  % (Gets a NaN filled structure if no spikes found.)
  % And merge them together
  obj = class(obj, 'cip_trace_profile', ...
	      results_profile(mergeStructs(getResults(obj.trace, obj.spikes), ...
					   spont_sh_results, pulse_sh_results, ...
					   misc_results), ...
  % Create object with custom data (used from subclasses)
  if nargin < 7
    props = struct([]);
    props = varargin{7};

  [ obj.trace, obj.spikes, obj.spont_spike_shape obj.pulse_spike_shape ] = ...
  obj.props = props;

  % Create the object
  obj = class(obj, 'cip_trace_profile', results_profile(varargin{5:6}));

Loading data, please wait...