AP shape and parameter constraints in optimization of compartment models (Weaver and Wearne 2006)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:87473
"... We construct an objective function that includes both time-aligned action potential shape error and errors in firing rate and firing regularity. We then implement a variant of simulated annealing that introduces a recentering algorithm to handle infeasible points outside the boundary constraints. We show how our objective function captures essential features of neuronal firing patterns, and why our boundary management technique is superior to previous approaches."
Reference:
1 . Weaver CM, Wearne SL (2006) The role of action potential shape and parameter constraints in optimization of compartment models Neurocomputing 69:1053-1057
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): Vestibular neuron;
Channel(s): I Na,p; I Na,t; I A; I K,Ca;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Parameter Fitting; Methods;
Implementer(s): Weaver, Christina [christina.weaver at fandm.edu];
Search NeuronDB for information about:  I Na,p; I Na,t; I A; I K,Ca;
COMMENT
	Sodium transient current for Av-Ron and Vidal, 1999
	Implemented by C Weaver, 2003

	Includes Fitzhugh-Nagumo / Rinzel type simplification
	of m to minf, and to replace 'h' with '1-n'


	equations:

	I_Na = gbar_Na * minf(V) ^3 * (1 - n) * (V - E_Na)
	I_K = gbar_K * n ^ 4 * (V - E_K)

	dn/dt = ( ninf(V) - n ) / ntau(V)

	minf(V) = 1 / ( 1 + exp(-2a*(V-Vha)))
	ninf(V) = 1 / ( 1 + exp(-2b*(V-Vhb)))
	ntau(V) = 1 / ( c * exp( b*(V-Vhb)) + c * exp (-b*(V-Vhb)) )

ENDCOMMENT

NEURON {
	SUFFIX fn
	USEION na READ ena WRITE ina
	USEION k READ ek WRITE ik
	RANGE gnabar, gkbar, gkmodbar
	RANGE fastNashift, vha, vhb
	RANGE am, an, lamb
	RANGE minf, ninf, ntau
	RANGE totna, totk
}

UNITS { 
	(mV) = (millivolt) 
	(mA) = (milliamp) 
}


PARAMETER { 
	fastNashift = 0	(mV)	: -3.5 (mV)
	gnabar = 0.0	(mho/cm2)
	gkbar = 0.0	(mho/cm2)
	am = 0.055	(/mV)
	vhm = -33	(mV)
	an = 0.055	(/mV)
	vhn = -40	(mV)
	lamb = 0.1		(1)
	tea = 0
	washfac = -0.005 (/ms)
}

ASSIGNED { 
	v	(mV)
	ena	(mV)  
	ek	(mV)  
	ina 	(mA/cm2) 
	ik 	(mA/cm2) 
	totna 	(mA/cm2) 
	totk 		(mA/cm2) 
	minf	(1)
	ninf	(1)
	ntau	(ms)

}

STATE { 
        n 
	gkmodbar (mho/cm2)
}


INITIAL {
	rates(v)
	if (tea > 0) {
		gkmodbar = gkbar
	}
	n = ninf
: printf( "fn ik=%g, ina =%g\n", ik, ina)
}

BREAKPOINT {
	SOLVE states METHOD cnexp
	totna = gnabar * minf^3 * (1-n) * ( v - ena ) 
	totk = gkbar * n^4 * ( v - ek )
	ina = gnabar * minf^3 * (1-n) * ( v - ena ) 
	ik = gkbar * n^4 * ( v - ek )
	if (tea > 0) {
		: to simulate TEA wash, a K-DR channel blocker
		ik = gkmodbar * n^4 * ( v - ek )
	}
}

DERIVATIVE states {
	rates(v)
	n' = (ninf-n)/ntau
	
	gkmodbar' = washfac * gkmodbar
}


UNITSOFF 

PROCEDURE rates(V (mV)) {
	minf = 1 / ( 1 + exp( -2 * am * ( V - fastNashift - vhm )) )
	ninf = 1 / ( 1 + exp( -2 * an * ( V - vhn )) )
	ntau = 1 / lamb / (exp( an*(V-vhn)) + exp (-an*(V-vhn)) )
}

UNITSON