Tutorial 6
Antiporter
 
 
 

 Example 6 creates an antiporter which trades ligand L and ligand M across a membrane to the opposite side, showing that a ligand may bind at one pole and be released at another.


iteration=0

iteration=1000

iteration=2000

iteration=5000

iteration=10000

iteration=15000 

file in_1

/* antiporter */

dt = 1.0e-6
TIME_STEP = dt
ITERATIONS = 1000
EFFECTOR_GRID_DENSITY = 10000

DEFINE_LIGAND L {
  DIFFUSION_CONSTANT = 2.0e-6
}

DEFINE_LIGAND M {
  DIFFUSION_CONSTANT = 2.0e-6
}

k1=1.0e8
k2=10000
k3=1.0e8
k4=10000
k5=10000
k6=10000
k7=10000
k8=10000

DEFINE_REACTION AntiPort {
  P[>PL{k1:+L,POSITIVE_POLE}]
  PL[>P{k2:-L,POSITIVE_POLE}][>PLM{k3:+M,NEGATIVE_POLE}]
  PLM[>PL{k4:-M,NEGATIVE_POLE}][>PLM'{k5}]
  PLM'[>PM'{k7:-L,NEGATIVE_POLE}][>PLM{k6}]
  PM'[>P{k8:-M,POSITIVE_POLE}]
  REFERENCE_STATE P {
    L NUMBER_BOUND = 0
    M NUMBER_BOUND = 0
  }
}

L_release_site SPHERICAL_RELEASE_SITE {
  LOCATION = [0,0,0.1]
  LIGAND = L
  NUMBER_TO_RELEASE = 1000
  SITE_DIAMETER = 0.05
}

M_release_site SPHERICAL_RELEASE_SITE {
  LOCATION = [0,0,-0.1]
  LIGAND = M
  NUMBER_TO_RELEASE = 1000
  SITE_DIAMETER = 0.05
}

box_1 BOX {
  CORNERS = [-0.1,-0.1,0], [0.1,0.1,0.2]
  FULLY_CLOSED = YES
  ADD_EFFECTOR {
    STATE = AntiPort.P
    DENSITY = 1000
    ELEMENT = BOTTOM
    POLE_ORIENTATION = POSITIVE_BACK
  }
}

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

scale = 0.99

sampling_template BOX {
  CORNERS = [-0.1,-0.1,-0.1], [0.1,0.1,0.1]
  FULLY_CLOSED = YES
  TRANSPARENT {LIGAND = L  ELEMENT = ALL_ELEMENTS}
  TRANSPARENT {LIGAND = M  ELEMENT = ALL_ELEMENTS}
}

INSTANTIATE microdomain OBJECT {
  m1 OBJECT L_release_site { }
  m2 OBJECT M_release_site { }
  outer_boxes OBJECT {
    m3 OBJECT box_1 { }
    m4 OBJECT box_2 { }
  }
  sampling_boxes OBJECT {
    m5 OBJECT sampling_template {
      SCALE = [scale,scale,scale]
      TRANSLATE = [0,0,0.1]
    }
    m6 OBJECT sampling_template {
      SCALE = [scale,scale,scale]
      TRANSLATE = [0,0,-0.1]
    }
  }
}

VIZ_DATA_OUTPUT {
  MODE = DX
  STATE_VALUES {
    L = 1
    M = 2
    AntiPort.P = 6
    AntiPort.PL = 7
    AntiPort.PLM = 8
    AntiPort.PLM' = 9
    AntiPort.PM' = 10
  }
  OBJECT_FILE_DESIGNATORS {
    microdomain.outer_boxes = "outer_boxes"
    microdomain.sampling_boxes = "sampling_boxes"
  }
  ITERATION_LIST = [[0 TO 30000 STEP 3000]]
}


REACTION_DATA_OUTPUT {
  STEP = dt
  { COUNT[L,microdomain.sampling_boxes.m5,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".top.L"
  { COUNT[L,microdomain.sampling_boxes.m6,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".bottom.L"
  { COUNT[M,microdomain.sampling_boxes.m5,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".top.M"
  { COUNT[M,microdomain.sampling_boxes.m6,FOR_EACH_TIME_STEP] } => INPUT_FILE & ".bottom.M"
}








Return to Tutorials
Return to MCell