pwTutorial_Rule_based_modeling


 == Rule-based modeling in PottersWheel 2.1 ==

 In rule-based modeling, groups of similar reactions can be formulated
 using a single 'rule' which leads to a more compact model formulation.
 A rule is a reaction where e.g. the state of some binding sites is not
 affecting the reaction rate and can be ignored.

 Suppose a receptor R  with two binding sites, one for a ligand L and
 one for a substrate S. It may have the following conformations,
 where 'o' stands for a free binding site and '_' separates the binding sites:
R_o_oUnbound receptor
R_L_oLigand-bound receptor
pR_L_oLigand-bound phosphorylated receptor
pR_L_S... bound to a substrate
pR_L_pS... bound to a phosphorylated substrate
pR_o_S... bound to a substrate, but ligand-unbound
pR_o_pS... bound to a phosphorylated substrate, but ligand-unbound
Phosphorylation of the substrate may be independent of the presence of the ligand, therefore the following reactions share the same rate: pR_L_S -> pR_L_pS pR_o_S -> pR_o_pS A rule summarizes both reactions by using either a placeholder like '*' representing all possible binding states or by listing all allowed states separated by '|' and grouped by angle brackets '<...>', here pR_@_S pR_<L|o>_S This notation is only applied to the reactant, since the product should have the same state of the not-affecting binding site - with or without the ligand. Therefore a reference is created in the reactant '<1:...>' and its concrete value can be reused in the product by inserting '<1>', e.g. pR_<1:@> -> pR_<1>_pS or pr_<1:L|o> -> pR_<1>_pS Suppose a second ligand E which is also able to phosphorylate the receptor: R_L_o -> pR_L_o R_E_o -> pR_E_o These reactions can be formulated using the rule R_<1:L|E>_o -> pR_<1>_o Use of '@', R_<1:@>_o -> pR_<1>_o would be wrong since this rule also matches the reaction R_o_o -> pR_o_o which is not allowed in our example model. In this case the placeholder '#' can be used, which matches all non-empty binding sites: R_<1:#>_o -> pR_<1>_o

Requirements

 In order to apply rule-based modeling in PottersWheel the following naming
 convention must be applied:

 - Basic species start with a capital letter [A-Z]
 - Modifications of a species are denoted by lowercase prefixes [a-z0-9].
   A modification could be a single or double phosphorylation, p and pp
   respectively, leading to pR and ppR, or cytoplasmic versus nuclear
   proteins, e.g. cS and nS.
 - Bindings are denoted using an underscore '_'

 

Binding sites versus modification states

 Modifications can always be formulated using a separate binding site,
 e.g. instead of pR one could use R_P (and consequently instead of R one
 would use R_o). A specific binding site enables more possibilities to
 formulate rules but also leads to longer species IDs, here e.g. R_o
 instead of just R.

 

Testing custom patterns

 The function pwMatch allows to test custom patterns, e.g.

  pwMatch('R_L_o', 'R_@_o')

 will return true, but not

  pwMatch('R_o_o', 'R_#_o')

 

Changes from PW 2.0

 - Use of @ instead of * and # instead of +.
   This allows to use PottersWheel patterns within mathematical equations
   without interfering with algebraic operators.
 - A_@ does not match A or A_B_C, but only A_o, A_B, etc.
   To match A and A_@ please use <A|A_@>
 - Use of "o" for an empty binding site.
 - p|ppA does not match pA and ppA, but is not permitted any more.
   Rather use explicitly pA|ppA.

See also

pwMatch
pwSimpleToValidRegExp
pwRegexpRep