04-macro_surface_init.mdl 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. /****************************************************************************
  2. * Test 04: Surface macromolecule init by density/number.
  3. *
  4. * This test is to ensure that init_effectors properly handles surface
  5. * macromolecules. Most of the information is conveyed by the time 0 viz
  6. * output, but the forward reaction rate has been cranked up enough to see
  7. * from the reaction data also whether the molecules were placed. The
  8. * complexes are at the center of each face, the middle of each edge, and on
  9. * each corner of the box. The subunits should conform to the corners of
  10. * the box as appropriate.
  11. *
  12. * Note, in particular, that if the complexes (or resultant subunits) were
  13. * placed with incorrect orientation, we expect that close to 66% of the
  14. * dimer pairs will be in the doubly-bound state, 16% will be in the
  15. * singly-bound state, and 16% should perpetually be in the unbound state (1
  16. * of the dimer pairs from each ring is intentionally placed with the wrong
  17. * orientation to react).
  18. *
  19. * Author: Jed Wing <[email protected]>
  20. * Date: 2008-04-04
  21. ****************************************************************************/
  22. basename = "04-macro_surface_init"
  23. countdir = "dat/" & basename & "/"
  24. vizdir = "./viz_dat/" & basename & "/"
  25. sprintf(seed, "%04g", SEED)
  26. dt = 1e-6
  27. iterations=1
  28. INCLUDE_FILE="parameters.mdl"
  29. TIME_STEP = dt
  30. ITERATIONS = iterations
  31. EFFECTOR_GRID_DENSITY = 15000
  32. ACCURATE_3D_REACTIONS = FALSE
  33. PARTITION_X = [[-0.5001 TO 0.50001 STEP 0.02]]
  34. PARTITION_Y = [[-0.5001 TO 0.50001 STEP 0.02]]
  35. PARTITION_Z = [[-0.5001 TO 0.50001 STEP 0.02]]
  36. DEFINE_MOLECULES {
  37. camkii_subunit { DIFFUSION_CONSTANT_2D = 0 }
  38. camkii_subunitB { DIFFUSION_CONSTANT_2D = 0 }
  39. cam { DIFFUSION_CONSTANT_3D = cam_diffusion }
  40. }
  41. DEFINE_COMPLEX_MOLECULE camkii {
  42. NUMBER_OF_SUBUNITS = [2, 6]
  43. SUBUNIT[1 , 1 ] = camkii_subunit'
  44. SUBUNIT[2 , 1 ] = camkii_subunit,
  45. SUBUNIT[1:2, 2 ] = camkii_subunit,
  46. SUBUNIT[1:2, 3:6] = camkii_subunit'
  47. SHAPE {
  48. SUBUNIT[1, 1] = [-.11, .0000, 0]
  49. SUBUNIT[1, 2] = [-.06, .0866, 0]
  50. SUBUNIT[1, 3] = [ .06, .0866, 0]
  51. SUBUNIT[1, 4] = [ .11, .0000, 0]
  52. SUBUNIT[1, 5] = [ .06, -.0866, 0]
  53. SUBUNIT[1, 6] = [-.06, -.0866, 0]
  54. SUBUNIT[2, 1] = [-.09, .0000, 0]
  55. SUBUNIT[2, 2] = [-.04, .0866, 0]
  56. SUBUNIT[2, 3] = [ .04, .0866, 0]
  57. SUBUNIT[2, 4] = [ .09, .0000, 0]
  58. SUBUNIT[2, 5] = [ .04, -.0866, 0]
  59. SUBUNIT[2, 6] = [-.04, -.0866, 0]
  60. }
  61. SUBUNIT_RELATIONSHIPS {
  62. dimer_partner = [+1, 0]
  63. }
  64. RATE_RULES {
  65. }
  66. }
  67. DEFINE_SURFACE_CLASSES {
  68. class1 { MOLECULE_NUMBER { camkii' = 20 } } // Presently broken
  69. class2 { MOLECULE_DENSITY { camkii' = 200.0 } } // Presently broken
  70. class3 { MOLECULE_NUMBER { camkii; = 25 } } // Presently broken
  71. }
  72. mainbox OBJECT {
  73. b BOX {
  74. CORNERS = [ -0.5, -0.5, -0.5 ], [ 0.5, 0.5, 0.5 ]
  75. DEFINE_SURFACE_REGIONS {
  76. /* NOTE: TEMPORARILY COMMENTED class1, class2, and class3 below
  77. until a code will be fixed to allow complex molecules
  78. placement through SURFACE CLASSES */
  79. top { ELEMENT_LIST = [TOP] /* SURFACE_CLASS = class1 */ }
  80. left { ELEMENT_LIST = [LEFT] /* SURFACE_CLASS = class2 */ }
  81. front { ELEMENT_LIST = [FRONT] /* SURFACE_CLASS = class3 */ }
  82. bottom { ELEMENT_LIST = [BOTTOM] MOLECULE_NUMBER { camkii, = 20 } }
  83. right { ELEMENT_LIST = [RIGHT] MOLECULE_NUMBER { camkii, = 200.0 } }
  84. back { ELEMENT_LIST = [BACK] MOLECULE_DENSITY { camkii; = 200.0 } }
  85. }
  86. }
  87. }
  88. INSTANTIATE world OBJECT
  89. {
  90. mainbox OBJECT mainbox {
  91. }
  92. rs2 RELEASE_SITE {
  93. SHAPE = world.mainbox.b[ALL]
  94. MOLECULE = cam
  95. NUMBER_TO_RELEASE = num_cam
  96. }
  97. }
  98. REACTION_DATA_OUTPUT
  99. {
  100. OUTPUT_BUFFER_SIZE = 1000
  101. ITERATION_LIST=[0]
  102. HEADER = "# "
  103. {
  104. COUNT[camkii, WORLD] : "complexes",
  105. COUNT[camkii_subunit, WORLD] : "subunits",
  106. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit']}, WORLD] : "00",
  107. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit,]}, WORLD] : "01",
  108. COUNT[SUBUNIT{camkii : camkii_subunit, [dimer_partner == camkii_subunit,]}, WORLD] : "11",
  109. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit']}, world.mainbox.b[top]] : "00t",
  110. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit,]}, world.mainbox.b[top]] : "01t",
  111. COUNT[SUBUNIT{camkii : camkii_subunit, [dimer_partner == camkii_subunit,]}, world.mainbox.b[top]] : "11t",
  112. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit']}, world.mainbox.b[bottom]] : "00b",
  113. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit,]}, world.mainbox.b[bottom]] : "01b",
  114. COUNT[SUBUNIT{camkii : camkii_subunit, [dimer_partner == camkii_subunit,]}, world.mainbox.b[bottom]] : "11b",
  115. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit']}, world.mainbox.b[left]] : "00l",
  116. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit,]}, world.mainbox.b[left]] : "01l",
  117. COUNT[SUBUNIT{camkii : camkii_subunit, [dimer_partner == camkii_subunit,]}, world.mainbox.b[left]] : "11l",
  118. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit']}, world.mainbox.b[right]] : "00r",
  119. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit,]}, world.mainbox.b[right]] : "01r",
  120. COUNT[SUBUNIT{camkii : camkii_subunit, [dimer_partner == camkii_subunit,]}, world.mainbox.b[right]] : "11r",
  121. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit']}, world.mainbox.b[front]] : "00F",
  122. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit,]}, world.mainbox.b[front]] : "01F",
  123. COUNT[SUBUNIT{camkii : camkii_subunit, [dimer_partner == camkii_subunit,]}, world.mainbox.b[front]] : "11F",
  124. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit']}, world.mainbox.b[back]] : "00B",
  125. COUNT[SUBUNIT{camkii : camkii_subunit' [dimer_partner == camkii_subunit,]}, world.mainbox.b[back]] : "01B",
  126. COUNT[SUBUNIT{camkii : camkii_subunit, [dimer_partner == camkii_subunit,]}, world.mainbox.b[back]] : "11B"
  127. } => "counts.txt"
  128. }