Difference between revisions of "Example model files for Magrathea"
From irefindex
(28 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | + | ==The Magrathea Manual Contents== | |
+ | |||
+ | [[The Magrathea Manual: Coordinated Agent Modelling Explained]] | ||
+ | |||
+ | [[The Magrathea Manual: Coordinated Agent Modelling By Example]] | ||
+ | |||
+ | [[The Magrathea Manual: Building Coordinated Agent Models]] | ||
+ | |||
+ | [[Magrathea Installation and Use]] | ||
+ | |||
+ | [[Example model files for Magrathea]] | ||
+ | |||
+ | |||
+ | == How to use these example files == | ||
+ | |||
+ | See the section [[Magrathea Installation and Use]] | ||
+ | |||
== Example 1. Point coordinator representing an interaction == | == Example 1. Point coordinator representing an interaction == | ||
Line 327: | Line 343: | ||
#20 member molecules are moved to the surface of the plane and | #20 member molecules are moved to the surface of the plane and | ||
#their random movement is constrained to the surface of this plane | #their random movement is constrained to the surface of this plane | ||
+ | #!although molecules venturing to the edge of the plane are allowed to slip off | ||
# | # | ||
#last tested with breve 2.6.1 and magrathea.tz 1.42 | #last tested with breve 2.6.1 and magrathea.tz 1.42 | ||
Line 389: | Line 406: | ||
#non-membrane molecules (molecule type 2) will collide and be reprelled | #non-membrane molecules (molecule type 2) will collide and be reprelled | ||
#by the surface of this planar coordinator | #by the surface of this planar coordinator | ||
+ | #!some of these molecules may eventually become trapped in the | ||
+ | #surface of the plane | ||
# | # | ||
#last tested with breve 2.6.1 and magrathea.tz 1.44 | #last tested with breve 2.6.1 and magrathea.tz 1.44 | ||
Line 447: | Line 466: | ||
#**************************************************************** | #**************************************************************** | ||
+ | |||
+ | EOF | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | == Example 5. Line coordinator representing a microtubule. == | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | ########### | ||
+ | #microtubule.1.txt | ||
+ | #showing a linear coordinator used to model a microtubule or some | ||
+ | #other linear macromolecular structure | ||
+ | #20 member molecules are moved to the line coordinator and | ||
+ | #their random movement is constrained to this line | ||
+ | #the line coordinator is dynamically sized so it grows in length | ||
+ | #as molecules join it | ||
+ | #the molecules have an effective radius of 2 (versus the rendered 1 unit) | ||
+ | #so the molecules appear spaced out along the line | ||
+ | # | ||
+ | #last tested with breve 2.6.1 and magrathea.tz 1.44 | ||
+ | #at the time of testing, neighbor lines are only drawn if breve 2.5 is used | ||
+ | ########### | ||
+ | |||
+ | |||
+ | [simulation] | ||
+ | camera-at-from 20 10 0 1 1 70 | ||
+ | light-source 0 20 20 | ||
+ | movie-length 40 | ||
+ | [/simulation] | ||
+ | |||
+ | [moleculeType] | ||
+ | id 1 | ||
+ | label line_coordinator_component_1 | ||
+ | show-label 0 | ||
+ | color .81 .60 .21 | ||
+ | shape Sphere 1 2 | ||
+ | show-neighbor-lines 1 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | coordinator 1 2 | ||
+ | instantiate 20 random cylindrical volume 10 15 10 0 1 0 0 35 | ||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 2 | ||
+ | label line_coordinator | ||
+ | color .383 .466 .561 | ||
+ | opacity 1 | ||
+ | shape Cube .2 .2 .2 | ||
+ | geometricType line | ||
+ | neighborhood-size 5 | ||
+ | isCreationDynamic 0 | ||
+ | isMobile 0 | ||
+ | isSizeDynamic 1 | ||
+ | molecule 1 20 | ||
+ | |||
+ | #various orientations to try | ||
+ | #remove the # sign in front of one of these lines | ||
+ | #orientation vertex 1 0 0 pointing-at 0 1 0 | ||
+ | #orientation vertex 1 0 0 pointing-at 1 0 0 | ||
+ | #orientation vertex 1 0 0 pointing-at 0 0 1 | ||
+ | # | ||
+ | #orientation vertex 1 0 0 pointing-at 1 1 0 | ||
+ | #orientation vertex 1 0 0 pointing-at 1 0 1 | ||
+ | #orientation vertex 1 0 0 pointing-at 0 1 1 | ||
+ | #orientation vertex 1 0 0 pointing-at 1 1 1 | ||
+ | instantiate 1 determined point - 30 10 10 | ||
+ | [/coordinatorType] | ||
+ | |||
+ | #**************************************************************** | ||
+ | |||
+ | EOF | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Example 6. Coordinators and rules. == | ||
+ | ===Example 6.1 - simple state change=== | ||
+ | <pre> | ||
+ | ########### | ||
+ | |||
+ | #rules.1.txt | ||
+ | #a simple demonstration of the use of rules by coordinators | ||
+ | #this example shows a substrate (molecule 1) that undergoes | ||
+ | #a state-change (phosphorylation) upon interaction with a | ||
+ | #kinase (molecule 2) | ||
+ | #the substrate changes from yellow to green upon changing state | ||
+ | #and then dissociates from the kinase | ||
+ | # | ||
+ | #last tested with breve 2.6.1 and magrathea.tz 1.44 | ||
+ | #at the time of testing, neighbor lines are only drawn if breve 2.5 is used | ||
+ | ########### | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | [simulation] | ||
+ | produce-visual-output 1 | ||
+ | camera-at-from 10 15 10 100 1 30 | ||
+ | light-source 20 20 20 | ||
+ | movie-length 40 | ||
+ | [/simulation] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | [moleculeType] | ||
+ | id 1 | ||
+ | label substrate | ||
+ | show-label 1 | ||
+ | color .81 .60 .21 | ||
+ | shape Sphere 1 | ||
+ | show-neighbor-lines 1 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | |||
+ | |||
+ | |||
+ | ### | ||
+ | #the following line is read as: | ||
+ | #there is some feature with an identifier of 234 | ||
+ | #and this feature is given the label of "Tyr234" | ||
+ | ### | ||
+ | feature 234 Tyr234 | ||
+ | |||
+ | #----------------------------------------------------------------- | ||
+ | #the following line is read as: | ||
+ | #there is some feature with an identifier of 234 | ||
+ | #and this feature may have the value of 0 | ||
+ | #and this feature-value pair is given the label "unphosphorylated" | ||
+ | #see the "Making Models" section of the Magrathea manual | ||
+ | #for more a more detailed explanation | ||
+ | #----------------------------------------------------------------- | ||
+ | |||
+ | feature-state 234 0 unphosphorylated | ||
+ | |||
+ | |||
+ | |||
+ | #----------------------------------------------------------------- | ||
+ | #the following line is read as: | ||
+ | #there is some feature with an identifier of 234 | ||
+ | #and this feature may have the value of 1 | ||
+ | #and this feature-value pair is given the label "phosphorylated" | ||
+ | #see the "Making Models" section of the Magrathea manual | ||
+ | #for more a more detailed explanation | ||
+ | #----------------------------------------------------------------- | ||
+ | |||
+ | feature-state 234 1 phosphorylated | ||
+ | |||
+ | |||
+ | |||
+ | coordinator 1 3 | ||
+ | instantiate 1 determined point - 10 10 10 | ||
+ | #this works too | ||
+ | #instantiate 1 determined point - 10 10 10 - - - - - 234.0 | ||
+ | #but this does not because of the assembly rule 1 for coordinator 3 | ||
+ | #instantiate 1 determined point - 10 10 10 - - - - - 234.1 | ||
+ | |||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | [moleculeType] | ||
+ | id 2 | ||
+ | label kinase | ||
+ | show-label 1 | ||
+ | color .92 .32 .1 | ||
+ | shape Sphere 1 | ||
+ | show-neighbor-lines 1 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | coordinator 1 3 | ||
+ | instantiate 1 determined point - 10 20 10 | ||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 3 | ||
+ | label complex_with_rules | ||
+ | color 1 1 1 | ||
+ | shape Cube 1 1 1 | ||
+ | neighborhood-size 10 | ||
+ | #----------------------------------------------------------------- | ||
+ | #the following lines state that this coordinator can coordinate | ||
+ | #molecules of type 1 and of type 2 (first position after "molecule") | ||
+ | #with a stoichiometry of 1 for each (second position) and that these molecules | ||
+ | #cannot (0) become part of the coordinator without first | ||
+ | #satisfying some state consitions | ||
+ | #----------------------------------------------------------------- | ||
+ | |||
+ | molecule 1 1 0 | ||
+ | molecule 2 1 0 | ||
+ | |||
+ | [rule] | ||
+ | #----------------------------------------------------------------- | ||
+ | #this following rule describes the complex formation | ||
+ | #the first two "if" lines specify | ||
+ | #which molecules must be present for the rule to be executed | ||
+ | #the "then" line specifies what happens if the rule is executed and | ||
+ | #the "parameters" line specifies a probability that | ||
+ | #the rule will be executed should the conditions be met | ||
+ | #see the "Making Models" section of the Magrathea manual | ||
+ | #for more a more detailed explanation | ||
+ | #----------------------------------------------------------------- | ||
+ | |||
+ | id 1 | ||
+ | |||
+ | #----------------------------------------------------------------- | ||
+ | #the following line is read (from left to right) | ||
+ | #if present a "tag" of 1 will be used to refer to | ||
+ | #molecule of type 1 (where 1 instance is present) | ||
+ | #that is not (0) assembled with this coordinator | ||
+ | #and does not (0) have a feature-state pair of 234.1 | ||
+ | #i.e. feature 234 in state 1 | ||
+ | #see the "Making Models" section of the Magrathea manual | ||
+ | #for more a more detailed explanation | ||
+ | #----------------------------------------------------------------- | ||
+ | |||
+ | if 1.1.1.0.0.234.1 | ||
+ | if 2.2.1.0 | ||
+ | |||
+ | #----------------------------------------------------------------- | ||
+ | #the following line is read | ||
+ | #molecule(s) assigned with tag 1 (see if lines above) | ||
+ | #are allowed to begin asembly with the coordinator | ||
+ | #see the "Making Models" section of the Magrathea manual | ||
+ | #for more a more detailed explanation | ||
+ | #----------------------------------------------------------------- | ||
+ | |||
+ | then 1 begins-assembly | ||
+ | then 2 begins-assembly | ||
+ | |||
+ | #----------------------------------------------------------------- | ||
+ | #the following line indicates that the event | ||
+ | #described by the "then" lines above | ||
+ | #will be executed with a probability of 1 | ||
+ | #if the conditions specified in the "if" | ||
+ | #lines above are met | ||
+ | #see the "Making Models" section of the Magrathea manual | ||
+ | #for more a more detailed explanation | ||
+ | #----------------------------------------------------------------- | ||
+ | |||
+ | parameters p 1 | ||
+ | [/rule] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | [rule] | ||
+ | #----------------------------------------------------------------- | ||
+ | #this rule describes a state change of the substrate (molecule 1) | ||
+ | #generated by the presence of the kinase (molecule 2) | ||
+ | #the state change is visualized by a change of colour of | ||
+ | #the substrate molecule | ||
+ | #see the "Making Models" section of the Magrathea manual | ||
+ | #for more a more detailed explanation | ||
+ | #----------------------------------------------------------------- | ||
+ | |||
+ | id 2 | ||
+ | if 1.1.1.1.0.234.1 | ||
+ | if 2.2.1.1 | ||
+ | |||
+ | #----------------------------------------------------------------- | ||
+ | #the following line is read as: | ||
+ | #the molecule with the tag of 1 (see first "if" line above) | ||
+ | #changes state such that | ||
+ | #feature 234 assumes state 1 | ||
+ | #see the "Making Models" section of the Magrathea manual | ||
+ | #for more a more detailed explanation | ||
+ | #----------------------------------------------------------------- | ||
+ | |||
+ | then 1 changes-state-to 234.1 | ||
+ | then 1 changes-colour-to .1:.32:.11 | ||
+ | parameters p 1 | ||
+ | [/rule] | ||
+ | |||
+ | |||
+ | |||
+ | [rule] | ||
+ | #----------------------------------------------------------------- | ||
+ | #this rule describes the idea that the substrate (molecule 1) | ||
+ | #leaves the coordinator once it has been phosphorylated | ||
+ | #i.e. feature 234 has a state value of 1 | ||
+ | #see the "Making Models" section of the Magrathea manual | ||
+ | #for more a more detailed explanation | ||
+ | #----------------------------------------------------------------- | ||
+ | |||
+ | #unbinding | ||
+ | id 3 | ||
+ | if 1.1.1.1.1.234.1 | ||
+ | if 2.2.1.1 | ||
+ | then 1 leaves-coordinator | ||
+ | then 2 leaves-coordinator | ||
+ | parameters p 1 | ||
+ | [/rule] | ||
+ | |||
+ | [/coordinatorType] | ||
+ | |||
+ | |||
+ | #**************************************************************** | ||
+ | |||
+ | |||
+ | |||
+ | EOF | ||
+ | </pre> | ||
+ | |||
+ | ===Example 6.2 - lateral signalling=== | ||
+ | <pre> | ||
+ | |||
+ | ########### | ||
+ | #rules.2.txt | ||
+ | #This demonstration shows a somewhat more complex use of rules to | ||
+ | #demonstrate the process of lateral signalling. | ||
+ | #In this example, a ligand molecule binds to a membrane-bound receptor. | ||
+ | #On binding, the receptor changes state (becomes activated) as indicated by | ||
+ | #a colour change. The receptor in this new state also gains the ability to | ||
+ | #bind to and activate other membrane bound receptors. | ||
+ | # | ||
+ | #No new concepts are introduced in this model compared to the rules.1.txt | ||
+ | #example so there are few comments in the file. | ||
+ | #See the "Making Models" section of the Magrathea manual for more details | ||
+ | #on the syntax of each line | ||
+ | # | ||
+ | #after a molecule x changes state, molecule x and all molecule types that might be coordinated | ||
+ | #in some coordinator with molecule x have there neighborhood size reset | ||
+ | #turn on #show-neighbor-lines 1# to see how this happens | ||
+ | # | ||
+ | #last tested with breve 2.6.1 and magrathea.tz 1.44 | ||
+ | #at the time of testing, neighbor lines are only drawn if breve 2.5 is used | ||
+ | ########### | ||
+ | |||
+ | |||
+ | [simulation] | ||
+ | camera-at-from 10 15 10 0 10 30 | ||
+ | light-source 0 20 20 | ||
+ | movie-length 20 | ||
+ | [/simulation] | ||
+ | |||
+ | |||
+ | [moleculeType] | ||
+ | id 1 | ||
+ | label receptor | ||
+ | show-label 1 | ||
+ | color .81 .60 .21 | ||
+ | shape Sphere 1 | ||
+ | neighborhood-size 1 | ||
+ | show-neighbor-lines 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | feature 234 Tyr234 | ||
+ | feature-state 2 0 unphosphorylated | ||
+ | feature-state 2 63 phosphorylated | ||
+ | coordinator 1 5 | ||
+ | coordinator 2 4 | ||
+ | coordinator 3 3 | ||
+ | instantiate 20 random planar - 10 15 10 20 0 1 0 | ||
+ | [/moleculeType] | ||
+ | |||
+ | [moleculeType] | ||
+ | id 2 | ||
+ | label ligand | ||
+ | show-label 1 | ||
+ | color .92 .32 .11 | ||
+ | shape Sphere .7 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | coordinator 1 5 | ||
+ | instantiate 1 determined point - 10 20 10 1 | ||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 3 | ||
+ | label membrane | ||
+ | color .383 .466 .561 | ||
+ | opacity 0.3 | ||
+ | geometricType plane | ||
+ | shape Cube 30 .2 30 | ||
+ | neighborhood-size 10 | ||
+ | molecule 1 20 | ||
+ | isCreationDynamic 0 | ||
+ | isMobile 0 | ||
+ | orientation vertex 0 1 0 pointing-at 0 1 0 | ||
+ | instantiate 1 determined point - 10 15 10 | ||
+ | [/coordinatorType] | ||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 4 | ||
+ | label receptor-receptor-complex | ||
+ | color 1 1 1 | ||
+ | shape Cube 1 1 1 | ||
+ | neighborhood-size 10 | ||
+ | molecule 1 2 0 | ||
+ | [rule] | ||
+ | #formation | ||
+ | id 1 | ||
+ | if 1.1.1.0.1.2.63 | ||
+ | if 2.1.1.0.0.2.63 | ||
+ | then 1 begins-assembly | ||
+ | then 2 begins-assembly | ||
+ | parameters p1 1 | ||
+ | [/rule] | ||
+ | [rule] | ||
+ | #lateral activation | ||
+ | id 2 | ||
+ | if 1.1.1.1.1.2.63 | ||
+ | if 2.1.1.1.0.2.63 | ||
+ | then 2 changes-state-to 2.63 | ||
+ | then 2 changes-colour-to .1:.32:.11 | ||
+ | parameters p1 1 | ||
+ | [/rule] | ||
+ | [rule] | ||
+ | #unbinding | ||
+ | id 3 | ||
+ | if 1.1.1.1.1.2.63 | ||
+ | if 2.1.1.1.1.2.63 | ||
+ | then 1 leaves-coordinator | ||
+ | then 2 leaves-coordinator | ||
+ | #parameters p3 0.15 | ||
+ | parameters p1 1 | ||
+ | [/rule] | ||
+ | [/coordinatorType] | ||
+ | |||
+ | [coordinatorType] | ||
+ | id 5 | ||
+ | label receptor-ligand-complex | ||
+ | color 1 1 1 | ||
+ | shape Cube 1 1 1 | ||
+ | neighborhood-size 10 | ||
+ | molecule 1 1 0 | ||
+ | molecule 2 1 0 | ||
+ | [rule] | ||
+ | #formation | ||
+ | id 1 | ||
+ | if 1.1.1.0.0.2.63 | ||
+ | if 2.2.1.0 | ||
+ | then 1 begins-assembly | ||
+ | then 2 begins-assembly | ||
+ | parameters p4 0.2 | ||
+ | [/rule] | ||
+ | [rule] | ||
+ | #ligand activation | ||
+ | id 2 | ||
+ | if 1.1.1.1.0.2.63 | ||
+ | if 2.2.1.1 | ||
+ | then 1 changes-state-to 2.63 | ||
+ | then 1 changes-colour-to .1:.32:.11 | ||
+ | parameters p5 1 | ||
+ | [/rule] | ||
+ | [rule] | ||
+ | #unbinding | ||
+ | #id 3 | ||
+ | if 1.1.1.1.1.2.63 | ||
+ | if 2.2.1.1 | ||
+ | then 1 leaves-coordinator | ||
+ | then 2 leaves-coordinator | ||
+ | parameters p6 0.2 | ||
+ | [/rule] | ||
+ | [/coordinatorType] | ||
+ | |||
+ | |||
+ | #**************************************************************** | ||
+ | |||
+ | EOF | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | ===Example 6.3 - translocation across compartment boundary=== | ||
+ | <pre> | ||
+ | ########### | ||
+ | #rules.3.txt | ||
+ | #This demonstration shows two coordinator and their rules that control translocation | ||
+ | #into and out of a spherical compartment represented by a third coordinator. | ||
+ | # | ||
+ | #In this example, blue molecules (ligand) bind to a surface receptor (black) and are | ||
+ | #translocated INTO the compartment where they change color to yellow. A state change in | ||
+ | #the ligand molecules then allows them to bind a second receptor (grey) that translocates | ||
+ | #them OUT OF the compartment. | ||
+ | # | ||
+ | #See the "Making Models" section of the Magrathea manual for more details | ||
+ | #on the syntax of each line | ||
+ | # | ||
+ | #last tested with breve 2.6.1 and magrathea.tz 1.44 | ||
+ | #at the time of testing, neighbor lines are only drawn if breve 2.5 is used | ||
+ | ########### | ||
+ | |||
+ | |||
+ | [simulation] | ||
+ | camera-at-from 30 20 30 7 6 15 | ||
+ | light-source 50 50 50 | ||
+ | movie-length 40 | ||
+ | [/simulation] | ||
+ | |||
+ | |||
+ | [moleculeType] | ||
+ | id 1 | ||
+ | label compartment_marker | ||
+ | color .81 .60 .21 | ||
+ | #---------------------------------------------------- | ||
+ | #The following line causes comparment markers to be | ||
+ | #drawn as points in order to simplify the | ||
+ | #visualization. | ||
+ | #See the "Making Models" section of the Magrathea | ||
+ | #manual for more details. | ||
+ | #---------------------------------------------------- | ||
+ | draw-as-point 1 | ||
+ | shape Sphere .2 1 | ||
+ | neighborhood-size 5 | ||
+ | coordinator 1 3 | ||
+ | instantiate 30 random spherical surface 30 20 30 3 | ||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | [moleculeType] | ||
+ | id 2 | ||
+ | label pump_in | ||
+ | show-label 1 | ||
+ | color .11 .00 .21 | ||
+ | shape Sphere .2 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | coordinator 1 3 | ||
+ | coordinator 2 7 | ||
+ | instantiate 2 random spherical surface 30 22 30 1 | ||
+ | [/moleculeType] | ||
+ | |||
+ | [moleculeType] | ||
+ | id 5 | ||
+ | label pump_out | ||
+ | show-label 1 | ||
+ | color .51 .50 .51 | ||
+ | shape Sphere .2 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | coordinator 1 3 | ||
+ | coordinator 2 8 | ||
+ | instantiate 2 random spherical surface 30 20 32 1 | ||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | [moleculeType] | ||
+ | id 4 | ||
+ | label ligand | ||
+ | color .12 .12 .91 | ||
+ | show-neighbor-lines 0 | ||
+ | shape Sphere .2 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | resident-compartment-type 0 | ||
+ | coordinator 1 7 | ||
+ | coordinator 1 8 | ||
+ | instantiate 6 random spherical volume 30 24 30 1 | ||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 3 | ||
+ | label compartment | ||
+ | color .92 .32 .11 | ||
+ | #---------------------------------------------------- | ||
+ | #The following line can be changed to | ||
+ | #opacity 0.2 | ||
+ | #in order to visualize molecules inside the | ||
+ | #compartment. | ||
+ | #See the "Making Models" section of the Magrathea | ||
+ | #manual for more details. | ||
+ | #---------------------------------------------------- | ||
+ | opacity 1 | ||
+ | shape Sphere 0.1 | ||
+ | isCompartment 1 | ||
+ | neighborhood-size 20 | ||
+ | isCreationDynamic 1 | ||
+ | isMobile 0 | ||
+ | isSizeDynamic 1 | ||
+ | molecule 1 30 | ||
+ | molecule 2 2 | ||
+ | molecule 5 2 | ||
+ | instantiate 1 determined point - 30 20 30 | ||
+ | [/coordinatorType] | ||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 7 | ||
+ | label pump_in_complex | ||
+ | shape Cube .2 .2 .2 | ||
+ | molecule 4 1 0 | ||
+ | molecule 2 1 0 | ||
+ | |||
+ | [rule] | ||
+ | id 1 | ||
+ | #----------------------------------------------------------------- | ||
+ | #load pump | ||
+ | #ligand will enter the compartment if it has not been there before | ||
+ | #The following line is read as: | ||
+ | #If present, a tag of 34 is assigned to molecule type 4 (ligand) | ||
+ | #(1 instance) that is not assembled with the this pump_in coordinator (0) | ||
+ | #and it is not a resident of the compartment coordinator (0.99999.3) | ||
+ | #and it does not have feature 2 in state 65 (0.2.65). | ||
+ | #The next line is read as: | ||
+ | #If present, a tag of 35 is assigned to molecule type 2 (pump_in) | ||
+ | #(1 instance) if it is not assembled with this pump_in coordinator (0) | ||
+ | #and if it is assembled as a component of the compartment (1.99999.3). | ||
+ | #See the "Making Models" section of the Magrathea manual for more | ||
+ | #details on the syntax of these rule lines. | ||
+ | #----------------------------------------------------------------- | ||
+ | if 34.4.1.0.0.99999.3.0.2.65 | ||
+ | if 35.2.1.0.1.99999.3 | ||
+ | then 34 begins-assembly | ||
+ | then 35 begins-assembly | ||
+ | parameters p 1.0 | ||
+ | [/rule] | ||
+ | |||
+ | [rule] | ||
+ | id 2 | ||
+ | #----------------------------------------------------------------- | ||
+ | #translocation | ||
+ | #This rule handles the translocation of the ligand molecule | ||
+ | #once it has assembled with the pump_in molecule. | ||
+ | # | ||
+ | #A feature-state of the ligand is changed to indicate that the | ||
+ | #ligand molecule has entered the comparment using the line | ||
+ | #"then 34 changes-state-to 2.65". | ||
+ | #This state-change prevents the ligand from | ||
+ | #re-entering the compartment after it has been pumped out | ||
+ | #(see the pump_out_complex coordinator and rule 1 of this | ||
+ | #coordinator. | ||
+ | # | ||
+ | #Upon translocation, the ligand has its feature 99999 set to 3 | ||
+ | #(the id of the compartment coordinator) by the line | ||
+ | #"then 34 translocates-into-compartment-of-molecule 35". | ||
+ | #This feature-state change then allows the ligand molecule | ||
+ | #to assemble with the pump_out molecule as specified by the | ||
+ | #condition line "if 34.4.1.0.1.99999.3" | ||
+ | #in rule 1 of the pump_out_comlex coordinator below. | ||
+ | #See the "Making Models" section of the Magrathea manual for more | ||
+ | #details on the syntax of these rule lines. | ||
+ | #----------------------------------------------------------------- | ||
+ | if 34.4.1.1.0.99999.3 | ||
+ | if 35.2.1.1.1.99999.3 | ||
+ | then 34 changes-state-to 2.65 | ||
+ | then 34 changes-colour-to 1:1:0 | ||
+ | then 34 translocates-into-compartment-of-molecule 35 | ||
+ | then 34 leaves-coordinator | ||
+ | parameters p 1.0 | ||
+ | [/rule] | ||
+ | [/coordinatorType] | ||
+ | |||
+ | [coordinatorType] | ||
+ | id 8 | ||
+ | #----------------------------------------------------------------- | ||
+ | #Rules encoded by this coordinator handle assembly with the pump_out | ||
+ | #molecule and the translocation out of the compartment represented by | ||
+ | #coordinator 3 | ||
+ | #The rules are similar to those in coordinator 7 but effect the | ||
+ | #reverse process. | ||
+ | #See the "Making Models" section of the Magrathea manual for more | ||
+ | #details on the syntax of these rule lines. | ||
+ | #----------------------------------------------------------------- | ||
+ | label pump_out_complex | ||
+ | shape Cube .2 .2 .2 | ||
+ | molecule 4 1 0 | ||
+ | molecule 5 1 0 | ||
+ | [rule] | ||
+ | #load pump | ||
+ | id 1 | ||
+ | if 34.4.1.0.1.99999.3 | ||
+ | if 35.5.1.0.1.99999.3 | ||
+ | then 34 begins-assembly | ||
+ | then 35 begins-assembly | ||
+ | parameters p 1.0 | ||
+ | [/rule] | ||
+ | [rule] | ||
+ | #translocation | ||
+ | id 2 | ||
+ | if 34.4.1.1.1.99999.3 | ||
+ | if 35.5.1.1.1.99999.3 | ||
+ | then 34 translocates-outof-compartment-of-molecule 35 | ||
+ | then 34 leaves-coordinator | ||
+ | parameters p 1.0 | ||
+ | [/rule] | ||
+ | [/coordinatorType] | ||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 10 | ||
+ | #----------------------------------------------------------------- | ||
+ | #This coordinator shows an example of using plane coordinators | ||
+ | #in different orientations that act as bounding walls for the | ||
+ | #simulation. | ||
+ | #See the "Making Models" section of the Magrathea manual for more | ||
+ | #details on the syntax of these rule lines. | ||
+ | #----------------------------------------------------------------- | ||
+ | label simulation-container | ||
+ | color .383 .466 .561 | ||
+ | opacity 0.1 | ||
+ | geometricType plane | ||
+ | shape Cube 100 .2 100 | ||
+ | neighborhood-size 10 | ||
+ | isCreationDynamic 0 | ||
+ | isMobile 0 | ||
+ | #west wall | ||
+ | orientation vertex 0 1 0 pointing-at 1 0 0 | ||
+ | instantiate 1 determined point - 0 50 50 | ||
+ | #east wall | ||
+ | orientation vertex 0 1 0 pointing-at -1 0 0 | ||
+ | instantiate 1 determined point - 100 50 50 | ||
+ | #north wall | ||
+ | orientation vertex 0 1 0 pointing-at 0 0 1 | ||
+ | instantiate 1 determined point - 50 50 0 | ||
+ | #south wall | ||
+ | orientation vertex 0 1 0 pointing-at 0 0 -1 | ||
+ | instantiate 1 determined point - 50 50 100 | ||
+ | #sky wall | ||
+ | #ground wall | ||
+ | [/coordinatorType] | ||
+ | |||
+ | |||
+ | EOF | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | ===Example 6.4 - translocation across a planar compartment boundary=== | ||
+ | <pre> | ||
+ | ########### | ||
+ | #rules.4.txt | ||
+ | # | ||
+ | #translocation demonstration | ||
+ | #In this example, a blue particle (ligand) binds to a surface receptor and is translocated past the | ||
+ | #membrane (mediated by the black receptor) where it changes color to yellow. | ||
+ | #Once on the other side of the membrane, the particle may then bind a second | ||
+ | #receptor (grey) that translocates it back to the top of the membrane | ||
+ | #Use of the two different receptors for translocation "in and out" is controlled by | ||
+ | #a feature-state pair. | ||
+ | #Planar coordinators are not compartments in the sense that molecules can move in and out of them. | ||
+ | #Instead, they represent barriers within a compartment (in this case the simulation) | ||
+ | #that molecules can move past with the help of a mediator molecule (the black and grey receptors). | ||
+ | # | ||
+ | #See the "Making Models" section of the Magrathea manual for more details | ||
+ | #on the syntax of each line | ||
+ | # | ||
+ | #last tested with breve 2.6.1 and magrathea.tz 1.44 | ||
+ | #at the time of testing, neighbor lines are only drawn if breve 2.5 is used | ||
+ | ########### | ||
+ | |||
+ | |||
+ | [simulation] | ||
+ | |||
+ | camera-at-from 30 20 30 2 13 15 | ||
+ | |||
+ | |||
+ | light-source 50 50 50 | ||
+ | movie-length 40 | ||
+ | [/simulation] | ||
+ | |||
+ | |||
+ | [moleculeType] | ||
+ | id 1 | ||
+ | label compartment_marker | ||
+ | color .81 .60 .21 | ||
+ | draw-as-point 1 | ||
+ | shape Sphere .2 1 | ||
+ | neighborhood-size 5 | ||
+ | coordinator 1 3 | ||
+ | instantiate 30 random spherical surface 30 21 30 1 | ||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | [moleculeType] | ||
+ | id 2 | ||
+ | label pump_in | ||
+ | color .11 .00 .21 | ||
+ | shape Sphere .2 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | coordinator 1 3 | ||
+ | coordinator 2 7 | ||
+ | instantiate 1 random spherical surface 30 21 30 1 | ||
+ | [/moleculeType] | ||
+ | |||
+ | [moleculeType] | ||
+ | id 5 | ||
+ | label pump_out | ||
+ | color .51 .50 .51 | ||
+ | shape Sphere .2 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | coordinator 1 3 | ||
+ | coordinator 2 8 | ||
+ | instantiate 1 random spherical surface 30 20 30 1 | ||
+ | [/moleculeType] | ||
+ | |||
+ | [moleculeType] | ||
+ | id 4 | ||
+ | label ligand | ||
+ | color .12 .12 .91 | ||
+ | show-neighbor-lines 0 | ||
+ | shape Sphere .2 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | resident-compartment-type 0 | ||
+ | coordinator 1 7 | ||
+ | coordinator 1 8 | ||
+ | instantiate 6 random spherical volume 33 25 30 5 | ||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 3 | ||
+ | label membrane_section | ||
+ | color .92 .32 .11 | ||
+ | opacity 0.2 | ||
+ | geometricType plane | ||
+ | shape Cube 99 .02 100 | ||
+ | isCompartment 1 | ||
+ | neighborhood-size 20 | ||
+ | isCreationDynamic 0 | ||
+ | isMobile 0 | ||
+ | isSizeDynamic 0 | ||
+ | molecule 1 30 | ||
+ | molecule 2 2 | ||
+ | molecule 5 2 | ||
+ | orientation vertex 0 1 0 pointing-at 1 0 0 | ||
+ | instantiate 1 determined point - 30 20 30 | ||
+ | [/coordinatorType] | ||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 7 | ||
+ | label pump_in_complex | ||
+ | shape Cube .2 .2 .2 | ||
+ | molecule 4 1 0 | ||
+ | molecule 2 1 0 | ||
+ | |||
+ | [rule] | ||
+ | id 1 | ||
+ | #----------------------------------------------------------------- | ||
+ | #load pump | ||
+ | #ligand will enter the compartment if it has not been there before | ||
+ | #note that we only test for the compartment of the receptor the | ||
+ | #ligand will never become a part of this "compartment" since a | ||
+ | #planar coordinator does not define a compartment | ||
+ | #but a barrier within a compartment that can be traversed | ||
+ | #----------------------------------------------------------------- | ||
+ | if 34.4.1.0.0.2.65 | ||
+ | if 35.2.1.0.1.99999.3 | ||
+ | then 34 begins-assembly | ||
+ | then 35 begins-assembly | ||
+ | parameters p 1.0 | ||
+ | [/rule] | ||
+ | |||
+ | [rule] | ||
+ | id 2 | ||
+ | #----------------------------------------------------------------- | ||
+ | #translocation | ||
+ | #change a feature state of the ligand so we know it has entered | ||
+ | #the comparment | ||
+ | #----------------------------------------------------------------- | ||
+ | if 34.4.1.1 | ||
+ | if 35.2.1.1.1.99999.3 | ||
+ | then 34 changes-state-to 2.65 | ||
+ | then 34 changes-colour-to 1:1:0 | ||
+ | then 34 translocates-past-molecule 35 | ||
+ | then 34 leaves-coordinator | ||
+ | parameters p 1.0 | ||
+ | [/rule] | ||
+ | [/coordinatorType] | ||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 8 | ||
+ | label pump_out_complex | ||
+ | shape Cube .2 .2 .2 | ||
+ | molecule 4 1 0 | ||
+ | molecule 5 1 0 | ||
+ | [rule] | ||
+ | #load pump | ||
+ | id 1 | ||
+ | if 34.4.1.0.1.2.65 | ||
+ | if 35.5.1.0.1.99999.3 | ||
+ | then 34 begins-assembly | ||
+ | then 35 begins-assembly | ||
+ | parameters p1 0.15 | ||
+ | [/rule] | ||
+ | [rule] | ||
+ | #translocation | ||
+ | id 2 | ||
+ | if 34.4.1.1 | ||
+ | if 35.5.1.1.1.99999.3 | ||
+ | then 34 changes-state-to 2.0 | ||
+ | then 34 translocates-past-molecule 35 | ||
+ | then 34 changes-colour-to .12:.12:.91 | ||
+ | then 34 leaves-coordinator | ||
+ | parameters p1 0.15 | ||
+ | [/rule] | ||
+ | [/coordinatorType] | ||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 10 | ||
+ | label simulation-container | ||
+ | color .383 .466 .561 | ||
+ | opacity 0.1 | ||
+ | geometricType plane | ||
+ | shape Cube 100 .2 100 | ||
+ | neighborhood-size 10 | ||
+ | isCreationDynamic 0 | ||
+ | isMobile 0 | ||
+ | #west wall | ||
+ | orientation vertex 0 1 0 pointing-at 1 0 0 | ||
+ | instantiate 1 determined point - 0 50 50 | ||
+ | #east wall | ||
+ | orientation vertex 0 1 0 pointing-at -1 0 0 | ||
+ | instantiate 1 determined point - 100 50 50 | ||
+ | #north wall | ||
+ | orientation vertex 0 1 0 pointing-at 0 0 1 | ||
+ | instantiate 1 determined point - 50 50 0 | ||
+ | #south wall | ||
+ | orientation vertex 0 1 0 pointing-at 0 0 -1 | ||
+ | instantiate 1 determined point - 50 50 100 | ||
+ | #sky wall | ||
+ | #ground wall | ||
+ | [/coordinatorType] | ||
+ | |||
+ | |||
+ | EOF | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | ===Example 6.5 - simple molecule rules=== | ||
+ | <pre> | ||
+ | ########### | ||
+ | #rules.5.txt | ||
+ | # | ||
+ | #Specifying molecule rules | ||
+ | #This very simple example demonstrates the syntax for specifying rules | ||
+ | #for molecules. The syntax is slightly different from that of rules for | ||
+ | #coordinators in that if lines do not begin with a tag id; instead they | ||
+ | #begin with an identifier for the molecule type that they apply to. | ||
+ | # | ||
+ | #In this example, a molecule may be created or destroyed at each time-step | ||
+ | #of the simulation with some probability. | ||
+ | # | ||
+ | #See the "Making Models" section of the Magrathea manual for more details | ||
+ | #on the syntax of each line | ||
+ | # | ||
+ | #last tested with breve 2.6.1 and magrathea.tz 1.44 | ||
+ | #at the time of testing, neighbor lines are only drawn if breve 2.5 is used | ||
+ | ########### | ||
+ | |||
+ | |||
+ | [simulation] | ||
+ | |||
+ | #camera-at-from 30 20 30 14 13 30 | ||
+ | camera-at-from 30 20 30 7 6 15 | ||
+ | |||
+ | light-source 0 20 20 | ||
+ | movie-length 40 | ||
+ | [/simulation] | ||
+ | |||
+ | [moleculeType] | ||
+ | id 1 | ||
+ | label inputSignal | ||
+ | color 1 0 0 | ||
+ | shape Sphere 1 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | [rule] | ||
+ | # signal creation | ||
+ | id 1 | ||
+ | if 1 | ||
+ | competitive-with 2 | ||
+ | then 1 is-created-at-location-of 1 | ||
+ | #parameters p1 0.00005 | ||
+ | parameters p1 0.005 | ||
+ | [/rule] | ||
+ | [rule] | ||
+ | # signal destruction | ||
+ | id 2 | ||
+ | if 1 | ||
+ | competitive-with 1 | ||
+ | then 1 is-destroyed | ||
+ | parameters p2 0.009 | ||
+ | [/rule] | ||
+ | instantiate 4 random spherical volume 10 15 10 10 | ||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | |||
+ | EOF | ||
+ | |||
+ | |||
+ | </pre> | ||
+ | |||
+ | ===Example 6.6 - more molecular rules=== | ||
+ | <pre> | ||
+ | ########### | ||
+ | #rules.6.txt | ||
+ | # | ||
+ | #Specifying molecule rules | ||
+ | #This example builds on rules.5.txt | ||
+ | #In this example, a molecule may be created or destroyed at each time-step | ||
+ | #of the simulation with some probability, but, before doing so, the molecule | ||
+ | #must be in some pre-creation or pre-destruction state. | ||
+ | # | ||
+ | #See the "Making Models" section of the Magrathea manual for more details | ||
+ | #on the syntax of each line | ||
+ | # | ||
+ | #last tested with breve 2.6.1 and magrathea.tz 1.44 | ||
+ | #at the time of testing, neighbor lines are only drawn if breve 2.5 is used | ||
+ | ########### | ||
+ | |||
+ | |||
+ | [simulation] | ||
+ | |||
+ | #camera-at-from 30 20 30 14 13 30 | ||
+ | camera-at-from 30 20 30 7 6 15 | ||
+ | |||
+ | light-source 0 20 20 | ||
+ | movie-length 40 | ||
+ | [/simulation] | ||
+ | |||
+ | [moleculeType] | ||
+ | id 1 | ||
+ | label inputSignal | ||
+ | color 1 0 0 | ||
+ | shape Sphere 1 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | |||
+ | [rule] | ||
+ | #state change to pre-creation | ||
+ | id 1 | ||
+ | if 1.1.0 | ||
+ | competitive-with 4 | ||
+ | then 1 changes-state-to 1.1 | ||
+ | then 1 changes-colour-to .1:.32:.11 | ||
+ | parameters p1 0.005 | ||
+ | [/rule] | ||
+ | |||
+ | [rule] | ||
+ | #state change to pre-destruction | ||
+ | id 2 | ||
+ | if 1.1.1 | ||
+ | competitive-with 3 | ||
+ | then 1 changes-state-to 1.0 | ||
+ | then 1 changes-colour-to .1:.32:.11 | ||
+ | parameters p1 0.005 | ||
+ | [/rule] | ||
+ | |||
+ | [rule] | ||
+ | #creation | ||
+ | id 3 | ||
+ | if 1.1.1 | ||
+ | competitive-with 2 | ||
+ | then 1 is-created-at-location-of 1 | ||
+ | parameters p1 0.005 | ||
+ | [/rule] | ||
+ | |||
+ | [rule] | ||
+ | #destruction | ||
+ | id 4 | ||
+ | if 1.1.0 | ||
+ | competitive-with 1 | ||
+ | then 1 is-destroyed | ||
+ | parameters p2 0.009 | ||
+ | [/rule] | ||
+ | instantiate 6 random spherical volume 10 15 10 10 | ||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | EOF | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | ===Example 6.7 - rules for a crude motor=== | ||
+ | <pre> | ||
+ | ########### | ||
+ | #rules.7.txt | ||
+ | #showing a linear coordinator and two point coordinators | ||
+ | #to model a crude motor that moves cargo from one end of the | ||
+ | #'microtubule' to the other | ||
+ | #somewhat embarrassing but makes the point of rule use | ||
+ | ########### | ||
+ | |||
+ | |||
+ | [simulation] | ||
+ | camera-at-from 20 10 0 1 1 70 | ||
+ | light-source 0 20 20 | ||
+ | movie-length 80 | ||
+ | [/simulation] | ||
+ | |||
+ | [moleculeType] | ||
+ | id 1 | ||
+ | label line_coordinator_component_1 | ||
+ | show-label 0 | ||
+ | color .81 .60 .21 | ||
+ | shape Sphere 1 | ||
+ | draw-as-point 0 | ||
+ | show-neighbor-lines 1 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | feature 67 bindable-by-microtubule | ||
+ | feature-state 67 1 bindable-yes | ||
+ | feature-state 67 0 bindable-no | ||
+ | coordinator 1 4 | ||
+ | coordinator 2 6 | ||
+ | #instantiate 40 random cylindrical volume 10 15 10 0 1 0 0 105 67.1 | ||
+ | instantiate 1 determined point - 10 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 12 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 14 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 16 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 18 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 20 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 22 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 24 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 26 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 28 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 30 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 32 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 34 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 36 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 38 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 40 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 42 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 44 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 46 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 48 15 10 - - - - - 67.1 | ||
+ | instantiate 1 determined point - 50 15 10 - - - - - 67.1 | ||
+ | |||
+ | |||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | [moleculeType] | ||
+ | id 2 | ||
+ | label motor_component | ||
+ | show-label 0 | ||
+ | color .81 .80 .21 | ||
+ | shape Sphere 1 | ||
+ | show-neighbor-lines 1 | ||
+ | neighborhood-size 1 | ||
+ | dynamic-neighborhood-sizing 1 | ||
+ | coordinator 1 5 | ||
+ | coordinator 2 6 | ||
+ | instantiate 1 determined point - 1 17 10 - - - - - 1.0 | ||
+ | instantiate 1 determined point - 1 17 10 - - - - - 1.1 | ||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 4 | ||
+ | label line_coordinator | ||
+ | color .383 .466 .561 | ||
+ | opacity 1 | ||
+ | shape Cube .2 .2 .2 | ||
+ | geometricType line | ||
+ | neighborhood-size 5 | ||
+ | isCreationDynamic 0 | ||
+ | isMobile 0 | ||
+ | isSizeDynamic 1 | ||
+ | molecule 1 40 | ||
+ | orientation vertex 1 0 0 pointing-at 1 0 0 | ||
+ | instantiate 1 determined point - 30 15 10 | ||
+ | [/coordinatorType] | ||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 5 | ||
+ | label motor_coordinator | ||
+ | color .383 .466 .561 | ||
+ | opacity 1 | ||
+ | shape Cube 1 1 1 | ||
+ | geometricType point | ||
+ | neighborhood-size 5 | ||
+ | isCreationDynamic 1 | ||
+ | isMobile 1 | ||
+ | isSizeDynamic 0 | ||
+ | molecule 2 2 | ||
+ | instantiate 0 determined point - 30 15 10 | ||
+ | [rule] | ||
+ | id 1 | ||
+ | if 34.2.1.1.1.1.1 | ||
+ | then 34 changes-colour-to 1:0:0 | ||
+ | parameters p 1.0 | ||
+ | [/rule] | ||
+ | |||
+ | [rule] | ||
+ | #switch binding activated | ||
+ | id 3 | ||
+ | if 34.2.1.1.1.1.2 | ||
+ | if 35.2.1.1.1.1.0 | ||
+ | then 34 changes-state-to 1.3 | ||
+ | then 34 changes-colour-to .81:.80:.21 | ||
+ | then 35 changes-state-to 1.1 | ||
+ | then 35 changes-colour-to 1:0:0 | ||
+ | parameters p 1.0 | ||
+ | [/rule] | ||
+ | |||
+ | [rule] | ||
+ | #switch binding activated | ||
+ | id 4 | ||
+ | if 34.2.1.1.1.1.2 | ||
+ | if 35.2.1.1.1.1.3 | ||
+ | then 34 changes-state-to 1.3 | ||
+ | then 34 changes-colour-to .81:.80:.21 | ||
+ | then 35 changes-state-to 1.4 | ||
+ | parameters p 1.0 | ||
+ | [/rule] | ||
+ | [/coordinatorType] | ||
+ | |||
+ | [coordinatorType] | ||
+ | id 6 | ||
+ | label motor_tubule | ||
+ | color .483 .566 .461 | ||
+ | opacity 1 | ||
+ | shape Cube 1 1 1 | ||
+ | geometricType point | ||
+ | neighborhood-size 1 | ||
+ | isCreationDynamic 1 | ||
+ | isMobile 1 | ||
+ | isSizeDynamic 0 | ||
+ | molecule 1 1 0 | ||
+ | molecule 2 1 0 | ||
+ | |||
+ | [rule] | ||
+ | id 1 | ||
+ | #begin assembly with motor | ||
+ | if 34.2.1.0.1.1.1 | ||
+ | if 35.1.1.0.1.67.1 | ||
+ | then 34 begins-assembly | ||
+ | then 35 begins-assembly | ||
+ | parameters p 1.0 | ||
+ | [/rule] | ||
+ | |||
+ | [rule] | ||
+ | id 2 | ||
+ | #signal | ||
+ | if 34.2.1.1.1.1.1 | ||
+ | if 35.1.1.1.1.67.1 | ||
+ | then 34 changes-state-to 1.2 | ||
+ | then 35 changes-state-to 67.2 | ||
+ | then 35 changes-colour-to 1:1:1 | ||
+ | parameters p 1.0 | ||
+ | [/rule] | ||
+ | |||
+ | [rule] | ||
+ | id 3 | ||
+ | #leave | ||
+ | if 34.2.1.1.1.1.4 | ||
+ | if 35.1.1.1.1.67.2 | ||
+ | then 34 changes-state-to 1.1 | ||
+ | then 34 leaves-coordinator | ||
+ | then 35 leaves-coordinator | ||
+ | parameters p 1.0 | ||
+ | [/rule] | ||
+ | |||
+ | instantiate 0 determined point - 30 15 10 | ||
+ | [/coordinatorType] | ||
+ | |||
+ | #**************************************************************** | ||
+ | |||
+ | EOF | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | ===Example 6.8 - timed rules=== | ||
+ | <pre> | ||
+ | |||
+ | ####################### | ||
+ | #timed rules - simple example | ||
+ | * | ||
+ | ####################### | ||
+ | |||
+ | [simulation] | ||
+ | produce-visual-output 1 | ||
+ | camera-at-from 15 15 15 20 5 -2 | ||
+ | movie-length 0 | ||
+ | simulation-length 0 | ||
+ | time-step 0.01 | ||
+ | move-realistically 0 | ||
+ | [/simulation] | ||
+ | |||
+ | [moleculeType] | ||
+ | id 1 | ||
+ | label X | ||
+ | #yellow | ||
+ | color .81 .60 .21 | ||
+ | shape Sphere .1 | ||
+ | neighborhood-size .170428 | ||
+ | dynamic-neighborhood-sizing 0 | ||
+ | isMobile 1 | ||
+ | resident-compartment-type 11 | ||
+ | diffusion 5 | ||
+ | instantiate 1 random spherical volume 15 15 15 2.8 S | ||
+ | [/moleculeType] | ||
+ | |||
+ | |||
+ | [coordinatorType] | ||
+ | id 10 | ||
+ | label U | ||
+ | color .383 .466 .561 | ||
+ | opacity .9 | ||
+ | geometricType point | ||
+ | shape Cube .5 .5 .5 | ||
+ | neighborhood-size 10 | ||
+ | isCreationDynamic 0 | ||
+ | isMobile 0 | ||
+ | [rule] | ||
+ | id 1 | ||
+ | time 1.000000 | ||
+ | then 1.5 is-instantiated spherical surface - - - 1.0 - - - - 1.1 - | ||
+ | parameters p 1.0 | ||
+ | [/rule] | ||
+ | [rule] | ||
+ | id 2 | ||
+ | time 2.000000 | ||
+ | then 1.5 is-instantiated spherical surface - - - 1.0 - - - - 1.1 - | ||
+ | [/rule] | ||
+ | instantiate 1 determined point - 15 15 15 | ||
+ | [/coordinatorType] | ||
+ | |||
+ | [coordinatorType] | ||
+ | id 11 | ||
+ | label simulation-container | ||
+ | color .383 .466 .561 | ||
+ | opacity 0.1 | ||
+ | geometricType point | ||
+ | shape Sphere 2.88 | ||
+ | neighborhood-size 15 | ||
+ | isCompartment 1 | ||
+ | isSizeDynamic 1 | ||
+ | isCreationDynamic 0 | ||
+ | isMobile 0 | ||
+ | instantiate 1 determined point - 15 15 15 | ||
+ | [/coordinatorType] | ||
+ | |||
+ | [count] | ||
+ | counter-type type | ||
+ | molecule-to-count 1 | ||
+ | [/count] | ||
EOF | EOF | ||
</pre> | </pre> |
Latest revision as of 09:33, 1 April 2010
Contents
- 1 The Magrathea Manual Contents
- 2 How to use these example files
- 3 Example 1. Point coordinator representing an interaction
- 4 Example 2. Point coordinator representing a complex
- 5 Example 3. Point coordinator representing a compartment
- 6 Example 4. Plane coordinator representing a membrane section.
- 7 Example 5. Line coordinator representing a microtubule.
- 8 Example 6. Coordinators and rules.
- 8.1 Example 6.1 - simple state change
- 8.2 Example 6.2 - lateral signalling
- 8.3 Example 6.3 - translocation across compartment boundary
- 8.4 Example 6.4 - translocation across a planar compartment boundary
- 8.5 Example 6.5 - simple molecule rules
- 8.6 Example 6.6 - more molecular rules
- 8.7 Example 6.7 - rules for a crude motor
- 8.8 Example 6.8 - timed rules
The Magrathea Manual Contents
The Magrathea Manual: Coordinated Agent Modelling Explained
The Magrathea Manual: Coordinated Agent Modelling By Example
The Magrathea Manual: Building Coordinated Agent Models
Magrathea Installation and Use
Example model files for Magrathea
How to use these example files
See the section Magrathea Installation and Use
Example 1. Point coordinator representing an interaction
########### #interaction.1.txt #showing a coordinator used to model an interaction between two molecules # #last tested with breve 2.6.1 and magrathea.tz 1.40 ########### [simulation] camera-at-from 10 10 0 0 1 30 light-source 0 20 20 movie-length 10 [/simulation] [moleculeType] id 1 label a show-label 1 color .81 .60 .21 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1.0 dynamic-neighborhood-sizing 1 coordinator 1 3 instantiate 1 random spherical volume 10 10 0 1 [/moleculeType] [moleculeType] id 2 label b show-label 1 color 0.67 0.08 0.37 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1.0 dynamic-neighborhood-sizing 1 coordinator 1 3 instantiate 1 random spherical volume 15 10 10 1 [/moleculeType] [coordinatorType] id 3 label complex shape Cube 1 1 1 neighborhood-size 1 molecule 1 1 molecule 2 1 [/coordinatorType] #**************************************************************** EOF
Example 2. Point coordinator representing a complex
########### #complex.1.txt #showing a coordinator used to model a complex between three molecules #complex stoichiometry is a,b,c (note one extra c molecule is left out) #last tested with breve 2.6.1 and magrathea.tz 1.42 ########### [simulation] camera-at-from 10 10 0 0 1 30 light-source 0 20 20 movie-length 10 [/simulation] [moleculeType] id 1 label a show-label 1 color .81 .60 .21 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1.0 dynamic-neighborhood-sizing 1 coordinator 1 4 instantiate 1 random spherical volume 10 10 0 1 [/moleculeType] [moleculeType] id 2 label b show-label 1 color 0.67 0.08 0.37 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1.0 dynamic-neighborhood-sizing 1 coordinator 1 4 instantiate 1 random spherical volume 15 10 10 1 [/moleculeType] [moleculeType] id 3 label c show-label 1 color 0.47 0.11 0.37 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1.0 dynamic-neighborhood-sizing 1 coordinator 1 4 instantiate 2 random spherical volume 5 10 10 1 [/moleculeType] [coordinatorType] id 4 label complex shape Cube 1 1 1 neighborhood-size 1 molecule 1 1 molecule 2 1 molecule 3 1 [/coordinatorType] #**************************************************************** EOF
########### #complex.2.txt #showing a coordinator used to model a complex between four molecules #stoichiometry of complex is a,b,2c #last tested with breve 2.6.1 and magrathea.tz 1.42 ########### [simulation] camera-at-from 10 10 0 0 1 30 light-source 0 20 20 movie-length 10 [/simulation] [moleculeType] id 1 label a show-label 1 color .81 .60 .21 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1.0 dynamic-neighborhood-sizing 1 coordinator 1 4 instantiate 1 random spherical volume 10 10 0 1 [/moleculeType] [moleculeType] id 2 label b show-label 1 color 0.67 0.08 0.37 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1.0 dynamic-neighborhood-sizing 1 coordinator 1 4 instantiate 1 random spherical volume 15 10 10 1 [/moleculeType] [moleculeType] id 3 label c show-label 1 color 0.47 0.11 0.37 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1.0 dynamic-neighborhood-sizing 1 coordinator 1 4 instantiate 2 random spherical volume 5 10 10 1 [/moleculeType] [coordinatorType] id 4 label complex shape Cube 1 1 1 neighborhood-size 1 molecule 1 1 molecule 2 1 molecule 3 2 [/coordinatorType] #**************************************************************** EOF
Example 3. Point coordinator representing a compartment
########### #compartment.1.txt #showing a coordinator used to model a compartment with 20 #closely packed "surface" molecules #one coordinator type is used with one molecule type # #last tested with breve 2.6.1 and magrathea.tz 1.42 #at the time of testing, neighbor lines are only drawn if breve 2.5 is used ########### [simulation] camera-at-from 10 10 0 0 1 30 light-source 0 20 20 movie-length 10 [/simulation] [moleculeType] id 1 label a show-label 0 color .81 .60 .21 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1.0 dynamic-neighborhood-sizing 1 coordinator 1 2 instantiate 20 random spherical volume 10 10 0 1 [/moleculeType] [coordinatorType] id 2 label compartment shape Sphere 0.1 opacity 0.5 geometricType point neighborhood-size 5 # isSizeDynamic 1 # molecule 1 20 [/coordinatorType] #**************************************************************** EOF
########### #compartment.2.txt #showing a coordinator used to model a compartment with 20 #surface marker molecules #the actual diameter of these marker molecules is larger than what is #rendered using the line #shape Sphere 1 2 #one coordinator type is used with one molecule type #last tested with breve 2.6.1 and magrathea.tz 1.42 #at the time of testing, neighbor lines are only drawn if breve 2.5 is used ########### [simulation] camera-at-from 10 10 0 0 1 30 light-source 0 20 20 movie-length 10 [/simulation] [moleculeType] id 1 label a show-label 0 color .81 .60 .21 # shape Sphere 1 2 # show-neighbor-lines 1 neighborhood-size 1.0 dynamic-neighborhood-sizing 1 coordinator 1 2 instantiate 20 random spherical volume 10 10 0 1 [/moleculeType] [coordinatorType] id 2 label compartment shape Sphere 0.1 opacity 0.5 geometricType point neighborhood-size 5 isSizeDynamic 1 molecule 1 20 [/coordinatorType] #**************************************************************** EOF
Example 4. Plane coordinator representing a membrane section.
########### #membrane.1.txt #showing a coordinator used to model a membrane section #20 member molecules are moved to the surface of the plane and #their random movement is constrained to the surface of this plane #!although molecules venturing to the edge of the plane are allowed to slip off # #last tested with breve 2.6.1 and magrathea.tz 1.42 #at the time of testing, neighbor lines are only drawn if breve 2.5 is used ########### [simulation] camera-at-from 10 10 0 0 1 50 light-source 0 20 20 movie-length 15 [/simulation] [moleculeType] id 1 label a show-label 0 color .81 .60 .21 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1.0 dynamic-neighborhood-sizing 1 coordinator 1 2 instantiate 20 random spherical volume 10 10 0 5 [/moleculeType] [coordinatorType] id 2 label membrane color .383 .466 .561 opacity 0.5 shape Cube 30 .2 30 geometricType plane neighborhood-size 5 # isCreationDynamic 0 isMobile 0 isSizeDynamic 1 # molecule 1 20 #orientation vertex 0 1 0 pointing-at 0 1 0 #orientation vertex 0 1 0 pointing-at 1 0 0 #orientation vertex 0 1 0 pointing-at 0 0 1 instantiate 1 determined point - 10 5 10 [/coordinatorType] #**************************************************************** EOF
########### #membrane.2.txt #showing a coordinator used to model a membrane section #20 member molecules are moved to the surface of the plane and #their random movement is constrained to the surface of this plane #non-membrane molecules (molecule type 2) will collide and be reprelled #by the surface of this planar coordinator #!some of these molecules may eventually become trapped in the #surface of the plane # #last tested with breve 2.6.1 and magrathea.tz 1.44 #at the time of testing, neighbor lines are only drawn if breve 2.5 is used ########### [simulation] camera-at-from 10 10 0 0 1 50 light-source 0 20 20 movie-length 15 [/simulation] [moleculeType] id 1 label compartment_marker show-label 0 color .81 .60 .21 shape Sphere .5 2 show-neighbor-lines 1 neighborhood-size 1.0 dynamic-neighborhood-sizing 1 coordinator 1 3 instantiate 20 random spherical volume 10 10 10 5 [/moleculeType] [moleculeType] id 2 label non_membrane_molecule show-label 0 color .37 .51 .26 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1.0 dynamic-neighborhood-sizing 1 instantiate 20 random spherical volume 10 15 10 5 instantiate 20 random spherical volume 10 5 10 5 [/moleculeType] [coordinatorType] id 3 label membrane color .383 .466 .561 opacity 0.5 shape Cube 30 .2 30 geometricType plane neighborhood-size 5 isCreationDynamic 0 isMobile 0 isSizeDynamic 1 molecule 1 20 #orientation vertex 0 1 0 pointing-at 0 1 0 #orientation vertex 0 1 0 pointing-at 1 0 0 #orientation vertex 0 1 0 pointing-at 0 0 1 instantiate 1 determined point - 10 10 10 [/coordinatorType] #**************************************************************** EOF
Example 5. Line coordinator representing a microtubule.
########### #microtubule.1.txt #showing a linear coordinator used to model a microtubule or some #other linear macromolecular structure #20 member molecules are moved to the line coordinator and #their random movement is constrained to this line #the line coordinator is dynamically sized so it grows in length #as molecules join it #the molecules have an effective radius of 2 (versus the rendered 1 unit) #so the molecules appear spaced out along the line # #last tested with breve 2.6.1 and magrathea.tz 1.44 #at the time of testing, neighbor lines are only drawn if breve 2.5 is used ########### [simulation] camera-at-from 20 10 0 1 1 70 light-source 0 20 20 movie-length 40 [/simulation] [moleculeType] id 1 label line_coordinator_component_1 show-label 0 color .81 .60 .21 shape Sphere 1 2 show-neighbor-lines 1 neighborhood-size 1 dynamic-neighborhood-sizing 1 coordinator 1 2 instantiate 20 random cylindrical volume 10 15 10 0 1 0 0 35 [/moleculeType] [coordinatorType] id 2 label line_coordinator color .383 .466 .561 opacity 1 shape Cube .2 .2 .2 geometricType line neighborhood-size 5 isCreationDynamic 0 isMobile 0 isSizeDynamic 1 molecule 1 20 #various orientations to try #remove the # sign in front of one of these lines #orientation vertex 1 0 0 pointing-at 0 1 0 #orientation vertex 1 0 0 pointing-at 1 0 0 #orientation vertex 1 0 0 pointing-at 0 0 1 # #orientation vertex 1 0 0 pointing-at 1 1 0 #orientation vertex 1 0 0 pointing-at 1 0 1 #orientation vertex 1 0 0 pointing-at 0 1 1 #orientation vertex 1 0 0 pointing-at 1 1 1 instantiate 1 determined point - 30 10 10 [/coordinatorType] #**************************************************************** EOF
Example 6. Coordinators and rules.
Example 6.1 - simple state change
########### #rules.1.txt #a simple demonstration of the use of rules by coordinators #this example shows a substrate (molecule 1) that undergoes #a state-change (phosphorylation) upon interaction with a #kinase (molecule 2) #the substrate changes from yellow to green upon changing state #and then dissociates from the kinase # #last tested with breve 2.6.1 and magrathea.tz 1.44 #at the time of testing, neighbor lines are only drawn if breve 2.5 is used ########### [simulation] produce-visual-output 1 camera-at-from 10 15 10 100 1 30 light-source 20 20 20 movie-length 40 [/simulation] [moleculeType] id 1 label substrate show-label 1 color .81 .60 .21 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1 dynamic-neighborhood-sizing 1 ### #the following line is read as: #there is some feature with an identifier of 234 #and this feature is given the label of "Tyr234" ### feature 234 Tyr234 #----------------------------------------------------------------- #the following line is read as: #there is some feature with an identifier of 234 #and this feature may have the value of 0 #and this feature-value pair is given the label "unphosphorylated" #see the "Making Models" section of the Magrathea manual #for more a more detailed explanation #----------------------------------------------------------------- feature-state 234 0 unphosphorylated #----------------------------------------------------------------- #the following line is read as: #there is some feature with an identifier of 234 #and this feature may have the value of 1 #and this feature-value pair is given the label "phosphorylated" #see the "Making Models" section of the Magrathea manual #for more a more detailed explanation #----------------------------------------------------------------- feature-state 234 1 phosphorylated coordinator 1 3 instantiate 1 determined point - 10 10 10 #this works too #instantiate 1 determined point - 10 10 10 - - - - - 234.0 #but this does not because of the assembly rule 1 for coordinator 3 #instantiate 1 determined point - 10 10 10 - - - - - 234.1 [/moleculeType] [moleculeType] id 2 label kinase show-label 1 color .92 .32 .1 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1 dynamic-neighborhood-sizing 1 coordinator 1 3 instantiate 1 determined point - 10 20 10 [/moleculeType] [coordinatorType] id 3 label complex_with_rules color 1 1 1 shape Cube 1 1 1 neighborhood-size 10 #----------------------------------------------------------------- #the following lines state that this coordinator can coordinate #molecules of type 1 and of type 2 (first position after "molecule") #with a stoichiometry of 1 for each (second position) and that these molecules #cannot (0) become part of the coordinator without first #satisfying some state consitions #----------------------------------------------------------------- molecule 1 1 0 molecule 2 1 0 [rule] #----------------------------------------------------------------- #this following rule describes the complex formation #the first two "if" lines specify #which molecules must be present for the rule to be executed #the "then" line specifies what happens if the rule is executed and #the "parameters" line specifies a probability that #the rule will be executed should the conditions be met #see the "Making Models" section of the Magrathea manual #for more a more detailed explanation #----------------------------------------------------------------- id 1 #----------------------------------------------------------------- #the following line is read (from left to right) #if present a "tag" of 1 will be used to refer to #molecule of type 1 (where 1 instance is present) #that is not (0) assembled with this coordinator #and does not (0) have a feature-state pair of 234.1 #i.e. feature 234 in state 1 #see the "Making Models" section of the Magrathea manual #for more a more detailed explanation #----------------------------------------------------------------- if 1.1.1.0.0.234.1 if 2.2.1.0 #----------------------------------------------------------------- #the following line is read #molecule(s) assigned with tag 1 (see if lines above) #are allowed to begin asembly with the coordinator #see the "Making Models" section of the Magrathea manual #for more a more detailed explanation #----------------------------------------------------------------- then 1 begins-assembly then 2 begins-assembly #----------------------------------------------------------------- #the following line indicates that the event #described by the "then" lines above #will be executed with a probability of 1 #if the conditions specified in the "if" #lines above are met #see the "Making Models" section of the Magrathea manual #for more a more detailed explanation #----------------------------------------------------------------- parameters p 1 [/rule] [rule] #----------------------------------------------------------------- #this rule describes a state change of the substrate (molecule 1) #generated by the presence of the kinase (molecule 2) #the state change is visualized by a change of colour of #the substrate molecule #see the "Making Models" section of the Magrathea manual #for more a more detailed explanation #----------------------------------------------------------------- id 2 if 1.1.1.1.0.234.1 if 2.2.1.1 #----------------------------------------------------------------- #the following line is read as: #the molecule with the tag of 1 (see first "if" line above) #changes state such that #feature 234 assumes state 1 #see the "Making Models" section of the Magrathea manual #for more a more detailed explanation #----------------------------------------------------------------- then 1 changes-state-to 234.1 then 1 changes-colour-to .1:.32:.11 parameters p 1 [/rule] [rule] #----------------------------------------------------------------- #this rule describes the idea that the substrate (molecule 1) #leaves the coordinator once it has been phosphorylated #i.e. feature 234 has a state value of 1 #see the "Making Models" section of the Magrathea manual #for more a more detailed explanation #----------------------------------------------------------------- #unbinding id 3 if 1.1.1.1.1.234.1 if 2.2.1.1 then 1 leaves-coordinator then 2 leaves-coordinator parameters p 1 [/rule] [/coordinatorType] #**************************************************************** EOF
Example 6.2 - lateral signalling
########### #rules.2.txt #This demonstration shows a somewhat more complex use of rules to #demonstrate the process of lateral signalling. #In this example, a ligand molecule binds to a membrane-bound receptor. #On binding, the receptor changes state (becomes activated) as indicated by #a colour change. The receptor in this new state also gains the ability to #bind to and activate other membrane bound receptors. # #No new concepts are introduced in this model compared to the rules.1.txt #example so there are few comments in the file. #See the "Making Models" section of the Magrathea manual for more details #on the syntax of each line # #after a molecule x changes state, molecule x and all molecule types that might be coordinated #in some coordinator with molecule x have there neighborhood size reset #turn on #show-neighbor-lines 1# to see how this happens # #last tested with breve 2.6.1 and magrathea.tz 1.44 #at the time of testing, neighbor lines are only drawn if breve 2.5 is used ########### [simulation] camera-at-from 10 15 10 0 10 30 light-source 0 20 20 movie-length 20 [/simulation] [moleculeType] id 1 label receptor show-label 1 color .81 .60 .21 shape Sphere 1 neighborhood-size 1 show-neighbor-lines 1 dynamic-neighborhood-sizing 1 feature 234 Tyr234 feature-state 2 0 unphosphorylated feature-state 2 63 phosphorylated coordinator 1 5 coordinator 2 4 coordinator 3 3 instantiate 20 random planar - 10 15 10 20 0 1 0 [/moleculeType] [moleculeType] id 2 label ligand show-label 1 color .92 .32 .11 shape Sphere .7 neighborhood-size 1 dynamic-neighborhood-sizing 1 coordinator 1 5 instantiate 1 determined point - 10 20 10 1 [/moleculeType] [coordinatorType] id 3 label membrane color .383 .466 .561 opacity 0.3 geometricType plane shape Cube 30 .2 30 neighborhood-size 10 molecule 1 20 isCreationDynamic 0 isMobile 0 orientation vertex 0 1 0 pointing-at 0 1 0 instantiate 1 determined point - 10 15 10 [/coordinatorType] [coordinatorType] id 4 label receptor-receptor-complex color 1 1 1 shape Cube 1 1 1 neighborhood-size 10 molecule 1 2 0 [rule] #formation id 1 if 1.1.1.0.1.2.63 if 2.1.1.0.0.2.63 then 1 begins-assembly then 2 begins-assembly parameters p1 1 [/rule] [rule] #lateral activation id 2 if 1.1.1.1.1.2.63 if 2.1.1.1.0.2.63 then 2 changes-state-to 2.63 then 2 changes-colour-to .1:.32:.11 parameters p1 1 [/rule] [rule] #unbinding id 3 if 1.1.1.1.1.2.63 if 2.1.1.1.1.2.63 then 1 leaves-coordinator then 2 leaves-coordinator #parameters p3 0.15 parameters p1 1 [/rule] [/coordinatorType] [coordinatorType] id 5 label receptor-ligand-complex color 1 1 1 shape Cube 1 1 1 neighborhood-size 10 molecule 1 1 0 molecule 2 1 0 [rule] #formation id 1 if 1.1.1.0.0.2.63 if 2.2.1.0 then 1 begins-assembly then 2 begins-assembly parameters p4 0.2 [/rule] [rule] #ligand activation id 2 if 1.1.1.1.0.2.63 if 2.2.1.1 then 1 changes-state-to 2.63 then 1 changes-colour-to .1:.32:.11 parameters p5 1 [/rule] [rule] #unbinding #id 3 if 1.1.1.1.1.2.63 if 2.2.1.1 then 1 leaves-coordinator then 2 leaves-coordinator parameters p6 0.2 [/rule] [/coordinatorType] #**************************************************************** EOF
Example 6.3 - translocation across compartment boundary
########### #rules.3.txt #This demonstration shows two coordinator and their rules that control translocation #into and out of a spherical compartment represented by a third coordinator. # #In this example, blue molecules (ligand) bind to a surface receptor (black) and are #translocated INTO the compartment where they change color to yellow. A state change in #the ligand molecules then allows them to bind a second receptor (grey) that translocates #them OUT OF the compartment. # #See the "Making Models" section of the Magrathea manual for more details #on the syntax of each line # #last tested with breve 2.6.1 and magrathea.tz 1.44 #at the time of testing, neighbor lines are only drawn if breve 2.5 is used ########### [simulation] camera-at-from 30 20 30 7 6 15 light-source 50 50 50 movie-length 40 [/simulation] [moleculeType] id 1 label compartment_marker color .81 .60 .21 #---------------------------------------------------- #The following line causes comparment markers to be #drawn as points in order to simplify the #visualization. #See the "Making Models" section of the Magrathea #manual for more details. #---------------------------------------------------- draw-as-point 1 shape Sphere .2 1 neighborhood-size 5 coordinator 1 3 instantiate 30 random spherical surface 30 20 30 3 [/moleculeType] [moleculeType] id 2 label pump_in show-label 1 color .11 .00 .21 shape Sphere .2 neighborhood-size 1 dynamic-neighborhood-sizing 1 coordinator 1 3 coordinator 2 7 instantiate 2 random spherical surface 30 22 30 1 [/moleculeType] [moleculeType] id 5 label pump_out show-label 1 color .51 .50 .51 shape Sphere .2 neighborhood-size 1 dynamic-neighborhood-sizing 1 coordinator 1 3 coordinator 2 8 instantiate 2 random spherical surface 30 20 32 1 [/moleculeType] [moleculeType] id 4 label ligand color .12 .12 .91 show-neighbor-lines 0 shape Sphere .2 neighborhood-size 1 dynamic-neighborhood-sizing 1 resident-compartment-type 0 coordinator 1 7 coordinator 1 8 instantiate 6 random spherical volume 30 24 30 1 [/moleculeType] [coordinatorType] id 3 label compartment color .92 .32 .11 #---------------------------------------------------- #The following line can be changed to #opacity 0.2 #in order to visualize molecules inside the #compartment. #See the "Making Models" section of the Magrathea #manual for more details. #---------------------------------------------------- opacity 1 shape Sphere 0.1 isCompartment 1 neighborhood-size 20 isCreationDynamic 1 isMobile 0 isSizeDynamic 1 molecule 1 30 molecule 2 2 molecule 5 2 instantiate 1 determined point - 30 20 30 [/coordinatorType] [coordinatorType] id 7 label pump_in_complex shape Cube .2 .2 .2 molecule 4 1 0 molecule 2 1 0 [rule] id 1 #----------------------------------------------------------------- #load pump #ligand will enter the compartment if it has not been there before #The following line is read as: #If present, a tag of 34 is assigned to molecule type 4 (ligand) #(1 instance) that is not assembled with the this pump_in coordinator (0) #and it is not a resident of the compartment coordinator (0.99999.3) #and it does not have feature 2 in state 65 (0.2.65). #The next line is read as: #If present, a tag of 35 is assigned to molecule type 2 (pump_in) #(1 instance) if it is not assembled with this pump_in coordinator (0) #and if it is assembled as a component of the compartment (1.99999.3). #See the "Making Models" section of the Magrathea manual for more #details on the syntax of these rule lines. #----------------------------------------------------------------- if 34.4.1.0.0.99999.3.0.2.65 if 35.2.1.0.1.99999.3 then 34 begins-assembly then 35 begins-assembly parameters p 1.0 [/rule] [rule] id 2 #----------------------------------------------------------------- #translocation #This rule handles the translocation of the ligand molecule #once it has assembled with the pump_in molecule. # #A feature-state of the ligand is changed to indicate that the #ligand molecule has entered the comparment using the line #"then 34 changes-state-to 2.65". #This state-change prevents the ligand from #re-entering the compartment after it has been pumped out #(see the pump_out_complex coordinator and rule 1 of this #coordinator. # #Upon translocation, the ligand has its feature 99999 set to 3 #(the id of the compartment coordinator) by the line #"then 34 translocates-into-compartment-of-molecule 35". #This feature-state change then allows the ligand molecule #to assemble with the pump_out molecule as specified by the #condition line "if 34.4.1.0.1.99999.3" #in rule 1 of the pump_out_comlex coordinator below. #See the "Making Models" section of the Magrathea manual for more #details on the syntax of these rule lines. #----------------------------------------------------------------- if 34.4.1.1.0.99999.3 if 35.2.1.1.1.99999.3 then 34 changes-state-to 2.65 then 34 changes-colour-to 1:1:0 then 34 translocates-into-compartment-of-molecule 35 then 34 leaves-coordinator parameters p 1.0 [/rule] [/coordinatorType] [coordinatorType] id 8 #----------------------------------------------------------------- #Rules encoded by this coordinator handle assembly with the pump_out #molecule and the translocation out of the compartment represented by #coordinator 3 #The rules are similar to those in coordinator 7 but effect the #reverse process. #See the "Making Models" section of the Magrathea manual for more #details on the syntax of these rule lines. #----------------------------------------------------------------- label pump_out_complex shape Cube .2 .2 .2 molecule 4 1 0 molecule 5 1 0 [rule] #load pump id 1 if 34.4.1.0.1.99999.3 if 35.5.1.0.1.99999.3 then 34 begins-assembly then 35 begins-assembly parameters p 1.0 [/rule] [rule] #translocation id 2 if 34.4.1.1.1.99999.3 if 35.5.1.1.1.99999.3 then 34 translocates-outof-compartment-of-molecule 35 then 34 leaves-coordinator parameters p 1.0 [/rule] [/coordinatorType] [coordinatorType] id 10 #----------------------------------------------------------------- #This coordinator shows an example of using plane coordinators #in different orientations that act as bounding walls for the #simulation. #See the "Making Models" section of the Magrathea manual for more #details on the syntax of these rule lines. #----------------------------------------------------------------- label simulation-container color .383 .466 .561 opacity 0.1 geometricType plane shape Cube 100 .2 100 neighborhood-size 10 isCreationDynamic 0 isMobile 0 #west wall orientation vertex 0 1 0 pointing-at 1 0 0 instantiate 1 determined point - 0 50 50 #east wall orientation vertex 0 1 0 pointing-at -1 0 0 instantiate 1 determined point - 100 50 50 #north wall orientation vertex 0 1 0 pointing-at 0 0 1 instantiate 1 determined point - 50 50 0 #south wall orientation vertex 0 1 0 pointing-at 0 0 -1 instantiate 1 determined point - 50 50 100 #sky wall #ground wall [/coordinatorType] EOF
Example 6.4 - translocation across a planar compartment boundary
########### #rules.4.txt # #translocation demonstration #In this example, a blue particle (ligand) binds to a surface receptor and is translocated past the #membrane (mediated by the black receptor) where it changes color to yellow. #Once on the other side of the membrane, the particle may then bind a second #receptor (grey) that translocates it back to the top of the membrane #Use of the two different receptors for translocation "in and out" is controlled by #a feature-state pair. #Planar coordinators are not compartments in the sense that molecules can move in and out of them. #Instead, they represent barriers within a compartment (in this case the simulation) #that molecules can move past with the help of a mediator molecule (the black and grey receptors). # #See the "Making Models" section of the Magrathea manual for more details #on the syntax of each line # #last tested with breve 2.6.1 and magrathea.tz 1.44 #at the time of testing, neighbor lines are only drawn if breve 2.5 is used ########### [simulation] camera-at-from 30 20 30 2 13 15 light-source 50 50 50 movie-length 40 [/simulation] [moleculeType] id 1 label compartment_marker color .81 .60 .21 draw-as-point 1 shape Sphere .2 1 neighborhood-size 5 coordinator 1 3 instantiate 30 random spherical surface 30 21 30 1 [/moleculeType] [moleculeType] id 2 label pump_in color .11 .00 .21 shape Sphere .2 neighborhood-size 1 dynamic-neighborhood-sizing 1 coordinator 1 3 coordinator 2 7 instantiate 1 random spherical surface 30 21 30 1 [/moleculeType] [moleculeType] id 5 label pump_out color .51 .50 .51 shape Sphere .2 neighborhood-size 1 dynamic-neighborhood-sizing 1 coordinator 1 3 coordinator 2 8 instantiate 1 random spherical surface 30 20 30 1 [/moleculeType] [moleculeType] id 4 label ligand color .12 .12 .91 show-neighbor-lines 0 shape Sphere .2 neighborhood-size 1 dynamic-neighborhood-sizing 1 resident-compartment-type 0 coordinator 1 7 coordinator 1 8 instantiate 6 random spherical volume 33 25 30 5 [/moleculeType] [coordinatorType] id 3 label membrane_section color .92 .32 .11 opacity 0.2 geometricType plane shape Cube 99 .02 100 isCompartment 1 neighborhood-size 20 isCreationDynamic 0 isMobile 0 isSizeDynamic 0 molecule 1 30 molecule 2 2 molecule 5 2 orientation vertex 0 1 0 pointing-at 1 0 0 instantiate 1 determined point - 30 20 30 [/coordinatorType] [coordinatorType] id 7 label pump_in_complex shape Cube .2 .2 .2 molecule 4 1 0 molecule 2 1 0 [rule] id 1 #----------------------------------------------------------------- #load pump #ligand will enter the compartment if it has not been there before #note that we only test for the compartment of the receptor the #ligand will never become a part of this "compartment" since a #planar coordinator does not define a compartment #but a barrier within a compartment that can be traversed #----------------------------------------------------------------- if 34.4.1.0.0.2.65 if 35.2.1.0.1.99999.3 then 34 begins-assembly then 35 begins-assembly parameters p 1.0 [/rule] [rule] id 2 #----------------------------------------------------------------- #translocation #change a feature state of the ligand so we know it has entered #the comparment #----------------------------------------------------------------- if 34.4.1.1 if 35.2.1.1.1.99999.3 then 34 changes-state-to 2.65 then 34 changes-colour-to 1:1:0 then 34 translocates-past-molecule 35 then 34 leaves-coordinator parameters p 1.0 [/rule] [/coordinatorType] [coordinatorType] id 8 label pump_out_complex shape Cube .2 .2 .2 molecule 4 1 0 molecule 5 1 0 [rule] #load pump id 1 if 34.4.1.0.1.2.65 if 35.5.1.0.1.99999.3 then 34 begins-assembly then 35 begins-assembly parameters p1 0.15 [/rule] [rule] #translocation id 2 if 34.4.1.1 if 35.5.1.1.1.99999.3 then 34 changes-state-to 2.0 then 34 translocates-past-molecule 35 then 34 changes-colour-to .12:.12:.91 then 34 leaves-coordinator parameters p1 0.15 [/rule] [/coordinatorType] [coordinatorType] id 10 label simulation-container color .383 .466 .561 opacity 0.1 geometricType plane shape Cube 100 .2 100 neighborhood-size 10 isCreationDynamic 0 isMobile 0 #west wall orientation vertex 0 1 0 pointing-at 1 0 0 instantiate 1 determined point - 0 50 50 #east wall orientation vertex 0 1 0 pointing-at -1 0 0 instantiate 1 determined point - 100 50 50 #north wall orientation vertex 0 1 0 pointing-at 0 0 1 instantiate 1 determined point - 50 50 0 #south wall orientation vertex 0 1 0 pointing-at 0 0 -1 instantiate 1 determined point - 50 50 100 #sky wall #ground wall [/coordinatorType] EOF
Example 6.5 - simple molecule rules
########### #rules.5.txt # #Specifying molecule rules #This very simple example demonstrates the syntax for specifying rules #for molecules. The syntax is slightly different from that of rules for #coordinators in that if lines do not begin with a tag id; instead they #begin with an identifier for the molecule type that they apply to. # #In this example, a molecule may be created or destroyed at each time-step #of the simulation with some probability. # #See the "Making Models" section of the Magrathea manual for more details #on the syntax of each line # #last tested with breve 2.6.1 and magrathea.tz 1.44 #at the time of testing, neighbor lines are only drawn if breve 2.5 is used ########### [simulation] #camera-at-from 30 20 30 14 13 30 camera-at-from 30 20 30 7 6 15 light-source 0 20 20 movie-length 40 [/simulation] [moleculeType] id 1 label inputSignal color 1 0 0 shape Sphere 1 neighborhood-size 1 dynamic-neighborhood-sizing 1 [rule] # signal creation id 1 if 1 competitive-with 2 then 1 is-created-at-location-of 1 #parameters p1 0.00005 parameters p1 0.005 [/rule] [rule] # signal destruction id 2 if 1 competitive-with 1 then 1 is-destroyed parameters p2 0.009 [/rule] instantiate 4 random spherical volume 10 15 10 10 [/moleculeType] EOF
Example 6.6 - more molecular rules
########### #rules.6.txt # #Specifying molecule rules #This example builds on rules.5.txt #In this example, a molecule may be created or destroyed at each time-step #of the simulation with some probability, but, before doing so, the molecule #must be in some pre-creation or pre-destruction state. # #See the "Making Models" section of the Magrathea manual for more details #on the syntax of each line # #last tested with breve 2.6.1 and magrathea.tz 1.44 #at the time of testing, neighbor lines are only drawn if breve 2.5 is used ########### [simulation] #camera-at-from 30 20 30 14 13 30 camera-at-from 30 20 30 7 6 15 light-source 0 20 20 movie-length 40 [/simulation] [moleculeType] id 1 label inputSignal color 1 0 0 shape Sphere 1 neighborhood-size 1 dynamic-neighborhood-sizing 1 [rule] #state change to pre-creation id 1 if 1.1.0 competitive-with 4 then 1 changes-state-to 1.1 then 1 changes-colour-to .1:.32:.11 parameters p1 0.005 [/rule] [rule] #state change to pre-destruction id 2 if 1.1.1 competitive-with 3 then 1 changes-state-to 1.0 then 1 changes-colour-to .1:.32:.11 parameters p1 0.005 [/rule] [rule] #creation id 3 if 1.1.1 competitive-with 2 then 1 is-created-at-location-of 1 parameters p1 0.005 [/rule] [rule] #destruction id 4 if 1.1.0 competitive-with 1 then 1 is-destroyed parameters p2 0.009 [/rule] instantiate 6 random spherical volume 10 15 10 10 [/moleculeType] EOF
Example 6.7 - rules for a crude motor
########### #rules.7.txt #showing a linear coordinator and two point coordinators #to model a crude motor that moves cargo from one end of the #'microtubule' to the other #somewhat embarrassing but makes the point of rule use ########### [simulation] camera-at-from 20 10 0 1 1 70 light-source 0 20 20 movie-length 80 [/simulation] [moleculeType] id 1 label line_coordinator_component_1 show-label 0 color .81 .60 .21 shape Sphere 1 draw-as-point 0 show-neighbor-lines 1 neighborhood-size 1 dynamic-neighborhood-sizing 1 feature 67 bindable-by-microtubule feature-state 67 1 bindable-yes feature-state 67 0 bindable-no coordinator 1 4 coordinator 2 6 #instantiate 40 random cylindrical volume 10 15 10 0 1 0 0 105 67.1 instantiate 1 determined point - 10 15 10 - - - - - 67.1 instantiate 1 determined point - 12 15 10 - - - - - 67.1 instantiate 1 determined point - 14 15 10 - - - - - 67.1 instantiate 1 determined point - 16 15 10 - - - - - 67.1 instantiate 1 determined point - 18 15 10 - - - - - 67.1 instantiate 1 determined point - 20 15 10 - - - - - 67.1 instantiate 1 determined point - 22 15 10 - - - - - 67.1 instantiate 1 determined point - 24 15 10 - - - - - 67.1 instantiate 1 determined point - 26 15 10 - - - - - 67.1 instantiate 1 determined point - 28 15 10 - - - - - 67.1 instantiate 1 determined point - 30 15 10 - - - - - 67.1 instantiate 1 determined point - 32 15 10 - - - - - 67.1 instantiate 1 determined point - 34 15 10 - - - - - 67.1 instantiate 1 determined point - 36 15 10 - - - - - 67.1 instantiate 1 determined point - 38 15 10 - - - - - 67.1 instantiate 1 determined point - 40 15 10 - - - - - 67.1 instantiate 1 determined point - 42 15 10 - - - - - 67.1 instantiate 1 determined point - 44 15 10 - - - - - 67.1 instantiate 1 determined point - 46 15 10 - - - - - 67.1 instantiate 1 determined point - 48 15 10 - - - - - 67.1 instantiate 1 determined point - 50 15 10 - - - - - 67.1 [/moleculeType] [moleculeType] id 2 label motor_component show-label 0 color .81 .80 .21 shape Sphere 1 show-neighbor-lines 1 neighborhood-size 1 dynamic-neighborhood-sizing 1 coordinator 1 5 coordinator 2 6 instantiate 1 determined point - 1 17 10 - - - - - 1.0 instantiate 1 determined point - 1 17 10 - - - - - 1.1 [/moleculeType] [coordinatorType] id 4 label line_coordinator color .383 .466 .561 opacity 1 shape Cube .2 .2 .2 geometricType line neighborhood-size 5 isCreationDynamic 0 isMobile 0 isSizeDynamic 1 molecule 1 40 orientation vertex 1 0 0 pointing-at 1 0 0 instantiate 1 determined point - 30 15 10 [/coordinatorType] [coordinatorType] id 5 label motor_coordinator color .383 .466 .561 opacity 1 shape Cube 1 1 1 geometricType point neighborhood-size 5 isCreationDynamic 1 isMobile 1 isSizeDynamic 0 molecule 2 2 instantiate 0 determined point - 30 15 10 [rule] id 1 if 34.2.1.1.1.1.1 then 34 changes-colour-to 1:0:0 parameters p 1.0 [/rule] [rule] #switch binding activated id 3 if 34.2.1.1.1.1.2 if 35.2.1.1.1.1.0 then 34 changes-state-to 1.3 then 34 changes-colour-to .81:.80:.21 then 35 changes-state-to 1.1 then 35 changes-colour-to 1:0:0 parameters p 1.0 [/rule] [rule] #switch binding activated id 4 if 34.2.1.1.1.1.2 if 35.2.1.1.1.1.3 then 34 changes-state-to 1.3 then 34 changes-colour-to .81:.80:.21 then 35 changes-state-to 1.4 parameters p 1.0 [/rule] [/coordinatorType] [coordinatorType] id 6 label motor_tubule color .483 .566 .461 opacity 1 shape Cube 1 1 1 geometricType point neighborhood-size 1 isCreationDynamic 1 isMobile 1 isSizeDynamic 0 molecule 1 1 0 molecule 2 1 0 [rule] id 1 #begin assembly with motor if 34.2.1.0.1.1.1 if 35.1.1.0.1.67.1 then 34 begins-assembly then 35 begins-assembly parameters p 1.0 [/rule] [rule] id 2 #signal if 34.2.1.1.1.1.1 if 35.1.1.1.1.67.1 then 34 changes-state-to 1.2 then 35 changes-state-to 67.2 then 35 changes-colour-to 1:1:1 parameters p 1.0 [/rule] [rule] id 3 #leave if 34.2.1.1.1.1.4 if 35.1.1.1.1.67.2 then 34 changes-state-to 1.1 then 34 leaves-coordinator then 35 leaves-coordinator parameters p 1.0 [/rule] instantiate 0 determined point - 30 15 10 [/coordinatorType] #**************************************************************** EOF
Example 6.8 - timed rules
####################### #timed rules - simple example * ####################### [simulation] produce-visual-output 1 camera-at-from 15 15 15 20 5 -2 movie-length 0 simulation-length 0 time-step 0.01 move-realistically 0 [/simulation] [moleculeType] id 1 label X #yellow color .81 .60 .21 shape Sphere .1 neighborhood-size .170428 dynamic-neighborhood-sizing 0 isMobile 1 resident-compartment-type 11 diffusion 5 instantiate 1 random spherical volume 15 15 15 2.8 S [/moleculeType] [coordinatorType] id 10 label U color .383 .466 .561 opacity .9 geometricType point shape Cube .5 .5 .5 neighborhood-size 10 isCreationDynamic 0 isMobile 0 [rule] id 1 time 1.000000 then 1.5 is-instantiated spherical surface - - - 1.0 - - - - 1.1 - parameters p 1.0 [/rule] [rule] id 2 time 2.000000 then 1.5 is-instantiated spherical surface - - - 1.0 - - - - 1.1 - [/rule] instantiate 1 determined point - 15 15 15 [/coordinatorType] [coordinatorType] id 11 label simulation-container color .383 .466 .561 opacity 0.1 geometricType point shape Sphere 2.88 neighborhood-size 15 isCompartment 1 isSizeDynamic 1 isCreationDynamic 0 isMobile 0 instantiate 1 determined point - 15 15 15 [/coordinatorType] [count] counter-type type molecule-to-count 1 [/count] EOF