A Federated Design for a Neurobiological Simulation Engine: The CBI federated software architecture.

Cornelis H, Coop AD, and Bower JM

Supplementary Materials 1:

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