MyFirstNEURON (Houweling, Sejnowski 1997)

 Download zip file 
Help downloading and running models
Accession:3808
MyFirstNEURON is a NEURON demo by Arthur Houweling and Terry Sejnowski. Perform experiments from the book 'Electrophysiology of the Neuron, A Companion to Shepherd's Neurobiology, An Interactive Tutorial' by John Huguenard & David McCormick, Oxford University Press 1997, or design your own one or two cell simulation.
References:
1 . Huguenard J, McCormick DA, Shepherd GM (1997) Electrophysiology of the Neuron, A Companion to Shepherd's Neurobiology, An Interactive Tutorial. Electrophysiology of the Neuron
2 . Houweling AR, Sejnowski TJ (1997) Personal communication from Arthur Houweling.
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism:
Cell Type(s):
Channel(s): I Na,t; I L high threshold; I T low threshold; I A; I K; I M; I K,Ca; I CAN; I Sodium; I Calcium; I Potassium;
Gap Junctions:
Receptor(s): GabaA; GabaB; AMPA; NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Action Potential Initiation; Activity Patterns; Bursting; Ion Channel Kinetics; Temporal Pattern Generation; Oscillations; Parameter Fitting; Detailed Neuronal Models; Tutorial/Teaching; Action Potentials; Sleep; Calcium dynamics;
Implementer(s): Houweling, Arthur [Arthur at Salk.edu];
Search NeuronDB for information about:  GabaA; GabaB; AMPA; NMDA; I Na,t; I L high threshold; I T low threshold; I A; I K; I M; I K,Ca; I CAN; I Sodium; I Calcium; I Potassium;
/
MyFirstNEURON
MyFirstNEURONmanual_files
readme.txt
ampa.mod
ampa2.mod
cadyn.mod
gabaA.mod
gabaA2.mod
gabaB.mod
gabaB2.mod
HH1.mod
HH2.mod
ia.mod *
iahp.mod
iahp2.mod *
ic.mod *
ican.mod
ih.mod *
il.mod *
im.mod *
it.mod *
it2.mod
leak.mod *
nmda.mod
nmda2.mod
synstim.mod
about.hoc
e1.par
e10.par
e11a.par
e11b.par
e12.par
e13.par
e14.par
e15a.par
e15b.par
e16a.par
e16b.par
e16c.par
e17a.par
e17b.par
e3.par
e5.par
e7.par
manual.htm
mcontrl1.hoc
mcontrl2.hoc
mcontrl3.hoc
methods.htm
mosinit.hoc
my1stnrn.hoc
parpanl1.hoc
parpanl2.hoc
parpanl3.hoc
plotcurr.hoc
                            
	objref curgraph,q,r

	create dummy_neuron
	
dummy_neuron {
        curgraph= new VBox()
        curgraph.intercept(1)
        xpanel("")
           if (currentnr==1){
		insert HH
                xlabel("ina_HH = fast Hodgkin-Huxley type Na+ current")
                xlabel("-> responsible for action potential generation")
           }
           if (currentnr==2){
		insert HH
                xlabel("ik_HH = fast Hodgkin-Huxley type K+ current")
                xlabel("-> involved in repolarization of action potential")
           }
           if (currentnr==3){
		insert iA
                xlabel("iA = transient K+ current")
                xlabel("-> acts to slow rate of spike generation")
           }
           if (currentnr==4){ 
		insert iAHP  
                xlabel("iAHP = slow, Ca2+ activated K+ current")
                xlabel("-> calcium dependent, voltage independent")
                xlabel("-> hyperpolarizes the cell after a spike train")
                xlabel("-> slows down rate of action potential generation")
           }
           if (currentnr==5){
		insert iC 
                xlabel("iC = Ca2+ activated K+ current")
                xlabel("-> calcium and voltage dependent")
                xlabel("-> involved in repolarization of action potential")
           }
           if (currentnr==6){
		insert iM
                xlabel("iM = slowly activating K+ current")
                xlabel("-> blocks repetitive firing")
           }
           if (currentnr==7){
		insert iL
                xlabel("iL = high threshold Ca2+ current")
                xlabel("-> allows calcium entry during action potential")
           }
           if (currentnr==8){
		insert iT
                xlabel("iT = transient low threshold Ca2+ current")
                xlabel("-> generates a burst of action potentials")
           }
           if (currentnr==9){
                insert HH2
                xlabel("ina_HH2 = fast Hodgkin-Huxley type Na+ current")
                xlabel("-> responsible for action potential generation")
           }
           if (currentnr==10){
                insert HH2
                xlabel("ik_HH2 = fast Hodgkin-Huxley type K+ current")
                xlabel("-> involved in repolarization of action potential")
           }
           if (currentnr==11){
                insert iAHP2
                xlabel("iAHP2 = slow, Ca2+ activated K+ current")
                xlabel("-> calcium dependent, voltage independent")
                xlabel("-> hyperpolarizes the cell after a spike train")
                xlabel("-> slows down rate of action potential generation")
           }
           if (currentnr==12){
                insert iT2
                xlabel("iT2 = transient low threshold Ca2+ current")
                xlabel("-> generates a burst of action potentials")
           }
           if (currentnr==13){
                insert iCAN
                xlabel("iCAN = slow, Ca2+ dependent kation current")
		xlabel("-> non specific for cations Na+, K+, Ca2+, ...")
		xlabel("-> calcium dependent, voltage independent")
           }
           if (currentnr==14){
                insert iH
                xlabel("iH = hyperpolarization-activated kation current")
                xlabel("-> mixed Na+/K+ current")
                xlabel("-> calcium dependent, voltage dependent")
           }

	if (ismembrane("ca_ion")) xvalue("cai","dummy_neuron.cai", 1,"", 0, 0 )
	xvalue("Init V","v_init", 1, "stdinit()", 1, 1)
   	xvalue("celsius","celsius", 1,"", 0, 1 )
	xmenu("Abscissa")
	xbutton(" Voltage","dummy_neuron {plot_expression(q,1) plot_expression(r,1)}")
	if (ismembrane("ca_ion")) {
	  xbutton(" Internal [Ca2+]","dummy_neuron {plot_expression(q,2) plot_expression(r,2)}")
	}
	xmenu()
        xpanel()  
        q= new Graph()
        r= new Graph()
        curgraph.intercept(0)

        if (currentnr==1){  // fast Na+ current 
           q.addvar("m_inf_HH(.5)", 2, 0)
           q.addvar("h_inf_HH(.5)", 3, 0)
           r.addvar("tau_m_HH(.5)", 2, 0)
           r.addvar("tau_h_HH(.5)", 3, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-.75,15.75)
        }
        if (currentnr==2){  // fast K+ current 
           q.addvar("n_inf_HH(.5)", 2, 0)
           r.addvar("tau_n_HH(.5)", 2, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-.3,6.3)
        }
        if (currentnr==3){  // A-current
           q.addvar("m_inf1_iA(.5)", 2, 0)
           q.addvar("h_inf_iA(.5)", 3, 0)
           r.addvar("tau_m_iA(.5)", 2, 0)
           r.addvar("tau_h1_iA(.5)", 3, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-1,21)
        }
        if (currentnr==4){  // AHP-current
           q.addvar("m_inf_iAHP(.5)", 2, 0)
           r.addvar("tau_m_iAHP(.5)", 2, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-15,315)
        }   
        if (currentnr==5){  // C-current
           q.addvar("m_inf_iC(.5)", 2, 0)
           r.addvar("tau_m_iC(.5)", 2, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-1,21)
        }
        if (currentnr==6){  // M-current
           q.addvar("m_inf_iM(.5)", 2, 0)
           r.addvar("tau_m_iM(.5)", 2, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-2.5,52.5)
        }
        if (currentnr==7){  // L-current
           q.addvar("m_inf_iL(.5)", 2, 0)
           r.addvar("tau_m_iL(.5)", 2, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-.05,1.05)
        }
        if (currentnr==8){  // T-current
           q.addvar("m_inf_iT(.5)", 2, 0)
           q.addvar("h_inf_iT(.5)", 3, 0)
           r.addvar("tau_m_iT(.5)", 2, 0)
           r.addvar("tau_h_iT(.5)", 3, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-5,105)
        }
        if (currentnr==9){  // fast Na+ current HH2
           q.addvar("m_inf_HH2(.5)", 2, 0)
           q.addvar("h_inf_HH2(.5)", 3, 0)
           r.addvar("tau_m_HH2(.5)", 2, 0)
           r.addvar("tau_h_HH2(.5)", 3, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-.75,15.75)
        }
        if (currentnr==10){  // fast K+ current HH2
           q.addvar("n_inf_HH2(.5)", 2, 0)
           r.addvar("tau_n_HH2(.5)", 2, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-.3,6.3)
        }
	if (currentnr==11){  // AHP2-current
           q.addvar("m_inf_iAHP2(.5)", 2, 0)
           r.addvar("tau_m_iAHP2(.5)", 2, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-15,315)
        }
        if (currentnr==12){  // T2-current
           q.addvar("m_inf_iT2(.5)", 2, 0)
           q.addvar("h_inf_iT2(.5)", 3, 0)
           r.addvar("tau_m_iT2(.5)", 2, 0)
           r.addvar("tau_h_iT2(.5)", 3, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-5,105)
        }
       	if (currentnr==13){  // iCAN-current
           q.addvar("m_inf_iCAN(.5)", 2, 0)
           r.addvar("tau_m_iCAN(.5)", 2, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-10,210)
        }
        if (currentnr==14){  // iH-current
           q.addexpr("s1_iH(.5)", 2, 0)
           q.addexpr("s2_iH(.5)", 3, 0)
           r.addvar("tau_s_iH(.5)", 2, 0)
           r.addvar("tau_f_iH(.5)", 3, 0)
           r.addvar("tau_c_iH(.5)", 4, 0)
           q.size(-100,50,-.05,1.05)
           r.size(-100,50,-150,3150)
        }

	if (currentnr==4 || currentnr==11 || currentnr==13) {
	   plot_expression(q,2)
           plot_expression(r,2)
	} else {
	   plot_expression(q,1) 
	   plot_expression(r,1) 
	}
             
        curgraph.map("Asympotic gate values and Time constants")
}

	curgraph.dismiss_action("create dummy_neuron")

Loading data, please wait...