//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 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 create neutral {cellpath}/climb_presyn2 disable {cellpath}/climb_presyn2 setfield {cellpath}/climb_presyn2 z 0 addmsg {cellpath}/climb_presyn2 {cellpath}/main[3-8]/climb ACTIVATION z create neutral {cellpath}/climb_presyn3 disable {cellpath}/climb_presyn3 setfield {cellpath}/climb_presyn3 z 0 addmsg {cellpath}/climb_presyn3 {cellpath}/br1[0-6]/climb ACTIVATION z addmsg {cellpath}/climb_presyn3 {cellpath}/br2[0-6]/climb ACTIVATION z create neutral {cellpath}/climb_presyn4 disable {cellpath}/climb_presyn4 setfield {cellpath}/climb_presyn4 z 0 addmsg {cellpath}/climb_presyn4 {cellpath}/br1[7-12]/climb ACTIVATION z addmsg {cellpath}/climb_presyn4 {cellpath}/br2[7-12]/climb ACTIVATION z addmsg {cellpath}/climb_presyn4 {cellpath}/br3[0-8]/climb ACTIVATION z create neutral {cellpath}/climb_presyn5 disable {cellpath}/climb_presyn5 setfield {cellpath}/climb_presyn5 z 0 addmsg {cellpath}/climb_presyn5 {cellpath}/br1[13-20]/climb ACTIVATION z addmsg {cellpath}/climb_presyn5 {cellpath}/br2[13-21]/climb ACTIVATION z addmsg {cellpath}/climb_presyn5 {cellpath}/br3[9-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} hstr={findsolvefield {cellpath} {cellpath}/main[4] Vm} addmsg {cellpath} /output/plot_out SAVE {hstr} hstr={findsolvefield {cellpath} {cellpath}/br1[10] Vm} addmsg {cellpath} /output/plot_out SAVE {hstr} hstr={findsolvefield {cellpath} {cellpath}/b3s44[20] 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} hstr={findsolvefield {cellpath} {cellpath}/b3s44[20]/CaT Ik} addmsg {cellpath} /output/plot_out SAVE {hstr} hstr={findsolvefield {cellpath} {cellpath}/b3s44[20]/KC Ik} addmsg {cellpath} /output/plot_out SAVE {hstr} hstr={findsolvefield {cellpath} {cellpath}/b3s44[20]/K2 Ik} addmsg {cellpath} /output/plot_out SAVE {hstr} hstr={findsolvefield {cellpath} {cellpath}/b3s44[20]/KM Ik} addmsg {cellpath} /output/plot_out SAVE {hstr} setfield /output/plot_out filename {filename} initialize 1 append 1 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_presyn1 z 0 step {delay} -time setfield {cellpath}/climb_presyn2 z 1 step 1 setfield {cellpath}/climb_presyn2 z 0 step {delay} -time setfield {cellpath}/climb_presyn3 z 1 step 1 setfield {cellpath}/climb_presyn3 z 0 step {delay} -time setfield {cellpath}/climb_presyn4 z 1 step 1 setfield {cellpath}/climb_presyn4 z 0 step {delay} -time setfield {cellpath}/climb_presyn5 z 1 step 1 setfield {cellpath}/climb_presyn5 z 0 step {delay} -time step 0.1 -time quit