Efficient estimation of detailed single-neuron models (Huys et al. 2006)

 Download zip file 
Help downloading and running models
Accession:93390
"Biophysically accurate multicompartmental models of individual neurons ... depend on a large number of parameters that are difficult to estimate. ... We propose a statistical approach to the automatic estimation of various biologically relevant parameters, including 1) the distribution of channel densities, 2) the spatiotemporal pattern of synaptic input, and 3) axial resistances across extended dendrites. ... We demonstrate that the method leads to accurate estimations on a wide variety of challenging model data sets that include up to about 10,000 parameters (roughly two orders of magnitude more than previously feasible) and describe how the method gives insights into the functional interaction of groups of channels."
Reference:
1 . Huys QJ, Ahrens MB, Paninski L (2006) Efficient estimation of detailed single-neuron models. J Neurophysiol 96:872-90 [PubMed]
Citations  Citation Browser
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:
Cell Type(s):
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: MATLAB;
Model Concept(s): Methods;
Implementer(s):
% SETUPQUAD.M
%
% Infer full compartmental model given only access to the voltage in the
% compartments. This code is released in conjunction with the paper 
%
%	Huys QJM, Ahrens M and Paninski L (2006): Efficient estimation of
%	detailed single-neurone models
%
% and can be downloaded from 
%
%	http://www.gatsby.ucl.ac.uk/~qhuys/code.html
%
% This script uses the voltage and current traces from GETDATA.M and sets up the
% matrices and vectors for the quadratic programme to be solved in MAIN.M: 
%
%	ahat = argmin_a (1/2*a'Aa + fa) s.t. a>0
%
% This script is called by MAIN.M
%
% Copyright Quentin Huys 2006
%=========================================================================
% 			set up ahat = argmin_a (aAa + ba) s.t. a>0
%=========================================================================

%..............open probabilities given voltage...........................
fprintf('................ getting channel current shapes Jc \n')
% this just involves pasting the right bits from Jcgen into the mixing 
% matrix Jc
nch = length(g(:));
Jc = sparse(nc*T,nch);
for k=1:nc
	ind  = (k-1)*T+1:k*T;
	ind3 = (k-1)*nch/nc+1:k*nch/nc;
	ind2 = k + ([1:nch/nc]-1)*nc;
	Jc(ind,ind3) = Jcgen(:,ind2);	
end

%..............input current  ..........................................
Ji = reshape(I,nc*T,1);

%..............intercompartmental current shapes...........................
fprintf('................ getting intercompartmental current shapes \n')
Jf = sparse(nc*T,nc-1);
[chil,p] = find(tril(Wc)==1);		% get child and parent identity
for k=1:nc-1
	Wtrue(k) = W(chil(k),p(k));
	ind = (chil(k)-1)*T+1:chil(k)*T;
	Jf(ind,k) = V(:,p(k)) - V(:,chil(k))  ;
	ind = (p(k)-1)*T+1:p(k)*T;
	Jf(ind,k) = V(:,chil(k)) - V(:,p(k)) ;
end


%..............generate Hessian A and vector f....................
fprintf('................ generating Hessian and vector f\n')

J = sparse([Jc Jf Ji]);

A = 2*J'*J *delta/sigma^2;
f = - 2*J'*dv/sigma^2 ;

atrue 	= [reshape(g',nch,1); Wtrue' ; R]; % vector of true parameters