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

 Download zip file 
Help downloading and running models
Accession:229279

References:
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;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: GENESIS;
Model Concept(s): Synaptic Integration;
Implementer(s): Jaeger, Dieter [djaeger at emory.edu];
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;
/
codes
pandora-matlab-1.4compat2
classes
@tests_db
private
.cvsignore *
abs.m
addColumns.m
addLastRow.m
addRow.m
allocateRows.m
anyRows.m
approxMappingLIBSVM.m
approxMappingNNet.m
approxMappingSVM.m
assignRowsTests.m
checkConsistentCols.m
compareRows.m
corrcoef.m
cov.m
crossProd.m
dbsize.m
delColumns.m
diff.m
display.m
displayRows.m
displayRowsCSV.m
displayRowsTeX.m
end.m
enumerateColumns.m
eq.m
factoran.m
fillMissingColumns.m
ge.m
get.m *
getColNames.m
groupBy.m
gt.m
histogram.m
invarValues.m
isinf.m
isnan.m
isnanrows.m
joinRows.m
kmeansCluster.m
le.m
lt.m
matchingRow.m
max.m
mean.m
meanDuplicateRows.m
min.m
minus.m
mtimes.m
ne.m
noNaNRows.m
onlyRowsTests.m
physiol_bundle.m
plot.m
plot_abstract.m
plot_bars.m
plotBox.m
plotCircular.m
plotCovar.m
plotImage.m
plotrow.m
plotrows.m
plotScatter.m
plotScatter3D.m
plotTestsHistsMatrix.m
plotUITable.m
plotUniquesStats2D.m
plotUniquesStatsBars.m
plotUniquesStatsStacked3D.m
plotXRows.m
plotYTests.m
plus.m
princomp.m
processDimNonNaNInf.m
rankMatching.m
rdivide.m
renameColumns.m
rop.m
rows2Struct.m
set.m *
setProp.m *
setRows.m
shufflerows.m
sortrows.m
sqrt.m
statsAll.m
statsBounds.m
statsMeanSE.m
statsMeanStd.m
std.m
subsasgn.m
subsref.m
sum.m
swapRowsPages.m
tests_db.m
tests2cols.m
tests2idx.m
tests2log.m
testsHists.m
times.m
transpose.m
uminus.m
unique.m
uop.m
vertcat.m
                            
function an_image_plot = plotUniquesStats2D(a_db, unique_test1, unique_test2, ...
                                            stat_test, title_str, props)

% plotUniquesStats2D - 2D image plot of the change in column mean for unique values of two other columns.
%
% Usage:
% an_image_plot = plotUniquesStats2D(a_db, unique_test1, unique_test2, 
% 					stat_test, title_str, props)
%
% Parameters:
%   a_db: A tests_db.
%   unique_test1, unique_test2: Columns whose unique values make up the X
%   		& Y of the 2D image plot.
%   stat_test: Column for which statsMeanSTD will be calculated for each
%   		unique value.
%   props: A structure with any optional properties.
%	popMean: If specified, plot a dotted line specifying the
%		population mean. If NaN, calculate from given a_db.
%	popDev: Use this value +/- to choose colorbar extents
%		(default=.3 or 2*STD if popMean=NaN).
%	colorbar: Show vertical colorbar axis (see plotImage).
%	uniqueVals1,uniqueVals2: Use these unique values for
%			unique_test1,unique_test2.
%	statsFunc: tests_db/stats* method to use (default: statsMeanStd).
%	statsRow: The row to pick from statsFunc results (default: mean).
% 	(rest passed to plotImage and plot_abstract).
% 
% Description:
%
% Returns:
%	an_image_plot: A plot_abstract object to be plotted.
%
% Example:
% >> plotFigure(plotUniquesStats2D(triplet_param_success_db, ...
%               'F_tau_m', 'S_tau_m', 'successDefault', ...
% 	 	'accross triplets', 
% 		struct('fixedSize', [4 3], 'popMean', NaN, ...
%		'colorbar', 1, 'quiet', 1, 'border', [0.03 0 0.03 0])))
%
% See also: tests_db, sortedUniqueValues, statsMeanStd, plot_abstract, plotImage
%
% $Id$
%
% Author: Cengiz Gunay <cgunay@emory.edu>, 2008/04/14

  if ~ exist('props', 'var')
  props = struct;
end

if ~ exist('title_str', 'var')
  title_str = '';
end

% keep only columns we care about
a_db = onlyRowsTests(a_db, ':', {unique_test1, unique_test2, stat_test});

% find unique values of both columns
if isfield(props, 'uniqueVals1')
  sorted_unique_vals1 = props.uniqueVals1;
else
  sorted_unique_vals1 = ...
      sortedUniqueValues(get(sortrows(onlyRowsTests(a_db, ':', unique_test1), ...
                                      unique_test1), 'data'));
end

if isfield(props, 'uniqueVals2')
  sorted_unique_vals2 = props.uniqueVals2;
else
  sorted_unique_vals2 = ...
      sortedUniqueValues(get(sortrows(onlyRowsTests(a_db, ':', unique_test2), ...
                                      unique_test2), 'data'));
end

% use given stats func
if isfield(props, 'statsFunc')
  stats_func = props.statsFunc;
else
  stats_func = 'statsMeanStd';
end

% use given stats row
if isfield(props, 'statsRow')
  stats_row = props.statsRow;
else
  stats_row = 'mean';
end

% find population mean and deviation if requested
if isfield(props, 'popMean')
  pop_mean = props.popMean;
  if isnan(props.popMean)
    pop_stats_db = feval(stats_func, onlyRowsTests(a_db, ':', stat_test));
    if strcmp(stats_func, 'statsMeanStd')
      pop_mean = ...
          get(onlyRowsTests(pop_stats_db, stats_row, stat_test), 'data');
      pop_dev = ...
          2*get(onlyRowsTests(pop_stats_db, 'STD', stat_test), 'data');
    elseif strcmp(stats_func, 'statsBounds')
      max_val = ...
          get(onlyRowsTests(pop_stats_db, 'max', stat_test), 'data');
      mean_val = ...
          get(onlyRowsTests(pop_stats_db, 'mean', stat_test), 'data');
      pop_mean = ...
          mean_val + (max_val - mean_val) / 2;
      pop_dev = ...
        (max_val - mean_val) / 2;
    end
      
  end
else
  pop_mean = 0;
end

if isfield(props, 'popDev')
  pop_dev = props.popDev;
elseif ~ exist('pop_dev', 'var')
  pop_dev = 0.3;
end

% first find unique values of each variable
% roll across left and right uniques
num_left_uniques = length(sorted_unique_vals1);
num_right_uniques = length(sorted_unique_vals2);

stats_matx = repmat(NaN, num_left_uniques, num_right_uniques);

for left_val_num = 1:num_left_uniques
  left_idx = ...
      onlyRowsTests(a_db, ':', unique_test1) == ...
      sorted_unique_vals1(left_val_num);

  for right_val_num = 1:num_right_uniques
    right_idx = ...
        onlyRowsTests(a_db, ':', unique_test2) == ...
        sorted_unique_vals2(right_val_num);
    
    % calculate stats for joint condition
    
    a_stats_db = ...
        feval(stats_func, onlyRowsTests(a_db, left_idx & right_idx, stat_test));

    % use only desired row
    stats_matx(left_val_num, right_val_num) = ...
        get(onlyRowsTests(a_stats_db, stats_row, stat_test), 'data');
  end
end

% col names
left_var_name = getColNames(a_db, unique_test1);
left_var_name = left_var_name{1};
right_var_name = getColNames(a_db, unique_test2);
right_var_name = right_var_name{1};

% title
if isfield(props, 'quiet')
  all_title = properTeXLabel(title_str);
else
  all_title = ...
      properTeXLabel([lower(get(a_db, 'id')) title_str ]);
end

% plot image here
num_colors = 50;

% set x/y axis ticks
plot_props.XTick = 1:num_right_uniques;
plot_props.XTickLabel = sorted_unique_vals2;
plot_props.YTick = 1:num_left_uniques;
plot_props.YTickLabel = sorted_unique_vals1;
plot_props.minValue = pop_mean;
plot_props.maxValue = pop_mean + pop_dev;
% $$$ plot_props.colorbarProps = struct;
% $$$ plot_props.colorbarProps.YTickLabel = ...
% $$$     pop_mean + [ - pop_dev, 0, pop_dev];
plot_props.truncateDecDigits = 2;

% colorbar props
image_props = struct;
image_props.colorbarProps = struct;
image_props.colorbarProps.YTick = ...
    [1, num_colors + 1, 2*num_colors];

an_image_plot = ...
    plot_image(stats_matx, ...
               { properTeXLabel(right_var_name), ...
                 properTeXLabel(left_var_name) }, ...
               getColNames(a_db, stat_test), ...
               all_title, ...
               mergeStructs(props, plot_props));

Loading data, please wait...