/* This example demonstrates the creation of a release site */ /* that fills an unusual geometry at a specified concentration */ time_step = 1.0e-6 total_time = 1.0e-3 TIME_STEP = time_step ITERATIONS = total_time/time_step EFFECTOR_GRID_DENSITY = 10000 INTERACTION_RADIUS = 0.005 PARTITION_X = [ [-0.15 TO 0.15 STEP 0.03] ] PARTITION_Y = [ [-0.15 TO 0.15 STEP 0.03] ] PARTITION_Z = [ [-0.15 TO 0.15 STEP 0.03] ] DEFINE_MOLECULES { A { D_3D = 100e-8 } B { D_3D = 100e-8 } C { D_3D = 100e-8 } D { D_2D = 0 } } /* Your basic reversable binding reaction */ DEFINE_REACTIONS { A + B -> C [1e7] C -> A + B [1e2] } /* Create geometry with release site in here */ bag OBJECT { small_box BOX { CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1] ASPECT_RATIO = 3 DEFINE_SURFACE_REGIONS { silly { INCLUDE_ELEMENTS = [TOP,LEFT] } solly { INCLUDE_ELEMENTS = [TOP,RIGHT] } } } bad_box BOX { CORNERS = [-0.05,-0.05,-0.2] , [0.05,0.05,0.2] } surf_release RELEASE_SITE { SHAPE=bag.small_box[silly]*bag.small_box[solly] MOLECULE=D NUMBER_TO_RELEASE=150 } vol_release RELEASE_SITE { SHAPE=bag.small_box[ALL]-bag.bad_box[ALL] MOLECULE=A CONCENTRATION=1e-4 } } /* 481.76 molecules/volume = 100uM */ INSTANTIATE my_world OBJECT { my_bag OBJECT bag {} B_release RELEASE_SITE { SHAPE=CUBIC LOCATION=[0,0,0] MOLECULE=B CONCENTRATION=1e-4 SITE_DIAMETER=0.19999 } C_release RELEASE_SITE { SHAPE=CUBIC LOCATION=[0,0,0] MOLECULE=C NUMBER_TO_RELEASE=482 SITE_DIAMETER=0.1999 } } /* This just dumps molecule positions in text as state_value X Y Z orient */ VIZ_DATA_OUTPUT { MODE=ASCII MOLECULE_FILE_PREFIX = "box" STATE_VALUES { A = 1 B = 2 C = 3 D = 4 } ITERATION_LIST = [0e0,1e0,1e1,1e2,1e3] } REACTION_DATA_OUTPUT { STEP = 1e-5 { COUNT [A,WORLD] } => "count_A.dat" { COUNT [B,WORLD] } => "count_B.dat" { COUNT [C,WORLD] } => "count_C.dat" { COUNT [D,WORLD] } => "count_D.dat" }