Tutorial 5
Both Poles


 

 Example 5 creates another grid of effectors which is now located on a transparent grid located in the middle of a cube, and allowing binding to occur at both positive and negative poles.

positive pole negative pole

file in_1

/* both_poles_1 */

dt = 1.0e-6
chkpt_it = 200

TIME_STEP = dt
ITERATIONS = 10000
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{0.0:+ACh,BOTH_POLES}]
  AR[>R{0.0:-ACh,EITHER_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.05
}

box_1 BOX {
  CORNERS = [-0.1,-0.1,0], [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
  }
  TRANSPARENT {LIGAND = ACh  ELEMENT = BOTTOM}
}

box_2 BOX {
  CORNERS = [-0.1,-0.1,-0.1], [0.1,0.1,0]
  FULLY_CLOSED = YES
}

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

/*
VIZ_DATA_OUTPUT {
  MODE = DX
  STATE_VALUES {
    ACh = 1
    AChR.R = 5
    AChR.AR = 10
  }
  OBJECT_FILE_DESIGNATORS {
    microdomain = "box"
  }
  ITERATION_LIST = [0,chkpt_it-1]
}
*/

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,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".ACh"
}


file in_2
/* both_poles_2 */

dt = 1.0e-6
chkpt_it = 2000

TIME_STEP = dt
ITERATIONS = 10000
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,BOTH_POLES}]
  AR[>R{10000.0:-ACh,EITHER_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.05
}

box_1 BOX {
  CORNERS = [-0.1,-0.1,0], [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
  }
  TRANSPARENT {LIGAND = ACh  ELEMENT = BOTTOM}
}

box_2 BOX {
  CORNERS = [-0.1,-0.1,-0.1], [0.1,0.1,0]
  FULLY_CLOSED = YES
}

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

/*
VIZ_DATA_OUTPUT {
  MODE = DX
  STATE_VALUES {
    ACh = 1
    AChR.R = 5
    AChR.AR = 10
  }
  OBJECT_FILE_DESIGNATORS {
    microdomain = "box"
  }
  ITERATION_LIST = [0,chkpt_it-1]
}
*/

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,WORLD,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".ACh"
}


Return to Tutorials
Return to MCell