/* Both.hoc is used to demonstrate the characteristics of the NMDA and dAMPA receptors in isolation and together in a single compartment model. Both Voltage and Current clamps are used. Six conditions were demonstrated on 9/11/98: Voltage Clamp with NMDA Voltage Clamp with dAMPA Current Clamp with NMDA with Magnesium Current Clamp with NMDA without Magnesium Current Clamp with dAMPA Current Clamp with NMDA and dAMPA Students should note the non-linearity of the 'NMDA with Magnesium' response. Have them watch the response, especially when using the Family function and measure the peak responses and then plot IV curves for all Current clamp conditions. Simulation Conditions: The simulation runs for 2000ms and has glutamate application following an Alpha function modulation of concentration begining at 500ms. Panels are present for altering the gmax of NMDA and dAMPA as well as a subset of kinetic terms for the receptors. A family function panel can be used to vary the command current or voltage of the clamp or single command amplitudes can be designated in another panel. USE: Execute the command 'nrn4 both.hoc -'; this will display the oc> prompt. Then: oc>nrnmainmenu(); close the Neuron 'Main Panel', leaving 'Print & File Window Manager' Voltage and Current clamp experiments use different session files which are brought-up from the Window Manager via the Session/Retrieve menu. Voltage clamp file - vclamp_glut.ses Current Clamp file - iclamp_glut.ses */ GMAXN = 0.03 // max NMDA conductance GMAX = 0.05 // max dAMPA conductance Magnesium = 0.5 create soma soma { nseg = 1 diam = 25 L = 25 } load_proc ("nrnmainmenu") forall insert pas forall g_pas=1/70000 forall Ra=110 global_ra=110 forall e_pas=-65 access soma objectvar stim stim = new glutamate(.5) stim.Alpha_Max = 1 stim.Alpha_Delay = 500 stim.Alpha_tau = 100 objectvar chan soma chan=new NMDAR(.5) objectvar chanN1 soma chanN1 = new dAMPA_R(.50) // Single electrode voltage clamp objectvar Vclamp soma Vclamp = new VClamp(0.5) // Current clamp objectvar CurrentClamp soma CurrentClamp = new IClamp(0.5) // NMDA proc set_nmda(){ chan.gmax = GMAXN chan.Rb = A chan.Ru = B chan.Rd = C chan.Rr = D chan.Ro = E chan.Rc = F chan.mg = Magnesium } proc lester(){ A = 5 B = 6.7 C = 15.2 D = 9.4 E = 83.8 F = 83.8 set_nmda() } proc hessler(){ A = 5e-3 B = 9.5e-3 C = 16e-3 D = 13e-3 E = 25e-3 F = 59e-3 set_nmda() } proc clements(){ A = 5 B = 5 C = 4 D = 0.3 E = 10 F = 322 set_nmda() } proc edmonds(){ A = 5 B = 4.7 C = 8.4 D = 1.8 E = 46.5 F = 91.6 set_nmda() } proc velte(){ A = 0.000002 B = 0.0095 C = 0.0016 D = 0.00013 E = 0.055 F = 0.059 set_nmda() } lester() // // dAMPA Rates /////////////////////////////////////// proc set_dampa(){ chanN1.gmax = GMAX // umho chanN1.RBd = RBD chanN1.RB2d = RB2D chanN1.RBDr = RBDR chanN1.RB2Dr = RB2DR chanN1.RBb = RBB } proc manni(){ RBD = .4 RB2D = 5e-05 RBDR = .03 RB2DR = 0.0002 RBB = .004 set_dampa() } proc d13(){ RBD = 0.002 RB2D = 5e-5 RBDR = 0.03 RB2DR = 0.0002 RBB = 0.004 set_dampa() } manni() tstop = 1000 dt = .025 steps_per_ms = 1 v_init = -65 // xopen ("iclamp_glut.ses") objectvar vbox, tempobj proc dampa_panel(){ vbox = new VBox() vbox.intercept(1) xpanel("") xvalue("dAMPA Gmax","GMAX", 1, "set_dampa()") xvalue("RBd","RBD", 1, "set_dampa()") xvalue("RB2d", "RB2D", 1, "set_dampa()") xvalue("RBDr", "RBDR", 1, "set_dampa()") xvalue("RB2Dr", "RB2DR", 1, "set_dampa()") xvalue("RBb", "RBB", 1, "set_dampa()") xpanel() vbox.intercept(0) vbox.map } objectvar vbox2, tempobj2 proc nmda_panel(){ vbox2 = new VBox() vbox2.intercept(1) xpanel("") xvalue("NMDA Gmax","GMAXN", 1, "set_nmda()") xvalue("Rb","A", 1, "set_nmda()") xvalue("Ru", "B", 1, "set_nmda()") xvalue("Rd", "C", 1, "set_nmda()") xvalue("Rr", "D", 1, "set_nmda()") xvalue("Ro", "E", 1, "set_nmda()") xvalue("Rc", "F", 1, "set_nmda()") xvalue("Mg","Magnesium", 1, "set_nmda()") xpanel() vbox2.intercept(0) vbox2.map }