Tutorial 4
Single Binding


 

 Example 4 introduces the simulation of reaction sites through the use of effectors. This setup simulates single binding events on a grid of effectors located on the bottom of a cube.

file in_1

/* ligand_sampling */

INCLUDE_FILE = "run_parameters"
INCLUDE_FILE = ligand_parameters

TIME_STEP = dt
ITERATIONS = iterations

PARTITION_X = [-1.051,-0.935,-0.7,-0.35,-0.052,0.052,0.35,0.7,0.935,1.051]

DEFINE_LIGAND red_ligand {DIFFUSION_CONSTANT = red_ligand_diffusion_constant}
DEFINE_LIGAND blue_ligand {DIFFUSION_CONSTANT = blue_ligand_diffusion_constant}

offset = 0.05

origin_box BOX {
        CORNERS = [-offset,-offset,-offset], [offset,offset,offset]
        FULLY_CLOSED = YES
        TRANSPARENT {
                LIGAND = red_ligand
                ELEMENT = ALL_ELEMENTS
        }
        TRANSPARENT {
                LIGAND = blue_ligand
                ELEMENT = ALL_ELEMENTS
        }
}

translated_origin_boxes  OBJECT {
        member_1 OBJECT origin_box {
                TRANSLATE = [1.0,0,0]
        }
        member_2 OBJECT origin_box {
                TRANSLATE = [1.0,0,0]
                ROTATE = [0,0,1], 90
        }
}

ring_of_boxes OBJECT {
        member_1 OBJECT translated_origin_boxes {}
        member_2 OBJECT translated_origin_boxes {
                ROTATE = [1,1,0], 45
        }
        member_3 OBJECT translated_origin_boxes {
                ROTATE = [1,1,0], 90
        }
        member_4 OBJECT translated_origin_boxes {
                ROTATE = [1,1,0], 135
        }
}

INSTANTIATE microdomain OBJECT {
        far_ring_of_boxes OBJECT ring_of_boxes {}
        near_ring_of_boxes OBJECT ring_of_boxes {
                TRANSLATE = [-1,-1,0]
        }
        red_ligand_release_site SPHERICAL_RELEASE_SITE {
                LOCATION = red_location
                LIGAND = red_ligand
                NUMBER_TO_RELEASE = number_of_ligand_molecules
                SITE_DIAMETER = release_site_diameter
        }
        blue_ligand_release_site SPHERICAL_RELEASE_SITE {
                LOCATION = blue_location
                LIGAND = blue_ligand
                NUMBER_TO_RELEASE = number_of_ligand_molecules
                SITE_DIAMETER = release_site_diameter
        }
}

/*
VIZ_DATA_OUTPUT {
        MODE = DX
        STATE_VALUES {red_ligand = 1  blue_ligand = 2
                microdomain.far_ring_of_boxes = 1
                microdomain.near_ring_of_boxes = 2
        }
        OBJECT_FILE_DESIGNATORS {microdomain = viz_output_file & ".microdomain"}
        ITERATION_LIST = [[0 TO 360 STEP 1]]
}
*/

REACTION_DATA_OUTPUT {
        STEP = 1*dt
        {COUNT[red_ligand,microdomain.far_ring_of_boxes,FOR_EACH_TIME_STEP] + 
                COUNT[red_ligand,microdomain.near_ring_of_boxes,FOR_EACH_TIME_STEP]}  =>
                INPUT_FILE & ".red_ligand"
        {COUNT[blue_ligand,microdomain.near_ring_of_boxes,FOR_EACH_TIME_STEP]} = >
                INPUT_FILE & ".blue_ligand.near"
        {COUNT[blue_ligand,microdomain.far_ring_of_boxes,FOR_EACH_TIME_STEP]}  =>
                INPUT_FILE & ".blue_ligand.far"
}
file in_2
/* single_binding_2 */

dt = 1.0e-6
chkpt_it = 2000

TIME_STEP = dt
ITERATIONS = 50000
EFFECTOR_GRID_DENSITY = 10000

CHECKPOINT_INFILE = "chkpt"
CHECKPOINT_OUTFILE = "chkpt"
CHECKPOINT_ITERATIONS = chkpt_it

DEFINE_LIGAND ACh {
  DIFFUSION_CONSTANT = 2.1e-6
}

DEFINE_REACTION AChR {
  R[>AR{10.0e7:+ACh,POSITIVE_POLE}]
  AR[>R{10000.0:-ACh,POSITIVE_POLE}]
  REFERENCE_STATE R {
    ACh NUMBER_BOUND = 0
  }
}

ACh_release_site SPHERICAL_RELEASE_SITE {
  LOCATION = [0,0,0]
  LIGAND = ACh
  NUMBER_TO_RELEASE = 57
  SITE_DIAMETER = 0.0
}

box_1 BOX {
  CORNERS = [-0.1,-0.1,-0.1], [0.1,0.1,0.1]
  FULLY_CLOSED = YES
  ADD_EFFECTOR {
    STATE = AChR.R
    DENSITY = 8935
    ELEMENT = BOTTOM
    POLE_ORIENTATION = POSITIVE_BACK
  }
  ADD_EFFECTOR {
    STATE = AChR.AR
    DENSITY = 1065
    ELEMENT = BOTTOM
    POLE_ORIENTATION = POSITIVE_BACK
  }
}

INSTANTIATE microdomain OBJECT {
  m1 OBJECT ACh_release_site { }
  m2 OBJECT box_1 { }
}

/*
VIZ_DATA_OUTPUT {
  MODE = DX
  STATE_VALUES {
    ACh = 1
    AChR.R = 5
    AChR.AR = 10
  }
  OBJECT_FILE_DESIGNATORS {
    microdomain = "box"
  }
  ITERATION_LIST = [0,199,[200 TO 1999 STEP 100]]
}
*/

REACTION_DATA_OUTPUT {
  STEP = 1.0*dt
  { COUNT[AChR.R,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".R"
  { COUNT[AChR.AR,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".AR"
  { COUNT[ACh,microdomain,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".ACh"
}

Return to Tutorials
Return to MCell