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 a_plot = plotCovar(a_db, title_str, props)

% plotCovar - Generates an image plot of the covariance-type values in a_db.
%
% Usage:
% a_plot = plotCovar(a_db, title_str, props)
%
% Description:
%
%   Parameters:
%	a_db: A tests_db object that resulted from a function like cov.
%	title_str: (Optional) String to append to plot title.
%	props: Optional properties.
%	  inverse: If 1, take inverse of the data matrix.
%	  corrcoef: If 1, normalize matrix elements to get corrcoef values.
%	  logScale: If 1, take logarithm of values before plotting.
%	  localityIters: Apply a locality optimization algorithm with
%	  	this many iterations.
%	  (rest passed to plot_image.)
%		
%   Returns:
%	a_plot: A plot_abstract object or one of its subclasses.
%
% Example:
% >> plotFigure(plotCovar(cov(get(constrainedMeasuresPreset(pbundle2, 6), 'joined_control_db'))));
%
% See also: tests_db/cov, plotImage, tests_db/matchingRow, corrcoefs.
%
% $Id$
%
% Author: Cengiz Gunay <cgunay@emory.edu>, 2007/05/30

% Copyright (c) 2007 Cengiz Gunay <cengique@users.sf.net>.
% 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
% http://opensource.org/licenses/afl-3.0.php.

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

% TODO: put some sanity checks to make sure this DB is not too big to
% plot

image_data = a_db.data(:, :, 1);

if isa(a_db, 'tests_3D_db')
  data_label = fieldnames(get(a_db, 'page_idx'));
  data_label = data_label{1};
else
  data_label = 'covariance';
end

% normalize
if isfield(props, 'corrcoef')
  selfcov_rows = diag(image_data) * ones(1, size(image_data, 2));
  image_data = image_data ./ sqrt(selfcov_rows .* selfcov_rows');
  data_label = 'cross correlation';
end

% take inverse if requested
if isfield(props, 'inverse')
  image_data = inv(image_data);
  data_label = [ 'inverse ' data_label ];
end

% log scale
if isfield(props, 'logScale')
  pos_data = image_data > 0;
  log_cov_data = image_data;
  log_cov_data(pos_data) = log(1 + image_data(pos_data));
  log_cov_data(~pos_data) = - log(1 - image_data(~pos_data));
  image_data = log_cov_data;
  data_label = [ data_label ' in log-scale' ];
end

% optimize locality
if isfield(props, 'localityIters')
  [image_data shuffle_idx] = ...
      optimize_cov_matrix(image_data, props.localityIters);
else
  shuffle_idx = 1:size(image_data, 1);
end

num_colors = 49;

if ~ exist('title_str', 'var') || isempty(title_str)
  title_str = [properTeXLabel(get(a_db, 'id'))];
end

plot_props = struct('YTick', 1:dbsize(a_db, 1), 'border', [0.07 0 0.03 0], ...
                    'colorbar', 1, 'XTick', []);
col_names = getColNames(a_db);
plot_props.YTickLabel = properTeXLabel(col_names(shuffle_idx));

plot_props.truncateDecDigits = 2;

a_plot = ...
    plot_image(image_data, {}, properTeXLabel(data_label), title_str, ...
               mergeStructs(props, plot_props));
end

function [image_data, idx] = optimize_cov_matrix(image_data, num_iters)

total_entropy = inf;
num_rows = size(image_data, 1);
idx=1:num_rows;
for iter_num = 1:num_iters
  cand_row_1 = ceil(rand(1) * num_rows);
  cand_row_2 = ceil(rand(1) * num_rows);
  
  new_image_data = image_data;
  new_image_data([cand_row_1 cand_row_2], :) = ...
      image_data([cand_row_2 cand_row_1], :);
  new_image_data(:, [cand_row_1 cand_row_2]) = ...
      new_image_data(:, [cand_row_2 cand_row_1]);
  
  new_entropy = entropy_cov_matrix(new_image_data);
  
  % accept if ended up in lower energy or by 10% chance
  if new_entropy < total_entropy %|| rand(1) < 0.1
    image_data = new_image_data;
    total_entropy = new_entropy;
    idx([cand_row_1 cand_row_2]) = idx([cand_row_2 cand_row_1]);
  end
  
  % must keep track of flips if it works
end

end

function entropy_val = entropy_cov_matrix(image_data)

diff_vals = diff(image_data, 1, 1);
entropy_val = sum(sum(abs(diff_vals(~isnan(diff_vals)))));

end

Loading data, please wait...