channel builder: non-standard kinetics?
channel builder: non-standard kinetics?
Hello,
using the ChannelBuilder, I'm trying to implement a Hodgkin-Huxley style Na channel (m^3*h) with a non-standard functional form of tau_h.
Within the ChannelBuilder, the only way to do that seems to be to import a "KSChan table"/Vector (?) from the clipboard. - How does this work? (in a linux environment) - But I suppose in this case, it is better for clarity to use NMODL (function can be written down explicitly, parameters more easily adjused)? Maybe it would be a good extension of future versions of Neuron to allow arbitary functions of voltage/ionic conc.s/... for kinetic variables? - (Otherwise the ChannelBuilder is really convenient, for example the on-line display of alpha, beta, tau, n_inf as graphs).
Best wishes,
Christian.
(novice :-) )
using the ChannelBuilder, I'm trying to implement a Hodgkin-Huxley style Na channel (m^3*h) with a non-standard functional form of tau_h.
Within the ChannelBuilder, the only way to do that seems to be to import a "KSChan table"/Vector (?) from the clipboard. - How does this work? (in a linux environment) - But I suppose in this case, it is better for clarity to use NMODL (function can be written down explicitly, parameters more easily adjused)? Maybe it would be a good extension of future versions of Neuron to allow arbitary functions of voltage/ionic conc.s/... for kinetic variables? - (Otherwise the ChannelBuilder is really convenient, for example the on-line display of alpha, beta, tau, n_inf as graphs).
Best wishes,
Christian.
(novice :-) )
ChannelBuilder: using KSChanTable
You need to get (v, rate(v)), (v, inf(v)), or (v, tau(v)) into the clipboard Vector pair (x is hoc_obj_[1] and y is hoc_obj_[0]). At that point you can select the EquationType/.../KSChanTable form for the rate, tau, or inf and press the Fill/fromClipBoard menuitem that appears in the panel. You can use
NEURONMainMenu/Graph/Grapher to develop the function. Tables use linear interpolation. Internally, hoc_obj_[1].x[0] and hoc_obj_[1].x[hoc_obj_[1].size-1] are used to define vmin and vmax. The size of the table is the size of hoc_obj_[0]. Thus there is an implicit assumption that hoc_obj[0] elements are equally spaced between vmin and vmax.
You are right about greater nmodl convenience in this case with respect to user defined parameters.
I wondered about the utility of allowing entry of arbitrary hoc expressions for these functions but was trying to encourage channel development on the basis of physically realizable mechanisms based on state energies proportional to voltage. Adding the Einstein function was only a nod to the now classical nature of the HH equation forms. Popular user pressure could overcome my prejudice against arbitrary functions since it would not take much effort to extend the implementation at the ChannelBuilder level to automatically create the tables. However it does make xml data exchange a bit more complicated.
NEURONMainMenu/Graph/Grapher to develop the function. Tables use linear interpolation. Internally, hoc_obj_[1].x[0] and hoc_obj_[1].x[hoc_obj_[1].size-1] are used to define vmin and vmax. The size of the table is the size of hoc_obj_[0]. Thus there is an implicit assumption that hoc_obj[0] elements are equally spaced between vmin and vmax.
You are right about greater nmodl convenience in this case with respect to user defined parameters.
I wondered about the utility of allowing entry of arbitrary hoc expressions for these functions but was trying to encourage channel development on the basis of physically realizable mechanisms based on state energies proportional to voltage. Adding the Einstein function was only a nod to the now classical nature of the HH equation forms. Popular user pressure could overcome my prejudice against arbitrary functions since it would not take much effort to extend the implementation at the ChannelBuilder level to automatically create the tables. However it does make xml data exchange a bit more complicated.
-
ted
- Site Admin
- Posts: 6398
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Re: ChannelBuilder: using KSChanTable
Does this mean that hoc_obj[0] elements must be equally spaced? Aren't rateshines wrote:there is an implicit assumption that hoc_obj[0] elements are equally spaced between vmin and vmax
interpolated linearly between adjacent values in the table, regardless of whether hoc_obj[0]
intervals are evenly spaced or not?
Re: ChannelBuilder: using KSChanTable
I'm still a novice with neuron and also interest in simulating non-standard gating variables with channel builder. However I am a little unclear on how to develop a gating variable function, in my specific case a variation on a cosh function, in Grapher. Do I have to create the function in hoc code first and then plot it using Grapher so as to copy values into the KSChanTable? Thanks for your helphines wrote:You need to get (v, rate(v)), (v, inf(v)), or (v, tau(v)) into the clipboard Vector pair (x is hoc_obj_[1] and y is hoc_obj_[0]). At that point you can select the EquationType/.../KSChanTable form for the rate, tau, or inf and press the Fill/fromClipBoard menuitem that appears in the panel. You can use
NEURONMainMenu/Graph/Grapher to develop the function. Tables use linear interpolation. Internally, hoc_obj_[1].x[0] and hoc_obj_[1].x[hoc_obj_[1].size-1] are used to define vmin and vmax. The size of the table is the size of hoc_obj_[0]. Thus there is an implicit assumption that hoc_obj[0] elements are equally spaced between vmin and vmax..
I'm still a little lost on how to accomplish this with Grapher. I want to use a tau for an inactivating gate:
Tauh = (3.5/(e^((v+35)/4)+e^(-(v+35)/25)) ) +1
Yet I have not been using NMODL just the gui applications so how would I create this function in hoc so that I can plot it in Grapher to copy and import into channel builder?
Tauh = (3.5/(e^((v+35)/4)+e^(-(v+35)/25)) ) +1
Yet I have not been using NMODL just the gui applications so how would I create this function in hoc so that I can plot it in Grapher to copy and import into channel builder?
-
ted
- Site Admin
- Posts: 6398
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Sorry you've had to wait so long for an answer. We're working hard on a grant proposal
and this is the first chance I've had to break away from that task.
the Documentation page. If you have MS Windows, it's already on your PC in the NEURON
program group, where it is called "Documentation." Look in the alphabetical index, or in the
"Quick Index" for the keyword func.
http://www.neuron.yale.edu/neuron/stati ... .html#func
If you aren't sure about hoc syntax, click on the "syntax" link in the definition of func.
This will do:
This function is so close to 1 for v > -10 mV that you can set the Grapher's Independent
Var to run from -100 to -10 mV in 90 steps.
After plotting the curve, use Pick Vector to copy its x,y values into NEURON's clipboard
(click on the Graph's menu box, drag the mouse cursor down to Pick Vector, then release;
next click on the curve and it will turn red--this means that you have "picked" its values
into NEURON's clipboard).
Finally, on the Properties page of the Channel Builder, click on the h state, then click on
Equation Type
and select tauh, then move the cursor over to the secondary menu and select the item
KSChanTable
The Channel Builder's panel will now show a button labeled Fill.
Click on this, then select From Clipboard.
The h trace in the Graph will now have the same shape as the trace you "picked" from
the Grapher.
and this is the first chance I've had to break away from that task.
Read the Programmer's Reference to learn how to define a func. It's available online fromhow would I create this function in hoc so that I can plot it in Grapher to copy and import into channel builder?
the Documentation page. If you have MS Windows, it's already on your PC in the NEURON
program group, where it is called "Documentation." Look in the alphabetical index, or in the
"Quick Index" for the keyword func.
http://www.neuron.yale.edu/neuron/stati ... .html#func
If you aren't sure about hoc syntax, click on the "syntax" link in the definition of func.
This will do:
Code: Select all
func tauh() {
return (3.5/(exp(($1+35)/4)+exp(-($1+35)/25))) +1
}Var to run from -100 to -10 mV in 90 steps.
After plotting the curve, use Pick Vector to copy its x,y values into NEURON's clipboard
(click on the Graph's menu box, drag the mouse cursor down to Pick Vector, then release;
next click on the curve and it will turn red--this means that you have "picked" its values
into NEURON's clipboard).
Finally, on the Properties page of the Channel Builder, click on the h state, then click on
Equation Type
and select tauh, then move the cursor over to the secondary menu and select the item
KSChanTable
The Channel Builder's panel will now show a button labeled Fill.
Click on this, then select From Clipboard.
The h trace in the Graph will now have the same shape as the trace you "picked" from
the Grapher.