ionchannel

Description Properties Methods Constants Examples See also






Description


The ionchannel object can be used to model ion channels.



Properties


m = ismarkov;


This is a read-only property and cannot be changed after the ion channel object was declared. However, it can be changed as a result of a call to "copytomodel" or "copyfrommodel".
Its value depends on how the channel was declared, e.g.:

ionchannel hh HHChannel;//declares a Hodgkin-Huxley-type ion channel object
ionchannel markov MarkovChannel;//declares a Markov-type ion channel object

The default is markov.
Note that the copyfrommodel method overrides the existing ismarkov property,
and constructs a model of the same type as the source.

c = statecount;
statecount = c;



This property has different meanings, depending on the channel type, i.e., Markov vs Hodgkin-Huxley.
For Markov models (ismarkov = true), statecount has the the usual meaning.
For Hodgkin-Huxley models (ismarkov = false), statecount represents the number of "particle types".
For example, statecount should be 2 for a channel with independent activation and inactivation processes (e.g., a Na channel).
The count of "particles" of each type is given by the power property.

c = connected(state1 = s1, state2 = s2);
connected(state1 = s1, state2 = s2) = c;




For Markov models (ismarkov = true), the connected property determines whether a direct transition is possible between two states. For Hodgkin-Huxley-type models (ismarkov = false), connected has no meaning.

p = power(state = s);
power(state = s) = p;



For Hodgkin-Huxley-type models (ismarkov = false), the power property represents the number of "particles" of a given type (the state argument). For Markov models (ismarkov = true), power has no meaning.
For example, a classical m3h Na model is constructed as follows:

ionchannel hh HHChannel;//declares a Hodgkin-Huxley-type ion channel object
HHChannel.statecount = 2;//Two independent processes, i.e., activation (m) and inactivation (h)
HHChannel.power(0) = 3;//Three identical and independent activation particles (m3)
HHChannel.power(1) = 1;//One inactivation particle (h)

t = ratetype(state1 = s1, state2 = s2);
ratetype(state1 = s1, state2 = s2) = t;




v = vdep(state1 = s1, state2 = s2);
vdep(state1 = s1, state2 = s2) = v;




v = cdep(state1 = s1, state2 = s2);
cdep(state1 = s1, state2 = s2) = v;




f = factor(state1 = s1, state2 = s2);
factor(state1 = s1, state2 = s2) = f;




k = k0(state1 = s1, state2 = s2);
k0(state1 = s1, state2 = s2) = k;




k = k1(state1 = s1, state2 = s2);
k1(state1 = s1, state2 = s2) = k;




k = kv0(state1 = s1, state2 = s2);
kv0(state1 = s1, state2 = s2) = k;




k = kvh(state1 = s1, state2 = s2);
kvh(state1 = s1, state2 = s2) = k;




k = kvs(state1 = s1, state2 = s2);
kvs(state1 = s1, state2 = s2) = k;




z = z(state1 = s1, state2 = s2);



d = d(state1 = s1, state2 = s2);



c = ccount;
ccount = c;




v = vrev;
vrev = v;




p = prob(state = s);
prob(state = s) = p;




p = probeq(state = s);
probeq(state = s) = p;




s = state;
state = s;




p = a(state1 = s1, state2 = s2);
a(state1 = s1, state2 = s2) = p;




k = q(state1 = s1, state2 = s2);
q(state1 = s1, state2 = s2) = k;




l = eigenvalue(state = s);



t = timeconst[ant](state = s);



a = [exp]area(state = s);





Methods


copyfrommodel(model = m);



copytomodel(model = m);



setrate(s1 = s1,s2 = s2, rate = rateexp);



setk0(state1 = s1, state2 = s2, k0 = k);



setk1(state1 = s1, state2 = s2, k1 = k);



setkv0(state1 = s1, state2 = s2, kv0 = k);



setkvh(state1 = s1, state2 = s2, kvh = k);



setkvs(state1 = s1, state2 = s2, kvs = k);



k = rate(state1 = s1, state2 = s2);



c = conductance[(state = s)];



c = current;



c = currenteq;



c = gatingcurrent;



setvoltage(voltage = v);



setconc[entration](conc = c);



settemp[erature](temp = t);



setconductance(cond = c);



setvrev(vrev = v);



setvcurr(vcurr = v);



setactive(active = a, value = v);



p = dpdt(state = s);



calcq;



calcqofv(v1 = V1, v2 = V2, dv = Vinc);



calca(dt = t);



calcaofv(dt = t, v1 = V1, v2 = V2, dv = Vinc);



calcaofdt(dt = t);



calcaofvofdt(dt = t);



calcpeq(voltage = v, conc = c, update = u);



f = flux(s1 = S1, s2 = S2);



resetprobs;



resetstates;



setstateasdefault;



resetstatetodefault;



calcprobsfromstates;



calcstatesfromprobs;



gen[erate]probs;



gen[erate]dwell;



r = advance(time = t, stoch = s, ofv = v, return = ret);



r = findpeak(mintime = t1, maxtime = t2, step = s, return = ret, precision = p);


Use this method to find a min/max in the interval [mintime, maxtime], depending on the value of return.
If step = 0, then the function will find the first peak, detected as the point where the first order time derivative of the current changes sign. Calling the function with step = 0 assumes that the [mintime, maxtime] interval contains one and only one peak.
If step > 0, then the function will first locate the global min/max, by searching through the entire interval in step increments. This search does not guarantee finding the peak - its success depends on the step size and the current equation. You may want to choose step to be smaller than the smallest timeconstant.
Once a global peak is found, the method switches to an arbitrary precision search. The precision parameter is in terms of time: the search interval is narrowed until it becomes smaller than precision.

r = findvalue(value = v, mintime = t1, maxtime = t2, step = s, return = ret, precision = p);



Use this method to find the point where the current is closest to value, in the interval [mintime, maxtime].
If step = 0, then the function will find the first point that is closest to value. Calling the function with step = 0 assumes that the current has monotonic variation in the [mintime, maxtime] interval.
If step > 0, then the function will first locate the global point where the current is closest to value, by searching through the entire interval in step increments. This search does not guarantee finding the closest point - its success depends on the step size and the current equation. You may want to choose step to be smaller than the smallest timeconstant.
Once a global closest point is found, the method switches to an arbitrary precision search. The precision parameter is in terms of time: the search interval is narrowed until it becomes smaller than precision.



Constants




Examples




See also





(C) 2008-2009 Lorin Milescu. Last modified: 02-23-09