Using Mainen & Sejnowski ion channels in new model via gui

NMODL and the Channel Builder.
Post Reply
Corinne
Posts: 38
Joined: Wed Feb 09, 2011 7:13 pm

Using Mainen & Sejnowski ion channels in new model via gui

Post by Corinne »

I am attempting to build a model via the gui. I would like to use the ion channels from the Mainen and Sejnowski (1996) paper (called patdemo on modelDB). I can see the ion channel mechanisms in the 'Specify Strategy' under Biophysics in the Cell Builder. As an example, when I choose to insert na (by checking the 'na' box) the sole parameter the gui asks me to specify is 'gbar_na'. However, I notice in the original demofig1.hoc code (from the patdemo folder), 'Ena' is specified. When looking at the na.mod file it says 'ena' is read in:

Code: Select all

NEURON {
    THREADSAFE
	SUFFIX na
        USEION na READ ena WRITE ina
        RANGE m, h, gna, gbar
        GLOBAL tha, thi1, thi2, qa, qi, qinf, thinf
        RANGE minf, hinf, mtau, htau
        GLOBAL Ra, Rb, Rd, Rg
	GLOBAL q10, temp, tadj, vmin, vmax, vshift
}
Is there a place I can specify this parameter via the gui, or does this mean I can't use these ion channel mechanisms via a gui? Also when I do a forall psection(), I see that 'ena' is being set to a default ena=50. I am curious how neuron chooses this value as a default as I don't see this specified anywhere in the na.mod code?

Thanks for all of your help. It is greatly appreciated!
ted
Site Admin
Posts: 6289
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Using Mainen & Sejnowski ion channels in new model via g

Post by ted »

Good questions.
Corinne wrote:in the original demofig1.hoc code (from the patdemo folder), 'Ena' is specified.
Ena is merely a symbolic constant. It has nothing to do with NEURON's internals. ena is the name of the sodium equilibrium potential. In demofig1.hoc the loop

Code: Select all

  forall if(ismembrane("na_ion")) {
    ena = Ena
    . . .
  }
ensures that ena is assigned the value that was stored in the symbolic constant Ena.

NEURON knows about sodium and potassium. It knows their valences, and assumes default values for ena, ek, nai, nao, ki, and ko that are appropriate for squid axon in seawater at 6 deg C. If a section contains no mechanism that WRITEs nai or nao, ena is merely an ordinary parameter that can be assigned any value you like. Same goes for ek.

If a section contains a mechanism that WRITEs nai or nao, ena will be calculated using the Nernst equation. Same goes for ki, ko, and ek.

NEURON doesn't know about any other ions unless a section contains a mechanism specified by NMODL source code that contains a
USEION foo
statement.

Now would be a good time to read the Programmer's Reference documentation about USEION, READ, WRITE, and VALENCE--see
http://www.neuron.yale.edu/neuron/stati ... tml#Useion
et seq.
At some point you may also want to read about ion_style().
All of this exquisite flexibility was implemented so that NEURON can be used to handle the wide range of strategies that modelers have used to deal with ionic concentrations and equilibrium potentials.
When looking at the na.mod file it says 'ena' is read in
This only means that the value of ena comes from code that lies outside of this mechanism.
Is there a place I can specify this parameter via the gui
NEURON Main Menu / Tools / Distributed mechanisms / Viewers / Shape Name
will give you a stick figure diagram of the cell and a list of section names. With this tool you can spawn a panel of parameters by double clicking on either a section or its name. But the value displayed will belong to just that section since ionic equilibrium potential, like ionic concentration and membrane potential, is a range variable, not a global. If you want to specify the value of ena in all sections that contain a mechanism that uses sodium, you will have to use a
forall if(ismembrane("na_ion")) { statements that change ena in the current section }
loop to iterate over all sections that have ena.
Post Reply