Transient potassium current as leak

NMODL and the Channel Builder.
Post Reply
finesniper
Posts: 3
Joined: Thu Jan 14, 2016 5:23 am

Transient potassium current as leak

Post by finesniper » Wed Oct 12, 2016 11:23 am

Hi Ted

I apologise in advance if my question is being posted in wrong place. My problem concerns a transient potassium current which is extremely low-voltage activated, and I created the MOD file based on my experimental data. So when I want to insert this mechanism into my reconstructed cell, it unfortunately works as a leak conductance (I assume, because of the huge window current), so is there any way, I overlooked or misinterpreted something in my code? It would be greeat if this could be solved without changing the activation or inactivation Boltzmann equations, due to the fact, that these are measured currents, and my experiments show, that the presence or absence of this current doesn't change the input resistance.

Here's my current:

Code: Select all

TITLE KA TOR
: K-A current for hippocampal interneurons from Lien et al (2002)


NEURON {
	SUFFIX katd
	USEION k READ ek WRITE ik
	RANGE  gbar
	GLOBAL minf, hinf, acthalf, actsteep, acttauavg, acttauoffset, acttauwdt, inactsteep, inactoffset, acttaupeak, inacttaupeak, inacttauxoffset, inacttauwdt, inacttauyoffset
}

PARAMETER {
	gbar = 0.0002   	(mho/cm2)	
								
	celsius
	ek		(mV)            : must be explicitly def. in hoc
	v 		(mV)
	q10=3
	acthalf = 67
	actsteep = 25
	acttauavg = 0.1
	acttauoffset = 57.5
	acttauwdt
	acttaupeak = 10
	inactsteep = 15
	inactoffset = 68
	inacttaupeak = 45
	inacttauxoffset = 57.5
	inacttauwdt = 30
	inacttauyoffset = 9
}


UNITS {
	(mA) = (milliamp)
	(mV) = (millivolt)
	(pS) = (picosiemens)
	(um) = (micron)
} 

ASSIGNED {
	ik 		(mA/cm2)
	minf 		mtau (ms)
	hinf	 	htau (ms)
}
 

STATE { m1 h1 h2}

BREAKPOINT {
        SOLVE states METHOD cnexp
	ik = gbar*m1*h1*(v - ek)
} 

INITIAL {
	trates(v)
	m1=minf  
	h1=hinf 
}

DERIVATIVE states {   
        trates(v)      
        m1' = (minf-m1)/mtau
		h1' = (hinf-h1)/htau
}

PROCEDURE trates(v) {  
	LOCAL qt
        qt=q10^((celsius-23)/10)
		:Costum functions for better fitting
		
		acttauwdt = 9.53952+(0.79058-9.53952)/(1+exp((v+47.97192)/3.35462))
		
        minf = (1/(1 + exp(-(v+acthalf)/actsteep)))^4
	mtau=acttauavg+acttaupeak*exp(-0.5*((v+acttauoffset)/acttauwdt)^2)
		hinf = 1/(1 + exp((v+inactoffset)/inactsteep))
		htau = inacttauyoffset+inacttaupeak*exp(-0.5*((v+inacttauxoffset)/inacttauwdt)^2)

}

Thanks in advance for your help.

Kind regards,
Viktor

ted
Site Admin
Posts: 5106
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Transient potassium current as leak

Post by ted » Wed Oct 12, 2016 2:50 pm

finesniper wrote:I created the MOD file based on my experimental data.
. . .
it unfortunately works as a leak conductance (I assume, because of the huge window current)
Are you quite sure that the specification you wrote in NMODL is correct? Common places where errors lurk are
(1) incorrect numerical values of parameters
(2) inconsistency of units
(3) incorrect algebraic formulas
Your numbers are from your own data, so those are easy enough to verify.
modlunit can detect unit inconsistencies, but it won't help until you declare the units of your parameters.
It can be tedious to check algebraic formulas, but it's necessary.

Here are a couple of useful tests you might want to run, just to make sure your channel specification is correct.

1. Plot the voltage dependence of minf, mtau, hinf, and htau. You'll want to revise your NMODL code to make mtau and htau visible to hoc. In fact it might be useful to declare mtau, htau, minf, and hinf all as RANGE variables in the NEURON block. Then make a single compartment model cell, insert your mechanism into it, and (in pseudocode)

Code: Select all

for v from -100 to 100 mV in 1 mV steps
  finitialize(v)
  plot minf, mtau, hinf, and htau vs. v
2. Generate a family of plots that show normalized conductance vs. t and compare those to your experimental data. The computational experiment's protocol is to voltage clamp a single compartment model with surface area 100 um2 that has only your channel model in it. Make sure that the initial membrane potential is sufficiently hyperpolarized that the inactivation state variable will be initialized to nearly 1. Use an SEClamp with rs = 1e-3 megohm to set up a standard voltage clamp protocol with dur1 1 ms, dur3 set to 1e9 ms, and amp1 and amp3 equal to the initial membrane potential potential. Make dur2 sufficiently long so that a reasonable depolarization elicits the characteristic A current conductance time course. Then run a series of simulations, each with a different value for amp2 (e.g. differing by 10 mV steps starting at -50 mV and ending at +50 mV). Or set up the actual experimental protocol you used to determine the A current's gating properties. You will of course want to revise your NMODL code so that it calculates the channel's conductance. Just declare
g (S/cm2)
in the ASSIGNED block, include
RANGE g
in the NEURON block, and in your BREAKPOINT block change

Code: Select all

   ik = gbar*m1*h1*(v - ek)
to

Code: Select all

:   ik = gbar*m1*h1*(v - ek)
   g = gbar*m1*h1
   ik = g*(v - ek)
If you now set gbar to 1, g will be numerically equal to the normalized channel conductance.

By the way, is there any reason to declare h2 as a STATE, given that it isn't used?

Post Reply