The following example shows how a simulator script file typically contains a mixture of experiment protocol definitions (e.g. fire climbing fiber input as an ascending volley, lines 56–63 and then again lines 103–108, set stimulation frequency, lines 19–20), and simulation control (e.g.setup the compartmental solver, line 54 and lines 75–82)
//genesis - Purkinje cell version M9 genesis2.1 master script /* Copyright E. De Schutter (Caltech and BBF-UIA) */ /* This script simulates a Purkinje cell in vitro, receiving a climbing ** fiber input ** It also demonstrates how to output [Ca] and Ik values */ /* Reference: ** E. De Schutter and J.M. Bower: An active membrane model of the ** cerebellar Purkinje cell: II. Simulation of synaptic responses. ** Journal of Neurophysiology 71: 401-419 (1994). ** http://www.bbf.uia.ac.be/TNB/TNB_pub7.html ** We reconstruct parts of Fig. 4 of this paper. ** See http://www.bbf.uia.ac.be/models/PM9.shtml for general model info. */ randseed float phertz = 25 float ihertz = 1 float delay = 0.00020 /* sets speed of climbing fiber volley */ str filename = "results/PurkM9_CS" echo file {filename} int i include defaults cellpath="/Purkinje" str hstr /********************************************************************* ** Active membrane lumped Purkinje cell model script (#2M9) ** E. De Schutter, Caltech 1991-1993 ** Uses the scripts: Purk_chan, Purk_cicomp, Purk_const, Purk_syn *********************************************************************/ /* Purkinje cell constants */ include Purk_const.g /* special scripts to create the prototypes */ include Purk_chan include Purk_cicomp include Purk_syn /* To ensure that all subsequent elements are made in the library */ ce /library /* These make the prototypes of channels and compartments that can be ** invoked in .p files */ make_Purkinje_chans make_Purkinje_syns make_Purkinje_comps /* create the model and set up the run cell mode */ // read cell date from .p file and make hsolve element readcell tests/scripts/PurkM9_model/Purk2M9.p {cellpath} -hsolve /* make climbing fiber presynaptic elements */ create neutral {cellpath}/climb_presyn1 disable {cellpath}/climb_presyn1 setfield {cellpath}/climb_presyn1 z 0 //addmsg {cellpath}/climb_presyn1 {cellpath}/main[0-2]/climb ACTIVATION z addmsg {cellpath}/climb_presyn1 {cellpath}/main[0]/climb ACTIVATION z . . . addmsg {cellpath}/climb_presyn5 {cellpath}/br3[16]/climb ACTIVATION z /* Set the clocks */ for (i = 0; i <= 8; i = i 1) setclock {i} {dt} end setclock 9 1.0e-4 /* Create the output element */ create asc_file /output/plot_out useclock /output/plot_out 9 // setup the hines solver ce {cellpath} /* we need chanmode 4 for output of Ik and calcmode 0 for backward ** compatibility (this version M9 of the Purkinje cell model only!) */ setfield comptmode 1 chanmode 4 calcmode 0 call . SETUP setmethod 11 /* Initialize output */ /* Output voltage as in Fig. 4 */ hstr={findsolvefield {cellpath} {cellpath}/soma Vm} addmsg {cellpath} /output/plot_out SAVE {hstr} . . . /* Output [Ca] as in Fig. 4D */ hstr={findsolvefield {cellpath} {cellpath}/b3s44[20]/Ca_pool Ca} addmsg {cellpath} /output/plot_out SAVE {hstr} /* Output currents as in Fig. 4D: requires chanmode 4 */ // hstr={findsolvefield {cellpath} {cellpath}/b3s44[20]/CaP Ik} // addmsg {cellpath} /output/plot_out SAVE {hstr} . . . // setfield /output/plot_out filename {filename} initialize 1 append 1 leave_open 1 setfield /output/plot_out filename {filename} leave_open 1 reset step 0.2 -time /* fire climbing fiber input as an ascending volley */ setfield {cellpath}/climb_presyn1 z 1 step 1 . . . setfield {cellpath}/climb_presyn5 z 0 step {delay} -time step 0.1 -time quit |