Destexhe kinetic scheme for I_h

Discussions of particular models.

Moderator: tom_morse

Post Reply
pascal
Posts: 106
Joined: Thu Apr 26, 2012 11:51 am

Destexhe kinetic scheme for I_h

Post by pascal »

I am trying to use the thalamocortical cell from the paper "Ionic mechanisms underlying synchronized oscillations and propagating waves in a model of ferret thalamic slices" (1996). The model code can be found here: https://senselab.med.yale.edu/ModelDB/S ... 343#tabs-2

I have run into trouble with the mod file for implementing the I_h current. Here is the code (downloaded from the ModelDB link above):

Code: Select all

TITLE anomalous rectifier channel
COMMENT
:
: Anomalous Rectifier Ih - cation (Na/K) channel in thalamocortical neurons
:
: Kinetic model of calcium-induced shift in the activation of Ih channels.
: Model of Destexhe et al., Biophys J. 65: 1538-1552, 1993, based on the
: voltage-clamp data on the calcium dependence of If in heart cells
: (Harigawa & Irisawa, J. Physiol. 409: 121, 1989)
:
: The voltage-dependence is derived from Huguenard & McCormick, 
: J Neurophysiol. 68: 1373-1383, 1992, based on voltage-clamp data of 
: McCormick & Pape, J. Physiol. 431: 291, 1990. 
:
: Modified model of the binding of calcium through a calcium-binding (CB)
: protein, which in turn acts on Ih channels.  This model was described in
: detail in the following reference:
:    Destexhe, A., Bal, T., McCormick, D.A. and Sejnowski, T.J.  Ionic 
:    mechanisms underlying synchronized oscillations and propagating waves
:    in a model of ferret thalamic slices. Journal of Neurophysiology 76:
:    2049-2070, 1996.
: See also http://www.cnl.salk.edu/~alain , http://cns.fmed.ulaval.ca
:
:   KINETIC MODEL:
:
:	  Normal voltage-dependent opening of Ih channels:
:
:		c1 (closed) <-> o1 (open)	; rate cst alpha(V),beta(V)
:
:	  Ca++ binding on CB protein
:
:		p0 (inactive) + nca Ca <-> p1 (active)	; rate cst k1,k2
:
:	  Binding of active CB protein on the open form (nexp binding sites) :
:
:		o1 (open) + nexp p1 <-> o2 (open)	; rate cst k3,k4
:
:
:   PARAMETERS:
:	It is more useful to reformulate the parameters k1,k2 into
:	k2 and cac = (k2/k1)^(1/nca) = half activation calcium dependence, 
:	and idem for k3,k4 into k4 and Pc = (k4/k3)^(1/nexp) = half activation
:	of Ih binding (this is like dealing with tau_m and m_inf instead of
:	alpha and beta in Hodgkin-Huxley equations)
:	- k2:	this rate constant is the inverse of the real time constant of 
:             	the binding of Ca to the CB protein
:	- cac:	the half activation (affinity) of the CB protein;
:		around 1 to 10 microM.  
:	- k4:	this rate constant is the inverse of the real time constant of 
:             	the binding of the CB protein to Ih channels
:		very low: it basically governs the interspindle period
:	- Pc:	the half activation (affinity) of the Ih channels for the
:		CB protein;
:	- nca:	number of binding sites of calcium on CB protein; usually 4
:	- nexp:	number of binding sites on Ih channels
:       - ginc: augmentation of conductance associated with the Ca bound state
:	  (about 2-3; see Harigawa & Hirisawa, 1989)
:
:
:   IMPORTANT REMARKS:
:       - This simple model for the binding of Ca++ on the open channel 
:	  suffies to account for the shift in the voltage-dependence of Ih
:	  activation with calcium (see details in Destexhe et al, 1993).
:	- It may be that calcium just binds to the Ih channel, preventing the 
:	  conformational change between open and closed; in this case one
:	  should take into account binding on the closed state, which is 
:	  neglected here.
:
:   MODIFICATIONS
:	- this file also contains a procedure ("activation") to estimate
:	  the steady-state activation of the current; callable from outside
:	- the time constant now contains a changeable minimal value (taum)
:	- shift: new local variable to displace the voltage-dependence
:	  (shift>0 -> depolarizing shift)
:
:
: Alain Destexhe, Salk Institute and Laval University, 1995
:
ENDCOMMENT

INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}

NEURON {
	SUFFIX iar
	USEION h READ eh WRITE ih VALENCE 1
	USEION ca READ cai
        RANGE ghbar, h_inf, tau_s, m, shift
	GLOBAL k2, cac, k4, Pc, nca, nexp, ginc, taum
}

UNITS {
	(molar)	= (1/liter)
	(mM)	= (millimolar)
	(mA) 	= (milliamp)
	(mV) 	= (millivolt)
	(msM)	= (ms mM)
}


PARAMETER {
	eh	= -40	(mV)
	celsius = 36	(degC)
	ghbar	= 2e-5 (mho/cm2)
	cac	= 0.002 (mM)		: half-activation of calcium dependence
	k2	= 0.0004 (1/ms)		: inverse of time constant
	Pc	= 0.01			: half-activation of CB protein dependence
	k4	= 0.001	(1/ms)		: backward binding on Ih
	nca	= 4			: number of binding sites of ca++
	nexp	= 1			: number of binding sites on Ih channels
	ginc	= 2			: augmentation of conductance with Ca++
	taum	= 20	(ms)		: min value of tau
	shift	= 0	(mV)		: shift of Ih voltage-dependence
}


STATE {
	c1	: closed state of channel
	o1	: open state
	o2	: CB-bound open state
	p0	: resting CB
	p1	: Ca++-bound CB
}


ASSIGNED {
	v	(mV)
	cai	(mM)
	ih	(mA/cm2)
        gh	(mho/cm2)
	h_inf
	tau_s	(ms)
	alpha	(1/ms)
	beta	(1/ms)
	k1ca	(1/ms)
	k3p	(1/ms)
	m
	tadj
}


BREAKPOINT {
	SOLVE ihkin METHOD sparse

	m = o1 + ginc * o2

	ih = ghbar * m * (v - eh)
}

KINETIC ihkin {
:
:  Here k1ca and k3p are recalculated at each call to evaluate_fct
:  because Ca or p1 have to be taken at some power and this does
:  not work with the KINETIC block.
:  So the kinetics is actually equivalent to
:	c1 <-> o1
:	p0 + nca Cai <-> p1
:	o1 + nexp p1 <-> o2

	evaluate_fct(v,cai)

	~ c1 <-> o1		(alpha,beta)

	~ p0 <-> p1		(k1ca,k2)

	~ o1 <-> o2		(k3p,k4)

	CONSERVE p0 + p1 = 1
	CONSERVE c1 + o1 + o2 = 1
}





INITIAL {
:
:  Experiments of McCormick & Pape were at 36 deg.C
:  Q10 is assumed equal to 3
:
        tadj = 3.0 ^ ((celsius-36 (degC) )/10 (degC) )

	evaluate_fct(v,cai)

	c1 = 1
	o1 = 0
	o2 = 0
	p0 = 1
	p1 = 0
}


UNITSOFF
PROCEDURE evaluate_fct(v (mV), cai (mM)) {

	h_inf = 1 / ( 1 + exp((v+75-shift)/5.5) )

	tau_s = (taum + 1000 / ( exp((v+71.5-shift)/14.2) + exp(-(v+89-shift)/11.6) ) ) / tadj

	alpha = h_inf / tau_s
	beta  = ( 1 - h_inf ) / tau_s

	k1ca = k2 * (cai/cac)^nca

	k3p = k4 * (p1/Pc)^nexp

}



:
:  procedure for evaluating the activation curve of Ih
:
PROCEDURE activation(v (mV), cai (mM)) { LOCAL cc

	evaluate_fct(v,cai)

	cc = 1 / (1 + (cac/cai)^nca ) 		: equil conc of CB-protein

	m = 1 / ( 1 + beta/alpha + (cc/Pc)^nexp )

	m = ( 1 + ginc * (cc/Pc)^nexp ) * m
}

UNITSON
When I try to insert this mechanism into a cell (as in TC.tem from the above ModelDB link), NEURON does not recognize the associated variables. Here is a minimal example:

Code: Select all

from __future__ import division
from neuron import h, gui

soma=h.Section(name='soma') 
soma.diam = soma.L = np.sqrt(100/np.pi)
soma.cm = 1.0

soma.insert('iar')		# h-current
soma.eh = -40			# reversal
soma.nca_iar = 4		# nb of binding sites for Ca++ on protein
When I run this program, I get the error 'nrn.Section' object has no attribute 'nca_iar' , even though nca is very clearly a parameter in the associated mod file. Just as befuddling, NEURON allows the statement soma.eh=-40 to pass without error, even though--as far as my understanding goes--this should be soma.eh_iar=-40.

Thanks in advance for the help.
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Destexhe kinetic scheme for I_h

Post by ted »

More great questions!
When I run this program, I get the error 'nrn.Section' object has no attribute 'nca_iar' , even though nca is very clearly a parameter in the associated mod file.
Ih.mod declares nca to be a GLOBAL variable. This means it doesn't belong to any particular section. Consequently its hoc name would be nca_iar without reference to any particular segment of any particular section. And that's why its Python name is h.nca_iar, with no other qualification (no need to specify section or range).
Just as befuddling, NEURON allows the statement soma.eh=-40 to pass without error, even though--as far as my understanding goes--this should be soma.eh_iar=-40.
If a model contains a mechanism that declares USEION foo, then if NEURON doesn't already know about an ionic species called foo, it will create one. You can't address foo_ion directly in either hoc or Python, but you can access its equilibrium potential and its intra- and extracellular concentrations, which would be RANGE variables. So
soma.insert('iar')
means that soma has an ionic species called h_ion, and now you can access soma.eh, soma.hi, and soma.ho.
pascal
Posts: 106
Joined: Thu Apr 26, 2012 11:51 am

Re: Destexhe kinetic scheme for I_h

Post by pascal »

Ah, that all makes perfect sense! Thanks!
Post Reply