Building the first multistate model
In this section we describe step-by-step how to build a simple multistate model filling the different tables of MSMB.
As a running example, we use a small model at the core of the budding yeast cell cycle process. The small model presented in this section contains all the main components of a classical multistate problem and it describes the antagonistic relationship between ClbM and Cdh1 proteins (we refer the reader to the original publication [
Barik2010] for the complete characterization of the model).
Multistate reaction at the core of a budding yeast cell cycle model. The figure shows the core reactions of the model. We have a total of eleven forms (or states) of Cdh1: a non-phosphorylated form (Cdh1) and ten phosphorylated forms denoted as
,
, ...,
.
Some of these forms take part in specific phosphorylation and dephosphorylation reactions as reactant or product: intuitively every form with
i phosphate groups has a successor form
i+1 and a predecessor form
i-1. So, even if the intuitive description of this model include just the "reactions" successor/predecessor (plus the two cases of
i=0, which has no predecessor, and
i=10, which has no successor), the classical way of modelling this system is to explicitly write the total of 34 single state reactions in the Table below. All those reactions are necessary because each phosphorylation state is considered as a distinct species.
To complete the description of this small model we have also to consider the fact that all eleven forms of Cdh1 take part in the degradation of ClbM.
1 |
-> ClbM |
ks |
2 |
ClbM -> |
ClbM ⋅ Xa |
3 |
ClbM + Cdh1 -> ClbM + Cdh1P1 |
kp ⋅ ClbM ⋅ Cdh1 |
4 |
ClbM + Cdh1P1 -> ClbM + Cdh1P2 |
kp ⋅ ClbM ⋅ Cdh1P1 |
5 |
ClbM + Cdh1P2 -> ClbM + Cdh1P3 |
kp ⋅ ClbM ⋅ Cdh1P2 |
6 |
ClbM + Cdh1P3 -> ClbM + Cdh1P4 |
kp ⋅ ClbM ⋅ Cdh1P3 |
7 |
ClbM + Cdh1P4 -> ClbM + Cdh1P5 |
kp ⋅ ClbM ⋅ Cdh1P4 |
8 |
ClbM + Cdh1P5 -> ClbM + Cdh1P6 |
kp ⋅ ClbM ⋅ Cdh1P5 |
9 |
ClbM + Cdh1P6 -> ClbM + Cdh1P7 |
kp ⋅ ClbM ⋅ Cdh1P6 |
10 |
ClbM + Cdh1P7 -> ClbM + Cdh1P8 |
kp ⋅ ClbM ⋅ Cdh1P7 |
11 |
ClbM + Cdh1P8 -> ClbM + Cdh1P9 |
kp ⋅ ClbM ⋅ Cdh1P8 |
12 |
ClbM + Cdh1P9 -> ClbM + Cdh1P10 |
kp ⋅ ClbM ⋅ Cdh1P9 |
13 |
Cdc14 + Cdh1P1 -> Cdc14 + Cdh1 |
kh ⋅ Cdc14 ⋅ Cdh1P1 |
14 |
Cdc14 + Cdh1P2 -> Cdc14 + Cdh1P1 |
kh ⋅ Cdc14 ⋅ Cdh1P2 |
15 |
Cdc14 + Cdh1P3 -> Cdc14 + Cdh1P2 |
kh ⋅ Cdc14 ⋅ Cdh1P3 |
16 |
Cdc14 + Cdh1P4 -> Cdc14 + Cdh1P3 |
kh ⋅ Cdc14 ⋅ Cdh1P4 |
17 |
Cdc14 + Cdh1P5 -> Cdc14 + Cdh1P4 |
kh ⋅ Cdc14 ⋅ Cdh1P5 |
18 |
Cdc14 + Cdh1P6 -> Cdc14 + Cdh1P5 |
kh ⋅ Cdc14 ⋅ Cdh1P6 |
19 |
Cdc14 + Cdh1P7 -> Cdc14 + Cdh1P6 |
kh ⋅ Cdc14 ⋅ Cdh1P7 |
20 |
Cdc14 + Cdh1P8 -> Cdc14 + Cdh1P7 |
kh ⋅ Cdc14 ⋅ Cdh1P8 |
21 |
Cdc14 + Cdh1P9 -> Cdc14 + Cdh1P8 |
kh ⋅ Cdc14 ⋅ Cdh1P9 |
22 |
Cdc14 + Cdh1P10 -> Cdc14 + Cdh1P9 |
kh ⋅ Cdc14 ⋅ Cdh1P10 |
23 |
Cdh1 -> |
kd ⋅ Cdh1 |
24 |
Cdh1P1 -> |
kd ⋅ Cdh1P1 |
25 |
Cdh1P2 -> |
kd ⋅ Cdh1P2 |
26 |
Cdh1P3 -> |
kd ⋅ Cdh1P3 |
27 |
Cdh1P4 -> |
kd ⋅ Cdh1P4 |
28 |
Cdh1P5 -> |
kd ⋅ Cdh1P5 |
29 |
Cdh1P6 -> |
kd ⋅ Cdh1P6 |
30 |
Cdh1P7 -> |
kd ⋅ Cdh1P7 |
31 |
Cdh1P8 -> |
kd ⋅ Cdh1P8 |
32 |
Cdh1P9 -> |
kd ⋅ Cdh1P9 |
33 |
Cdh1P10 -> |
kd ⋅ Cdh1P10 |
34 |
-> Cdh1 |
ks1 |
List of reaction needed to encode the model described above.
As we can see from the table above, most of the reactions has the same general structure (and rate law) so what the modeller would actually want to have is a way to define Cdh1 states with a range of ordered indexes and a way to refer to the successive/preceding state.
In this case, we have the following definition of Cdh1:
The intuition behind the definition is that the species called
Cdh1 has a site (called
p) which can have different state values, and those state values ranges from 0 to 10 (as integer numbers). For a detailed description of the syntax of multistate species and reactions, we refer the reader to Section
Multistate Species and Reactions syntax.
We can use this compact notation, to reduce the number of reactions from the initial 34 down to 5, by expressing the reactants and products as multistate species.
1 |
-> ClbM |
ks |
2 |
ClbM -> |
ClbM ⋅ Xa |
3 |
ClbM + Cdh1(p{0:9}) -> ClbM + Cdh1(succ(p)) |
kp ⋅ ClbM ⋅ Cdh1(p) |
4 |
Cdc14 + Cdh1(p{1:10}) -> Cdc14 + Cdh1(pred(p)) |
kh ⋅ Cdc14 ⋅ Cdh1(p) |
5 |
Cdh1(p{0:10}) -> |
kd ⋅ Cdh1(p) |
6 |
-> Cdh1(p{0}) |
ks1 |
In Reaction 2,
Xa is the activity of Cdh1 expressed as the weighted sum of its phosphorylated and unphosphorylated forms.
In particular we have that
)
What the user needs is, again, a compact way to represent this sort of expressions taking advantage of the multistate format and a summation operator as follows:
In MSMB it is possible to define the above summation in a compact way as follows:
ka * Cdh1(p{0}) + kin * SUM(Cdh1;p{1:10})
This summation operator make the expression easy to view, manipulate and edit.
As today, there are no tools which support the multistate format directly.
Even SBML does not provide a direct way to express multistate species and reactions.
Therefore MSMB provides support to
expand the compact (multistate) model into a single-state species model that can be used with any other SBML-compliant tools for simulation and further analysis.
The importance of the multistate concept is, however, acknowledged by the SBML community and there is an ongoing effort in defining a
multi package for the SBML Level 3 specification (
Multistate and Multicomponent Species (multi)). The
multi package whose purpose is to define "object structures for representing entity pools with multiple states and composed of multiple components, and reaction rules involving them". The package is still in the proposal stage, but we are going to offer direct export to the sbml-multi format, once the specification reaches the final approved stage.