/* neuronal_epscs.main.mdl */

 

INCLUDE_FILE = "input_parameter_values.mdl"

 

TIME_STEP = dt  /* numerical variable values are defined in the include file "input_parameter_values.mdl" */

ITERATIONS = it

 

EFFECTOR_GRID_DENSITY = 10000

 

PARTITION_X = [[-0.26 TO 0.26 STEP 0.025]]

PARTITION_Y = [[-0.22 TO 0.22 STEP 0.025]]

PARTITION_Z = [[-0.33 TO 0.33 STEP 0.025]]

 

DEFINE_LIGAND Glu {

  DIFFUSION_CONSTANT = D_Glu

}

 

/* AMPA Glu receptor reaction mechanism as shown in book Fig. 4.7A (from Geiger et al., 1999).  Positive pole of effector sites faces diffusion space. */

DEFINE_REACTION AMPA {

  C0 [>C1{AMPA_kC0C1:+Glu,POSITIVE_POLE}]

  C1 [>C2{AMPA_kC1C2:+Glu,POSITIVE_POLE}]

     [>C3{AMPA_kC1C3}][>C0{AMPA_kC1C0:-Glu,POSITIVE_POLE}]

  C2 [>O{AMPA_kC2O}][>C4{AMPA_kC2C4}]

     [>C1{AMPA_kC2C1:-Glu,POSITIVE_POLE}]

  C3 [>C4{AMPA_kC3C4:+Glu,POSITIVE_POLE}]

     [>C1{AMPA_kC3C1}]

  C4 [>C5{AMPA_kC4C5}][>C2{AMPA_kC4C2}]

     [>C3{AMPA_kC4C3:-Glu,POSITIVE_POLE}]

  C5 [>C4{AMPA_kC5C4}]

     [>O{AMPA_kC5O}]

  O  [>C2{AMPA_kOC2}]

     [>C5{AMPA_kOC5}]

  REFERENCE_STATE C0 {

    Glu NUMBER_BOUND = 0

  }

}

 

/* Glu reuptake reaction mechanism.  Positive pole of effector sites faces diffusion space. */

DEFINE_REACTION GluT {

  T0 [>T1{GluT_kT0T1:+Glu,POSITIVE_POLE}]

  T1 [>T2{GluT_kT1T2}][>T0{GluT_kT1T0:-Glu,POSITIVE_POLE}]

  T2 [>T0{GluT_kT2T0:-Glu,NEGATIVE_POLE}]

  REFERENCE_STATE T0 {

    Glu NUMBER_BOUND = 0

  }

}

 

/* Create release pattern to trigger Glu release at ~36 Hz, starting immediately at time 0. */

DEFINE_RELEASE_PATTERN train_1 {

  DELAY = 0  /* Initial release at time 0. */

  RELEASE_INTERVAL = 0.028  /* 28 millisecond release interval. */

  TRAIN_INTERVAL = 1  /* 1 second between trains. */

  TRAIN_DURATION = 0.14  /* Train lasts for entire simulation. */

  NUMBER_OF_TRAINS = 1

}

 

/* Create release pattern to trigger Glu release at ~48 Hz, starting after a delay of 1.5 milliseconds. */

DEFINE_RELEASE_PATTERN train_2 {

  DELAY = 1.5e-3  /* Initial release at time 0.0015 seconds. */

  RELEASE_INTERVAL = 0.021  /* 21 millisecond release interval. */

  TRAIN_INTERVAL = 1  /* 1 second between trains. */

  TRAIN_DURATION = 0.14  /* Train lasts for entire simulation. */

  NUMBER_OF_TRAINS = 1

}

 

/* Create release pattern to trigger Glu release at ~41 Hz, starting after a delay of 3 milliseconds. */

DEFINE_RELEASE_PATTERN train_3 {

  DELAY = 3.0e-3  /* Initial release at time 0.003 seconds. */

  RELEASE_INTERVAL = 0.0245  /* 24.5 millisecond release interval. */

  TRAIN_INTERVAL = 1  /* 1 second between trains. */

  TRAIN_DURATION = 0.14  /* Train lasts for entire simulation. */

  NUMBER_OF_TRAINS = 1

}

 

/* Spherical mesh templates are read from include files. */

INCLUDE_FILE = "cell_membrane.mdl"

INCLUDE_FILE = "diffusion_space_boundary.mdl"

 

INSTANTIATE neuron OBJECT {

  /* 3 release sites at different locations are instantiated directly, rather than by referring to templates.  In each case, the default (unspecified) release probability of 1 is used. */

  Glu_release_site_1 SPHERICAL_RELEASE_SITE {

    LOCATION = [0.227,0,0]

    LIGAND = Glu

    NUMBER_TO_RELEASE = n  /* Value of variable "n" defined in include file "input_parameter_values.mdl". */

    SITE_DIAMETER = 0

    RELEASE_PATTERN = train_1

  }

  Glu_release_site_2 SPHERICAL_RELEASE_SITE {

    LOCATION = [0,0.227*0.8,0]

    LIGAND = Glu

    NUMBER_TO_RELEASE = n

    SITE_DIAMETER = 0

    RELEASE_PATTERN = train_2

  }

  Glu_release_site_3 SPHERICAL_RELEASE_SITE {

    LOCATION = [0,0,0.227*1.3]

    LIGAND = Glu

    NUMBER_TO_RELEASE = n

    SITE_DIAMETER = 0

    RELEASE_PATTERN = train_3

  }

  /* An asymmetric scaling transformation is used to convert spherical mesh templates into ellipsoidal objects. */

  cell_membrane OBJECT inner_sphere {SCALE = [1,0.8,1.3]}

  diffusion_space_boundary OBJECT outer_sphere {SCALE = [1,0.8,1.3]}

}

 

VIZ_DATA_OUTPUT {

  MODE = DX

  STATE_VALUES {

    neuron.cell_membrane = 1

    neuron.diffusion_space_boundary = 2

    AMPA.C0 = 1

    AMPA.C1 = 2

    AMPA.C2 = 3

    AMPA.C3 = 4

    AMPA.C4 = 5

    AMPA.C5 = 6

    AMPA.O = 7

    GluT.T0 = 8

    GluT.T1 = 9

    GluT.T2 = 10

    Glu = 11

  }

  MOLECULE_FILE_PREFIX = "neuron"

  OBJECT_FILE_PREFIXES {

    neuron = "neuron"

  }

  ITERATION_FRAME_DATA {

    SURFACE_POSITIONS = [0]

    SURFACE_STATES = [0]

    EFFECTOR_POSITIONS = [0]

    EFFECTOR_STATES = [[0 TO 500 STEP 25]]

    LIGAND_POSITIONS = [[0 TO 500 STEP 25]]

    LIGAND_STATES = [[0 TO 500 STEP 25]]

    /* To reproduce frame data used for the "neuron" animation on CD-ROM, use the following 3 lines in place of the above 3 lines.  CAUTION:  Doing so will create more than 7000 files that will require about 350 Mbytes of disk space!!

    EFFECTOR_STATES = [[0 TO 140000 STEP 100]]

    LIGAND_POSITIONS = [[0 TO 140000 STEP 100]]

    LIGAND_STATES = [[0 TO 140000 STEP 100]]

    */

  }

}

 

/* Reaction statistics output for book Fig.’s 4.7B-E. */

REACTION_DATA_OUTPUT {

  STEP = 1.0*dt  /* Output values for each time-step iteration. */

  { COUNT[Glu,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".Glu"  /* INPUT_FILE keyword is a placeholder for the name of the main MDL file used to run the simulation.  In this case, the output file name will be "neuronal_epscs.main.mdl.Glu". */

  { COUNT[AMPA.C0,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".AMPA.C0"

  { COUNT[AMPA.C1,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".AMPA.C1"

  { COUNT[AMPA.C2,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".AMPA.C2"

  { COUNT[AMPA.C3,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".AMPA.C3"

  { COUNT[AMPA.C4,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".AMPA.C4"

  { COUNT[AMPA.C5,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".AMPA.C5"

  { COUNT[AMPA.O,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".AMPA.O"

  { COUNT[GluT.T0,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".GluT.T0"

  { COUNT[GluT.T1,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".GluT.T1"

  { COUNT[GluT.T2,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".GluT.T2"

}