// genesis 2.3 include defaults int hflag = 1 // use hsolve if hflag = 1 int chanmode = 1 float tmax = 0.1 // simulation time in sec float dt = 1e-7 // simulation time step in sec setclock 0 {dt} // set the simulation clock float injcurr = 0 setclock 1 1e-4 //clock for plots // Create a library of prototype elements to be used by the cell reader /* file for standard compartments */ include compartments //* file for Hodgkin-Huxley Squid Na and K channels */ include hhchan /* file for Upi's mitral cell channels */ include mitchan include newbulbchan /* file for Upi's mitral cell synaptic channels */ include mitsynC2 // for now use channelC2 version // file for Fabio's prototype include fabioproto /************************************************************************ ** 2 Invoking functions to make prototypes in the /library element ************************************************************************/ //create neutral /library disable /library pushe /library /* Make the standard types of compartments */ make_cylind_compartment /* makes "compartment" */ make_sphere_compartment /* makes "compartment_sphere" */ make_cylind_symcompartment /* makes "symcompartment" */ make_sphere_symcompartment /* makes "symcompartment_sphere" */ /* These are some standard channels used in .p files */ make_Na_squid_hh /* makes "Na_squid_hh" */ make_K_squid_hh /* makes "K_squid_hh" */ make_Na_mit_hh /* makes "Na_mit_hh" */ make_K_mit_hh /* makes "K_mit_hh" */ make_LCa3_mit_usb make_Na_rat_smsnn // Na current make_Na2_rat_smsnn make_KA_bsg_yka make_KM_bsg_upi make_K_mit_usb // K-current make_K2_mit_usb make_K_slow_usb make_Na_mit_usb make_Na2_mit_usb make_glu_mit_usb make_GABA_1_mit_usb make_GABA_2_mit_usb make_glu_gran_usb make_glu_pg_usb make_olf_receptor make_spike make_Kca_mit_usb make_Ca_mit_conc make_GABA_A //fabioproto make_AMPA_NMDA // fabioproto make_Ca_conc /fabioproto /* These are some synaptic channels for the mitral cell */ make_glu_mit_upi /* makes "glu_mit_upi" */ make_GABA_mit_upi /* makes "GABA_mit_upi" */ pope enable /library //=============================== // Function Definitions //=============================== function step_tmax step {tmax} -time end //=============================== // Graphics Functions //=============================== function make_control create xform /control [10,50,300,200] create xlabel /control/label -hgeom 50 -bg cyan -label "CONTROL PANEL" create xbutton /control/RESET -wgeom 25% -script reset create xbutton /control/RUN -xgeom 0:RESET -ygeom 0:label -wgeom 19% \ -script step_tmax create xbutton /control/STOP -xgeom 0:RUN -ygeom 0:label -wgeom 19% \ -script stop create xbutton /control/QUIT -xgeom 0:STOP -ygeom 0:label -wgeom 19% \ -script quit create xbutton /control/STIM -xgeom 0:QUIT -ygeom 0:label -wgeom 19% \ -script stim create xdialog /control/Injection -label "Injection (amperes)" \ -value {injcurr} -script "set_inject <widget>" create xdialog /control/stepsize -title "dt (sec)" -value {dt} \ -script "change_stepsize <widget>" create xdialog /control/tempo -label "Tmax (sec)" \ -value {tmax} -script "set_time <widget>" create xtoggle /control/overlay \ -script "overlaytoggle <widget>" setfield /control/overlay offlabel "Overlay OFF" onlabel "Overlay ON" state 0 xshow /control end function make_Vmgraph float vmin = -0.100 float vmax = 0.05 create xform /data [265,50,350,350] create xlabel /data/label -hgeom 10% -label "Granule cell " create xgraph /data/voltage -hgeom 90% -title "Membrane Potential" setfield ^ XUnits sec YUnits Volts setfield ^ xmax {tmax} ymin {vmin} ymax {vmax} xshow /data useclock /data/## 1 end function make_Gkgraph float gmin = 0 float gmax = 1e-9 create xform /data2 [265,50,350,350] create xlabel /data2/label -hgeom 10% -label "Granule cell" create xgraph /data2/conductance -hgeom 90% -title "Conductances" setfield ^ XUnits sec YUnits Siemens setfield ^ xmax {tmax} ymin {gmin} ymax {gmax} xshow /data2 useclock /data2/## 1 end function make_xcell create xform /cellform [620,50,400,400] create xdraw /cellform/draw [0,0,100%,100%] setfield /cellform/draw xmin -3e-3 xmax 3e-3 ymin -3e-3 ymax 3e-3 zmin -3e-2 zmax 3e-2 transform p xshow /cellform echo creating xcell create xcell /cellform/draw/cell setfield /cellform/draw/cell colmin -0.1 colmax 0.1 \ path /cell/##[TYPE=compartment] field Vm \ script "echo <w> <v>" useclock /cellform/## 1 end function set_time(dialog) str dialog tmax={getfield {dialog} value} end function set_inject(dialog) str dialog setfield /cell/soma inject {getfield {dialog} value} end function change_stepsize(dialog) str dialog dt = {getfield {dialog} value} setclock 0 {dt} echo "Changing step size to "{dt} end function stim step 0.010 -time echo "Firing synapse" setfield presyn z {1/{getclock 0}} step 1 setfield presyn z 0 step 1 step 0.9 -time echo "End of simulation" end // Use of the wildcard sets overlay field for all graphs function overlaytoggle(widget) str widget setfield /##[TYPE=xgraph] overlay {getfield {widget} state} end //=============================== // Main Script //=============================== // Build the cell from a parameter file using the cell reader readcell granI_fabio.p /cell -hsolve setfield /cell path "/cell/##[][TYPE=compartment]" setfield /cell chanmode {chanmode} call /cell SETUP setmethod 11 echo "Using hsolve" reset setfield /cell/soma inject {injcurr} //setting up ca_fraction and Enmda function set_Cafraction //fractional Ca2+ (Schneggenburger et al., 1996) float Caout=2 //mM extracelular calcium float M=155 //mM extracelular monovalent ion concentration float PCaPM=3.6 //permeability ration of Ca2+ over monovalent ions float T=298.15 //273.15+25 Celcius Temperature float R=8.314 //J.K-1.mol-1 gas constant float F=96485 //C.mol-1 Farady constant float V float f //GHK approach for Enmda float Enmda float a a={{4*M*{M+{4*PCaPM*Caout}}**0.5}/{2*M}} Enmda= {{R*T}/F}*{log {a}} setfield /cell/periph12[17]/head[17]/AMPA_NMDA Ek Enmda setfield /cell/periph11[20]/head[20]/AMPA_NMDA Ek Enmda setfield /cell/periph21[5]/head[5]/AMPA_NMDA Ek Enmda setfield /cell/periph22[8]/head[8]/AMPA_NMDA Ek Enmda V={getfield /cell/periph12[17]/head[17] Vm} f={Caout}/{Caout+{1/PCaPM}*{M/4}*{1-{exp {2*V*F/{R*T}}}}} setfield /cell/periph12[17]/head[17]/AMPA_NMDA/Ca_fraction x {f} V={getfield /cell/periph11[20]/head[20] Vm} f={Caout}/{Caout+{1/PCaPM}*{M/4}*{1-{exp {2*V*F/{R*T}}}}} setfield /cell/periph11[20]/head[20]/AMPA_NMDA/Ca_fraction x {f} V={getfield /cell/periph21[5]/head[5] Vm} f={Caout}/{Caout+{1/PCaPM}*{M/4}*{1-{exp {2*V*F/{R*T}}}}} setfield /cell/periph21[5]/head[5]/AMPA_NMDA/Ca_fraction x {f} V={getfield /cell/periph22[8]/head[8] Vm} f={Caout}/{Caout+{1/PCaPM}*{M/4}*{1-{exp {2*V*F/{R*T}}}}} setfield /cell/periph22[8]/head[8]/AMPA_NMDA/Ca_fraction x {f} end create script_out /set_Cafraction_nmda setfield /set_Cafraction_nmda command set_Cafraction // make the control panel make_control // make the graph to display soma Vm and pass messages to the graph make_Vmgraph addmsg /cell/soma /data/voltage PLOT Vm *soma *black addmsg /cell/trunk[6] /data/voltage PLOT Vm *trunk *red make_Gkgraph /* comment out the line below to disable the cell display (faster) */ make_xcell // create and display the xcell Vm xcolorscale hot //Granule cell stimulation ce / /* create presynaptic element for NMDA and AMPA channels */ create neutral presyn setfield presyn z 0 //Stimulation patterns //Spines on the tip of the terminal dendrites addmsg /presyn /cell/periph11[20]/##[][TYPE=synchan] ACTIVATION z addmsg /presyn /cell/periph12[17]/##[][TYPE=synchan] ACTIVATION z addmsg /presyn /cell/periph21[5]/##[][TYPE=synchan] ACTIVATION z addmsg /presyn /cell/periph22[8]/##[][TYPE=synchan] ACTIVATION z //Setting maximum conductances setfield /cell/##[][TYPE=compartment]/head[]/AMPA_NMDA gmax 1e-9 setfield /cell/##[][TYPE=compartment]/head[]/AMPA_NMDA/NMDA gmax 0.593e-9 //Ploting variables addmsg /cell/periph12[17]/head[]/AMPA_NMDA/NMDA /data2/conductance PLOT Gk *GNMDA *green addmsg /cell/periph12[17]/head[]/AMPA_NMDA /data2/conductance PLOT Gk *GAMPA *red //Magnesium concentration setfield /cell/##[][TYPE=Mg_block] CMg 1.2 reset