Simulationbased model checking approach to cell fate specification during Caenorhabditis elegans vulval development by hybrid functional Petri net with extension
 Chen Li†^{1},
 Masao Nagasaki†^{1}Email author,
 Kazuko Ueno^{1} and
 Satoru Miyano^{1}
DOI: 10.1186/17520509342
© Li et al; licensee BioMed Central Ltd. 2009
Received: 18 August 2008
Accepted: 27 April 2009
Published: 27 April 2009
Abstract
Background
Model checking approaches were applied to biological pathway validations around 2003. Recently, Fisher et al. have proved the importance of model checking approach by inferring new regulation of signaling crosstalk in C. elegans and confirming the regulation with biological experiments. They took a discrete and statebased approach to explore all possible states of the system underlying vulval precursor cell (VPC) fate specification for desired properties. However, since both discrete and continuous features appear to be an indispensable part of biological processes, it is more appropriate to use quantitative models to capture the dynamics of biological systems. Our key motivation of this paper is to establish a quantitative methodology to model and analyze in silico models incorporating the use of model checking approach.
Results
A novel method of modeling and simulating biological systems with the use of model checking approach is proposed based on hybrid functional Petri net with extension (HFPNe) as the framework dealing with both discrete and continuous events. Firstly, we construct a quantitative VPC fate model with 1761 components by using HFPNe. Secondly, we employ two major biological fate determination rules – Rule I and Rule II – to VPC fate model. We then conduct 10,000 simulations for each of 48 sets of different genotypes, investigate variations of cell fate patterns under each genotype, and validate the two rules by comparing three simulation targets consisting of fate patterns obtained from in silico and in vivo experiments. In particular, an evaluation was successfully done by using our VPC fate model to investigate one target derived from biological experiments involving hybrid lineage observations. However, the understandings of hybrid lineages are hard to make on a discrete model because the hybrid lineage occurs when the system comes close to certain thresholds as discussed by Sternberg and Horvitz in 1986. Our simulation results suggest that: Rule I that cannot be applied with qualitative based model checking, is more reasonable than Rule II owing to the high coverage of predicted fate patterns (except for the genotype of lin15ko; lin12ko double mutants). More insights are also suggested.
Conclusion
The quantitative simulationbased model checking approach is a useful means to provide us valuable biological insights and better understandings of biological systems and observation data that may be hard to capture with the qualitative one.
Background
Model checking is a successful method for automatic verification of software and reactive systems [1], which is usually applied to ensure consistency and correctness of designed models. Practiced verification methods in most cases are still simple simulation and testing. While simple simulation and testing provide a part of the possible results of a model, model checking can conduct an exhaustive exploration of all possible behaviors [1–4].
Among the features, one merit of using model checking is that it is possible to verify a set of rules defined by users. Recently, the size of targeting network becomes enlarged and difficult to check all rules and their combinations by each user, especially, biologist. To solve this, around 2003, several attempts were launched to apply model checking approaches to biological pathway validations [5–12]. With the aid of model checking approach, one can obtain answers to questions such as "what is the probability that the gene finally expressed?" and "does this reaction always lead to DNA fragmentation?" In 2007, Fisher et al. proved the importance of model checking approach by inferring the new regulation of inductive and lateral signaling crosstalk of C. elegans and confirming the regulation with biological experiments [9]. The approach was applied on a discrete model by using one of the model checking languages named reactive modules [13]. However, quantitative properties (e.g. continuous feature) are also important in biological processes, such as the concentration of proteins and the reaction rates. Thus, it is desirable to deal with both discrete and continuous features in the model (called hybrid model). From this fact, the next challenge is to apply the model checking approach to such hybrid models. Several hybrid models have been applied to biological pathway modeling, e.g. hybrid automata [6], πcalculus [14], ordinary differential equations (ODEs) [15], and hybrid functional Petri nets (HFPN) [16] and its extension (HFPNe) [17, 18]. Among them, HFPNe and its related concepts have been accepted as a formal modeling method due to potential advantages of HFPNe possessing intuitive graphical representation and capabilities for mathematical analysis [19–23].
We use HFPNe to quantitatively model C. elegans vulval development mechanism, which best meets the features of biological processes. We have been developing an HFPNe based software "Cell Illustrator" [24, 25] for modeling and simulating biological pathways [17, 18, 26]. It has been successfully employed to develop and analyze some pathway models for gene regulatory networks, metabolic pathways, and signaling pathways [16, 27–31]. In this paper, Cell Illustrator is used as a software tool to model and simulate this complicated biological system in C. elegans.
The paper is organized as follows: In Methods, we first present an introduction of HFPNe and biological background of VPC fate determination mechanism. We demonstrate how to construct VPC fate model by using HFPNe afterwards. When determining cell fate from biological points of view, several biological fate determination rules can be considered. We thus employ two major biological fate determination rules – Rule I and Rule II – to the VPC fate model. Two rules are used to determine the cell fate from two viewpoints – temporal interval and temporal order – of time course expression of cell fate candidates. Next, we conduct 10,000 simulations for each of 48 sets of different genotypes which are the combination of four mutants and AC (anchor cell). The simulation procedures such as noise parameters, highspeed simulation engine, and the emulation of the temporal stimulations are also described. Finally, we examine the consistency and correctness of the VPC fate model, and evaluate proposed two rules by comparing with three simulation targets consisting of predicted fate patterns obtained from in silico and in vivo experiments. In Results and Discussion, our simulation results suggest that Rule I on the temporal interval is more reasonable than Rule II owing to the high coverage of predicted fate patterns (except for lin15ko; lin12ko double mutants), (ii) for the lin15ko; lin12ko double mutants, the coverage will be considerably augmented, if the number of animal population is increased in the in vivo experiments, and (iii) unmatched fate patterns of lin15ko and ac; lin15ko, still have the possibility to be examined in in vivo experiments by enlarging animal numbers. More insights concerning the hybrid lineage are also suggested and discussed. The final section concludes the paper and addresses the contributions of the work.
Methods
Modeling biological pathways with hybrid functional Petri net with extension (HFPNe)
Brief introduction of HFPNe: an enhanced Petri net for modeling biological interactions
Petri net is a network which consists of place, transition, arc, and token. A place can hold tokens as its content. A transition has arcs coming from places and arcs going out from the transition to some places. A transition with these arcs defines a firing rule in terms of the contents of the places where the arcs are attached [33].
Due to the limitation of conventional Petri net and more requirements in modeling, Matsuno et al. have defined hybrid functional Petri net (HFPN for short) in 2003 [16]. However, when modeling biological pathways, it has been noticed that several useful extensions should be applied for modeling and simulating more complicated biopathway processes (e.g., activities of enzymes for a multimodification protein) and other biological processes that are not normally treated in biological pathways (e.g., alternative splicing and frameshifting) [18]. Therefore, Nagasaki et al. have proposed a new enhanced Petri net architecture hybrid functional Petri net with extension (HFPNe) in 2004. They have firstly used the new terminology in HFPNe to bridge the gap between the researchers of computer science and biology. In other words, the terms of place, transition, arc, and token are named as entity, process, connector, and content respectively.
Basic definitions of HFPNe
For modeling complex biological processes intuitively, we are required to deal with various kinds of biological information, e.g. the density of molecules, the number of molecules, sequences, molecular modifications, binding location, localization of molecules, etc. To cope with this feature in biological system modeling, we introduce types for biological entities and processes.
 1.
D(boolean) = {true, false}, D(integer) = Z (the set of integers), D(integer+) = N (the set of nonnegative integers), D(real) = R (the set of real numbers), D(real+) = R^{≥0}(the set of nonnegative real numbers), D(string) = S (the set of strings over some alphabet).
 2.
D(pair(θ_{1}, θ_{2})) = D(θ_{1}) × D(θ_{2}).
 3.
D(listθ) = ∪_{k ≥ 0}D(θ)^{ k }.
 4.
D(object(θ_{1}, ⋯, θ_{ n })) = D(θ_{1}) × ⋯ × D(θ_{ n }).
For convenience, we denote D* = ∪_{θ ∈ T}D (θ).
Let E be a finite set. A type function for E is a mapping τ: E → T. For e ∈ E, τ(e) is called the type of e. A marking of E is a mapping M : E → D* satisfying M(e) ∈ D(τ(e)) for e ∈ E. For e ∈ E, M(e) called the mark of e. We denote by ℳ the set of all markings of E. We can regard ℳ as the set ∏_{e∈E}D(τ(e)).
Consider a function f : ℳ → R. For a subset F ⊆ E and an element v ∈ ∏_{e ∈ F}D(τ(e)), let f [F = v]: ∏_{e ∈ EF}D(τ(e)) → R be the function obtained from f by restricting the value for F to v, i.e. f [F = v](z) = f(z, v) for z ∈ ∏_{e ∈ EF}D(τ(e)). Let F be a subset of E such that e ∈ F satisfies D(τ(e)) = R or R^{≥ 0}. We say that the function f is continuous for F if f [E  F = v]: ∏_{e ∈ F}D(τ(e)) → R is continuous on ∏_{e ∈ F}D(τ(e)) for any v ∈ ∏_{e ∈ EF}D(τ(e)).
Based on the above terminology, we define the notion of hybrid functional Petri net with extension (HFPNe). The basic idea of HFPNe is twofold. The first is to introduce types with which we can deal with various data types. The second is to employ functions of marking f(M) to determine the weight, delay, and speed, etc. which control the system behavior. In the following definition, we use different names instead of place, transition, arc, etc. which are conventionally used in Petri net theory since biological system modeling requires more intuitive names for representing biological entities and processes.
 1.
E = {e_{1}, ⋯, e_{ n }} is a nonempty finite set of entities and P = {p_{1}, ⋯, p_{ m }} is a nonempty finite set of processes, where we assume E ∩ P = ∅.
 2.
h : E ∪ P → {discrete, continuous, generic} is a mapping called the hybrid function. Terms "discrete" and "continuous" correspond to those in hybrid Petri net [16] and "generic" is a newly introduced name which can be of any type in T. A process p ∈ P with h(p) = discrete (resp., continuous, generic) is called a discrete process (resp., continuous process, generic process). An entity e ∈ E with h(e) = discrete (resp., continuous, generic) is called a discrete entity (resp., continuous entity, generic entity).
 3.
τ: E → T is a type function for E such that τ(e) = integer+ if e is a discrete entity, and τ(e) = real+ if e is a continuous entity.
 4.
C = (EP, PE, a, w, u) consists of subsets EP ⊆ E × P and PE ⊆ P × E. An element in EP ∪ PE is called a connector. Each connector has a connector type which is given by a mapping a : EP ∪ PE → {process, associate, inhibitor} called the connector type function which satisfies the conditions: (i) a(c) = process for c ∈ PE. (ii) All connectors c = (e, p) ∈ EP satisfy the conditions in Table 1(a) and all connectors c = (p, e) ∈ PE satisfy the conditions in Table 1(b). A connector c = (e, p) ∈ EP is called a process connector (resp., an associate connector, an inhibitory connector) if a(c) = process (resp., associate, inhibitor). "Process connector", "associate connector" and "inhibitory connector" correspond to normal arc, test arc and inhibitory arc, respectively. For a connector c = (p, e) ∈ PE, a(c) = process by definition and we also call it a process connector. We say that a connector c = (e, p) ∈ EP is discrete (resp., continuous, generic) if p is a discrete process (resp., continuous process, generic process). In the same way, we also say that c = (p, e) ∈ PE is discrete (resp., continuous, generic) if p is a discrete process (resp., continuous process, generic process). Let ℳ be the set of all markings of E and let F be the set of continuous entities in E. Then we denote = {f f : ℳ → N}, = {f f : ℳ → R^{≥ 0}is continuous for F}, = {f f : ℳ → D*}, and = {f f : ℳ → {true, false}}.
The conditions of the connector type
connector type  process connector  associate or inhibitory connector  

process type  discrete  continuous  generic  discrete  continuous  generic  
(a)  entity  discrete  X    X  X  X  X 
type  continuous  X  X  X  X  X  X  
generic      X  X  X  X  
connector type  process connector  associate or inhibitory connector  
process type  discrete  continuous  generic  discrete  continuous  generic  
(b)  entity  discrete  X    X       
type  continuous  X  X  X        
generic  X  X  X       
 (a)
w : is a function called the activity function such that for a connector c ∈ EP (i) w(c) ∈ if c is discrete, (ii) w(c) ∈ if c is continuous, (iii) w(c) ∈ if c is generic. For a connector (e, p), w(e, p) be used as a function giving the threshold in discrete and continuous cases and the condition in generic case which is required for enabling the process p.
 (b)
u : is a function called the update function which satisfies the following conditions: For a connector c ∈ EP ∪ PE, let c = (e, p) ∈ EP or c = (p, e) ∈ PE. (i) u(c) ∈ if c is discrete. (ii) u(c) ∈ if c is continuous. (iii) If c is generic, then u(c) is a function in such that u(c)(M) is in D(τ(e)) for any marking M ∈ ℳ. For a connector c = (e, p) or c = (p, e), u(c) is used as a function which will update the mark of e.
 5.
d : P_{discrete} → is a mapping called the delay, where P_{discrete} is the set of discrete processes in P. For a discrete process p, d(p): ℳ → R^{≥0}is called the delay function of p.
 6.
α > 0 is a real number called the generic time. The generic time is used as the clock for generic processes.
We introduce a parameter t ∈ R^{≥ 0}called the time to a hybrid functional Petri net with extension H = (E, P, h, τ, C, d, α). Given a marking I called the initial marking, we define a marking M(t) called the marking at time t and a marking M_{ r }(t) called the reserved marking at time t for t ≥ 0 in the following way.
By convention, we denote M(e, t) = M(t)(e) and M_{ r }(e, t) = M_{ r }(t)(e) for e ∈ E. We define (t) by (e, t) = M(e, t)  M_{ r }(e, t) for discrete and continuous entities and (e, t) = M(e, t) for generic entities e.
First, we define M(0) = I, M_{ r }(e, 0) = 0 for all discrete and continuous entities e. For all generic entities e, M_{ r }(e, t) = null (the empty list) for any t ≥ 0. For t > 0, we define M (t) and M_{ r }(t) in the following way.
 1.If p is a discrete process, then for all connectors c = (e, p) ∈ EP the following conditions hold:
 (a)
(e, t) ≥ w(e, p)(M(t)) if a(c) ≠ inhibitor.
 (b)
(e, t) <w(e, p)(M(t)) if a(c) = inhibitor.
 (a)
 2.If p is a continuous process, then for all connectors c = (e, p) ∈ EP the following conditions hold:
 (a)
(e, t) ≥ w(e, p)(M(t)) if a(c) ≠ inhibitor.
 (b)
(e, t) ≤ w(e, p)(M(t)) if a(c) = inhibitor.
 (a)
 3.If p is a generic process, then for all connectors c = (e, p) ∈ EP the following conditions hold:
 (a)
w(e, p)( (t)) = true if a(c) ≠ inhibitor.
 (b)
w(e, p)( t)) = false if a(c) = inhibitor.
 (a)
If a disabled process turns to be enabled at time t, the process is said to be triggered at time t. If an enabled process turns to be disabled or a disabled process turns to be enabled at time t, the process is said to be switched at time t. If a discrete process p is triggered at time t, we say that the discrete process can be fired at time t + d(p)(M(t)). If a generic process p is triggered at time t, we say that the generic process can be fired at time t + α.
For an entity e ∈ E and time t, let S_{ d }(t) be the set of discrete processes which can be fired at time t, and let U_{ d }(t) be the set of discrete processes which are triggered at time t. For a discrete process p that can be fired at time t, we denote by q(p, t) the time when p is triggered. Let S_{ c }(t) be the set of continuous processes which are enabled at time t. Let S_{ g }(t) be the set of generic processes which can be fired at time t.
Note that we can choose a sufficiently small ε_{ t }> 0 such that in the interval [t  ε_{ t }, t), neither discrete nor generic process is triggered or can be fired and no continuous process is switched.
 1.
S_{ c }(t  ε_{ t }) = S_{ c }(t') for any t' ∈ [t  ε_{ t }, t) since no continuous process is switched in the interval [t  ε_{ t }, t).
 2.
(t') is constant on E  E_{continuous} in the interval [t  ε_{ t }, t) since neither discrete nor generic process is triggered or can be fired in the interval [t  ε_{ t }, t), where E_{continuous} = {e ∈ E e is continuous}.
 3.
For any continuous connector c, u(c)( (t')) is continuous on [t  ε_{ t }, t) since by definition u(c) is continuous for E_{continuous} and (t') is constant on E  E_{continuous} in the interval [t  ε_{ t }, t).
 1.
Tmp ← M(t  ε_{ t }), Tmp_{ r }← M_{ r }(t  ε_{ t })
 2.
if t = αk for some integer k ≥ 1 then
for each generic process p ∈ S_{ g }(t)
Tmp' ← Tmp
for each (e, p) ∈ EP with a(e, p) = process
Tmp'(e) ← u(e, p)(Tmp)
for each (p, e) ∈ PE
Tmp'(e) ← u(p, e)(Tmp)
 3.
for each continuous process p ∈ S_{ c }(t  ε_{ t })
Tmp' ← Tmp
for each (e, p) ∈ EP with a(e, p) = process
for each (p, e) ∈ PE
 4.
for each discrete process p ∈ S_{ d }(t)
Tmp' ← Tmp
for each (e, p) ∈ EP with a(e, p) = process
Tmp'(e) ← Tmp'(e)  u(e, p)( (q(p, t)))
for each (p, e) ∈ PE
Tmp'(e) ← Tmp'(e) + u(p, e)( (q(p, t)))
 5.
M(t) ← Tmp
 6.for each entity e with h(e) = discrete or continuous
 7.
M_{ r }(t) ← Tmp_{ r }.
We call M(t) (t ≥ 0) the behavior of H starting at the initial marking M(0) = I. □
In the next section, we will introduce the biological background and explain the modeling method of C. elegans vulval development mechanisms.
Biological background and modeling of C. elegans vulval development
Biological background of C. elegans vulval development
Modeling VPC fate specification mechanisms with HFPNe based on literature
Biological interpretation based on literature and assignment of each process in Figure 6
Wet experiments results published in literature  #1  #2  Reaction type  Refs 

Translocation of LIN3 emanated from AC to P5.p and P7.p  p _{ 1 }  LSMass(m_{1}*0.1*low, 0.1)  Translocation  
Translocation of LIN3 emanated from AC to P3.p, P4.p and P8.p  p _{ 2 }  LSMass(m_{1}*0.1*mid, 0.1)  Translocation  
ligands LIN3 binding to LET23 to form a ligandreceptor complex  p _{ 3 }  LSMass(m_{1}*0.1*high, 0.1)  Binding  
Two identical LIN3 LET23 complex combining to form a dimer  p _{ 4 }  LSMass(m_{3}*0.1, 0.5)  Dimerization  
Autophosphorylation following the dimerization of ligandreceptor complex  p _{ 5 }  LSMass(m_{4}*0.1, 0.5)  Autophosphorylation  
SEM5 is activated by LIN3 LET23 dimer  p _{ 6 }  LSMass(m_{5}*m_{6}*0.1, 0.5)  Enzymic reaction  
LET60 is activated by upstream SEM5  p _{ 7 }  LSMass(m_{7}*m_{8}*0.1, 0.5)  Enzymic reaction  
Inactive MPK1 is activated by upstream LET60  p _{ 8 }  LSMass(m_{9}*m_{10}*0.1, 0.5)  Enzymic reaction  
The movement of MPK1 from cytoplasm to nucleus  p _{ 9 }  LSMass(m_{11}*0.1, 0.5)  Translocation   
Active MPK1(N) downregulates the target genes of lst and transcribes the mRNA of lateral signal (LS)  p _{ 10 }  LSMass(m_{12}*0.1, 0.5)  Transcription  [9] 
LS mRNA is translated to LS molecules  p _{ 11 }  LSMass(m_{17}*0.1, 0.5)  Translation   
Translated LS molecules are released to combine with  p _{ 12 }  LSMass(m_{19}*0.1, 0.5)  Translocation  [34] 
LIN12 receptors  
LIN31/LIN1 complex is dissociated to individual active  p _{ 13 }  LSMass(m_{12}*m_{13}*0.1, 0.5)  Phosphorylation  
LIN31 and LIN1 by the phosphorylation of active MPK1  
Active a MPK1(N) acts as transcription factor to tran  p _{ 14 }  LSMass(m_{14}*0.1, 0.5)  Transcription  [42] 
scribe vulval genes to mRNA  
mRNA of vulval genes is translated and cause the 1  p _{ 15 }  LSMass(m_{16}*0.1, 0.5)  Translation  [42] 
cell fate  
LIN12 receptor received the LS molecules from the ad  p _{ 16 }  LSMass(m_{20}*m_{ κ }*1.0, 0.1)  Binding  
jacent Pn.p and shape a ligandreceptor complex  
LIN12 receptor received the LS molecules from its own  p _{ 17 }  LSMass(m_{20}*m_{ κ }*1.0, 0.1)  Binding  
Pn.p and shape a ligandreceptor complex  
LIN12 receptor received the LS molecules from the ad  p _{ 18 }  LSMass(m_{20}*m_{ κ }*0.1, 0.1)  Binding  
jacent Pn.p and shape a ligandreceptor complex  
Binding of LS ligands to LIN12/Notch receptor leads to  p _{ 19 }  LSMass(m_{21}*0.1, 0.5)  Shedding/Cleavage  [34] 
shedding of the LIN12/Notch extracellular domain via cleavage  
Cleaved intracellular domain of LIN12/Notch receptor move from cytoplasm to nucleus  p _{ 20 }  LSMass(m_{23}*0.1, 0.5)  Translocation  
Cleaved LIN12/Notch receptor promote the target lst genes transcribed into mRNA of lst genes  p _{ 21 }  LSMass(m_{24}*0.1, 0.5)  Transcription  
LST mRNA is translated to LST in cytoplasm  p _{ 22 }  LSMass(m_{26}*0.1, 0.5)  Translation   
LIN12 immediately induces lst expression thus prevents cells from engaging the mechanisms reducing LIN12 activity  p _{ 23 }  LSMass(m_{20}*lin 12_init, 0.1)  Production  [9] 
LIN3 emanating from hyp7 binds to LET23 to form a complex  p _{ 24 }  LSMass(m_{2}*m_{28}*0.1, 0.5)  Expression 
Entities in the HFPNe model of Figure 6
Entity Name  Variable (m_{ x }) 

LIN3(AC)  m _{1} 
LET23  m _{2} 
LIN3/LET23 complex  m _{3} 
LIN3/LET23 dimer  m _{4} 
LIN3/LET23 dimer{p}  m _{5} 
SEM5  m _{6} 
SEM5{active}  m _{7} 
LET60  m _{8} 
LET60{active}  m _{9} 
MPK1  m _{10} 
MPK1{active}(C)  m _{11} 
MPK1{active}(N)  m _{12} 
LIN1/LIN31 complex  m _{13} 
LIN31{active}  m _{14} 
LIN1{active}  m _{15} 
Vulval gene mRNA  m _{16} 
LS mRNA  m _{17} 
1° cell fate  m _{18} 
LS molecules(C)  m _{19} 
LIN12/Notch receptor  m _{20} 
LIN12R/LS complex  m _{21} 
Cleaved fraction of LIN12R/LS (extracellular domain)  m _{22} 
Intracellular domain of LIN12/LS complex (C)  m _{23} 
Intracellular domain of LIN12/LS complex (N)  m _{24} 
LAG1  m _{25} 
LST mRNA  m _{26} 
LST inhibitors  m _{27} 
LIN3 emanating from hyp7  m _{28} 
LIN15 in hyp7  m _{29} 
2° cell fate  m _{30} 
Final fate determined by Rule II  m _{31} 
Final fate determined by Rule I  m _{32} 
The modeling operation starts from the source process denoting an activity that the substance takes part in the reaction. Here we only explain the case of Ras/MAPK inductive signaling pathway: LIN3 ligands and corresponding receptors LET23 are assigned to the entities (m_{1} and m_{2}) connected from the source processes ( and ), respectively. Next, the ligandreceptor binding reaction where two entities (m_{1} and m_{2}) merge into an entity m_{3} denoting ligandreceptor complex is represented via the process p_{3}. Since two ligandreceptor complexes shape a dimer, the process p_{4} is used to represent the homodimerization connecting from the input entity m_{3} as well as connecting to the output entity m_{4} of LIN3/LET23 dimer. Note that the stoichiometry of the input connector of p_{4} is set to 2 due to the dimerization. The dimer is autophosphorylated subsequently which is modeled by using a phosphorylation process p_{5} connecting from and to the entities of m_{4} and m_{5}, respectively. Succedent reactions for the products of the canonical cascades: active SEM5 (m_{7}), LET60 (m_{9}), and MPK1 (m_{11}) are modeled in the same way using the processes of activation (p_{6}, p_{7} and p_{8}). Activated MPK1 then moves from the cytoplasm to the nucleus. This movement is modeled as a translocation reaction by p_{9}.
Based on the understanding of the literature and the hypothesis reported in [9], we first model downstream regulation of Ras/MAPK cascades and succedent intracellular reactions induced by LIN12/Notch signaling according to newly published literature. The details of the new biological facts are described in the caption of Figure 4. The new facts concerning the mechanisms of the downstream regulation of Ras/MAPK cascades are modeled as follows: The phosphorylation by m_{12} further disrupts the formation of LIN31/LIN1 complex (m_{13}) which applies the process of phosphorylation (p_{13}). The processes p_{14} and p_{15} are used to model the transcription of target genes and the translation of mRNA (m_{16}) regulated by LIN31 (m_{31}) that acts as a transcriptional activator promoting the 1° fate as a fate candidate (m_{18}).
Two biological fate determination rules applied to VPC fate model
When determining cell fates from biological points of view, several biological fate determination rules can be taken into account. One major biological fate determination rule (Rule II) based on temporal order has been applied to a qualitative model by Fisher et al. [9]. The approach is based on a discrete model. However, the other rules such as temporal interval based one (Rule I) cannot be handled in the same discrete model. This is because the model cannot deal with the quantitative properties (e.g., continuous feature) that are also important to biological processes, such as the concentration of proteins and reaction rates. With inspiring by this limitation of qualitative models, we employ these two major biological fate determination rules – Rule I and Rule II – to VPC fate model. The model has both discrete and continuous features.
 (ii)
For Rule II, the cell fate will be priorly adopted according to the temporal sequence of the first time epoch inducing overthreshold state. In Figure 7, we can observe that the first time epoch (i.e., "τ_{ i }of Rule II") inducing overthreshold state of 1° is earlier than 2°, and therefore the 1° fate will be adopted by Rule II no matter how long the overthreshold state of 1° will continue. Preliminary notations and mathematical definitions of two rules are given in the Additional file 1.
Properties of entities for the HFPNe model of Figure 6
Variable  Entity name  Entity type  Value type  Initial value  Variable description 

AC  AC  Generic  Boolean  true/false  Entity can be switched according to the genotype 
lin12  lin12  Generic  String  "wt"/"ko"/"gf"  Entity can be switched according to the genotype 
lin15  lin15  Generic  Boolean  true/false  Entity can be switched according to the genotype 
vul  vul  Generic  Boolean  true/false  Entity can be switched according to the genotype 
lst  lst  Generic  Boolean  true/false  Entity can be switched according to the genotype 
m _{31}  Pn.p_FinalFateII  Continuous  Double  0  Final Fate determined by Rule II 
m _{32}  Pn.p_FinalFateI  Continuous  Double  0  Final Fate determined by Rule I 
m _{33}  m _{33}  Generic  Boolean  true  An entity designed to judge if m_{18}/m_{30} exceeds respective threshold when lin12 is "wt"/"ko" 
m _{34}  m _{34}  Generic  Boolean  true  An entity for judging if m_{18}/m_{30} exceeds its threshold when lin12 is "gf" 
m _{35}  m _{35}  Generic  Boolean  false  An entity used as a flag to judge if m_{37} can get the time epoch when m_{18} is over threshold_1 
m _{36}  m _{36}  Generic  Boolean  false  An entity used as a flag to judge if m_{38} can get the time epoch when m_{18} is below threshold_1 
m _{37}  Pn.p_fate1_record1  Continuous  Double  0  An entity designed to reserve a time epoch that m_{18} exceeds threshold_1 
M _{38}  Pn.p_fate1_record2  Continuous  Double  0  An entity designed to reserve a time epoch that m_{18} decreases below threshold_1 
m _{39}  m _{39}  Generic  Boolean  false  An entity used as a flag to judge if m_{41} can get the time epoch when m_{30} is over threshold_2 
m _{40}  m _{40}  Generic  Boolean  false  An entity used as a flag to judge if m_{42} can get the time epoch when m_{30} is below threshold_2 
m _{41}  Pn.p_fate2_record1  Continuous  Double  0  An entity designed to reserve a time epoch that m_{30} exceeds threshold_2 
m _{42}  Pn.p fate2_record2  Continuous  Double  0  An entity designed to reserve a time epoch that m_{30} decreases below threshold_2 
m _{43}  Pn.p_m1_interval  Continuous  Double  0  Time difference between m_{38} and m_{37} that is the longest time interval at the present time epoch 
m _{44}  Pn.p_fate1_init  Continuous  Double  0  Time epoch that m_{18} exceeds threshold_1 to the initial one in the time span of m_{43} corresponding 
m _{45}  Pn.p_m2_interval  Continuous  Double  0  Time difference between m_{42} and m_{41} that is the longest time interval at the present time epoch 
m _{46}  Pn.p_fate2_init  Continuous  Double  0  Time epoch that m_{30} exceeds threshold_2 corresponding to the initial one in the time span of m_{45} 
  lin 3_init  Continuous  Double  100  Amount of LIN3 impulse emanating from AC 
  Steady_state_time(Gonad)  Continuous  Double  400  Time epoch of substance that achieve a steady state level 
simultime  Simulation_time  Continuous  Double  2000 getSamplingInterval(simulator)  The length of simulation time 
Properties of processes for the HFPNe model of Figure 6
Process  Process type  Process activity 

p _{25}  Generic  if (IfTime(simulator, steady_state_time(Gonad)) && AC == true) {return true;} else {return false;} 
p _{26}  Generic  if ("gf".equals(lin12)) {return false;} else {return true;} 
p _{27}  Generic  if ("gf".equals(lin12) && (getElapsedTime(simulator) > simultime+getSamplingInterval(simulator))) {return true;} else {return false;} 
p _{28}  Generic  if ((m35 == true && m36 == true) && m18 > = threshold_1) {return true;} else {return false;} 
p _{29}  Generic  if (m18 > = threshold_1 && m35 == false) {return true;} else {return false;} 
p _{30}  Generic  if ((m35 == true && m36 == false && m18 < threshold_1)  (m35 == true && m36 == false && m18 > = threshold_1 && IfTime(simulator, simultime))) {return true;} else {return false;} 
p _{31}  Generic  if (((m39 == true) && (m40 == true)) && (m30 > = threshold_2)) {return true;} else {return false;} 
p _{32}  Generic  if ((m30 > = threshold_2) && (m39 == false)) {return true;} else {return false;} 
p _{33}  Generic  if ((m39 == true && m40 == false && m30 < threshold_2)  (m39 == true && m40 == false && m30 > = threshold_2 && IfTime(simulator, simultime))) {return true;} else {return false;} 
p _{34}  Generic  if ((m35 == true && m36 == true)  (m35 == true && getElapsedTime(simulator)>simultime)) {return true;} else {return false;} 
p _{35}  Generic  if ((m39 == true && m40 == true)  (m39 == true && getElapsedTime(simulator)>simultime)) {return true;} else {return false;} 
p _{36}  Generic  if (getElapsedTime(simulator) > simultime+getSamplingInterval(simulator) && ("gf".equals(lin12) == false)) {return true;} else {return false;} 
p _{37}  Generic  if ((getElapsedTime(simulator) > simultime + getSamplingInterval(simulator)) && "gf".equals(lin12)) {return true;} else {return false;} 
Update functions of connectors for HFPNe model of Figure 6
Connector Name  Connector type  Update function 

Rule I: if ("gf" .equals(lin12)) == false holds, the connectors are updated as follows:  
c_{14}(p_{28}, m_{35})  process  return false; 
c_{15}(p_{28}, m_{36})  process  return false; 
c_{16}(m_{35}, p_{29})  process  return true; 
c_{17}(m_{36}, p_{30})  process  return true; 
c_{18}(p_{29}, m_{37})  process  return getElapsedTime(simulator); 
c_{19}(p_{30}, m_{38})  process  return getElapsedTime(simulator); 
c_{20}(p_{31}, m_{39})  process  return false; 
c_{21}(p_{31}, m_{40})  process  return false; 
c_{22}(m_{39}, p_{32})  process  return true; 
c_{23}(m_{40}, p_{33})  process  return true; 
c_{24}(p_{32}, m_{41})  process  return getElapsedTime(simulator); 
c_{25}(p_{33}, m_{42})  process  return getElapsedTime(simulator); 
c_{26}(p_{34}, m_{43})  process  if (m43! = 0 && m43 < m38m37) {return m38m37;} else if (m43! = 0 && P3p_m1_interval > = m38m37) {return m43;} else {return m38m37;} 
c_{27}(p_{34}, m_{44})  process  if (m44! = 0 && m43 < m38m37) {return m37;} else if (m44! = 0 && m43 > = m38m37) {return m44;} else {return m37;} 
c_{28}(p_{35}, m_{45})  process  if (m45! = 0 && m45 < m42m41) {return m42m41;} else if (m45! = 0 && m45 > = m42m41) {return m45;} else {return m42m41;} 
c_{29}(p_{35}, m_{46})  process  if (m46! = 0 && m45 < m42m41) {return m41;} else if (m46! = 0 && m45 > = m42m41) {return m46;} else {return m41;} 
c_{30}(p_{36}, m_{32})  process  if (m43 > = interval && m45 > = interval) {if (m44 < = m46) {return 1;} else {return 2;}} else if (m43 > = interval && m45 < interval) {return 1;} else if (m43 < interval && m45 > = interval) {return 2;} else{return 3;} 
c_{31}(p_{37}, m_{32})  process  if (m43 > = interval && m45 > = interval) {return 1;} else if (m43 > = interval && m45 < interval) {return 1;} else if (m43 < interval && m45 > = interval) {return 2;} else {return 3;} 
c_{32}(p_{25}, m 1)  process  lin3_init 
Rule II: if ("gf" .equals(lin12)) == false holds, the connectors are updated as follows:  
c 6(m_{33}, p_{26})  process  if (m18 > = threshold_1  m30 > = threshold_2) {return false;} else {return true;} 
c 7(m_{18}, p_{26})  process  return m18; 
c 8(m_{30}, p_{26})  process  return m30; 
c 9(p_{26}, m_{31})  process  if(m33 == true) {if(m18 > = threshold_1) {return 1;} else if (m30 > = threshold_2) {return 2;} else {return 3;}} else {return m31;} 
if ("gf" .equals(lin12)) == true holds, the connectors are updated as follows:  
c_{10}(m_{18}, p_{27})  process  return m18; 
c_{11}(m_{34}, p_{27})  process  if (m18 > = threshold_1 && m30 > = threshold_2) {return false;} else {return true;} 
c_{12}(m_{30}, p_{27})  process  return m30; 
c_{13}(p_{27}, m_{31})  process  if(m18 < threshold_1 && m30 < threshold_2) {return 3;} else if(m285 > = threshold_1) {return 1;} else {return 2;} 
Detailed parameters and functions of Figure 8.
Variable name  Update function 

c_{ i }(P_{1}, threshold_ 1)  if ("gf".equals(lin12)) {return lin12gf_threshold_1;} else {return normal_threshold_1;} 
c_{ j }(P_{1}, threshold_ 2)  if ("gf".equals(lin12)) {return lin12gf_threshold_2;} else {return normal_threshold_2;} 
c_{ k }(P_{2}, interval)  if ("gf".equals(lin12)) {return lin12gf_interval;} else {return normal_interval;} 
c_{ p }(P_{3}, lin 12_init)  if ("gf".equals(lin12)) {return LSMass(2.0,1.0);} else if ("ko".equals(lin12)) {return 0;} else {return LSMass(1.0,1.0);} 
Summary of the VPC fate patterns of 48 combinations concerning the AC and four mutants.
RowID  AC  Genotype  Fate Patterns (JA)  Fate Patterns (ST)  Fate Patterns (STA)  Ref. 

lin12 lin15 vul lst P3.pP4.pP5.pP6.pP7.pP8.p  P3.pP4.pP5.pP6.pP7.pP8.p  P3.pP4.pP5.pP6.pP7.pP8.p  
1^{†}  +  wt wt wt wt  [332123]      [49] 
2^{†}  +  wt wt wt ko  [331113]      
[3]  +  wt wt ko wt  [333333]  [333333]  [331113] [331123] [331133] [332313] [332323] [332333] [333323] [333333]  [32] 
4^{†}  +  wt wt ko ko  [333333]      u.d. 
[5]  +  wt ko wt wt  Unstable pattern (refer to Table 9)  [32]  
6^{†}  +  wt ko wt ko  [111111]      [46] 
[7]  +  wt ko ko wt  [333333]  [333333]  [333333]  
8  +  wt ko ko ko  [333333]      n.d. 
[9]  +  ko wt wt wt  [331113]  [331113]  [311111] [311112] [311113] [321111] [321112] [321113] [331111] [331112] [331113]   [32] 
10^{†}  +  ko wt wt ko  [331113]      u.d. 
[11]  +  ko wt ko wt  [333333]  [333333]  [311113] [311123] [311133] [331133] [331213] [331223] [332133] [332213] [332223] [333133] [333213] [333223]   [32] 
12  +  ko wt ko ko  [333333]      n.d. 
[13]  +  ko ko wt wt  [111111]  [111111]  [111111]  [32] 
14  +  ko ko wt ko  [111111]      n.d. 
15  +  ko ko ko wt  [333333]      n.d. 
16  +  ko ko ko ko  [333333]      n.d. 
[17]  +  gf wt wt wt  [222122]  [222122]  [122122] [222122] [322122]  [32] 
18  +  gf wt wt ko  [221112]      n.d. 
[19]  +  gf wt ko wt  [222222]  [222222]  [122222] [222222] [322222]  [32] 
20  +  gf wt ko ko  [222222]      n.d. 
[21]  +  gf ko wt wt  Unstable pattern (refer to Table 9)  [32]  
22  +  gf ko wt ko  [111111]      n.d. 
23  +  gf ko ko wt  [222222]      n.d. 
24  +  gf ko ko ko  [222222]      n.d. 
25^{†}    wt wt wt wt  [333333]      [52] 
26^{†}    wt wt wt ko  [333333]      [50] 
27    wt wt ko wt  [333333]      n.d. 
28    wt wt ko ko  [333333]      n.d. 
[29]    wt ko wt wt  Unstable pattern (refer to Table 9)  [32]  
30    wt ko wt ko  [111111]      n.d. 
31    wt ko ko wt  [333333]      n.d. 
32    wt ko ko ko  [333333]      n.d. 
[33]    ko wt wt wt  [333333]  [333333]  [333333]  [32] 
34    ko wt wt ko  [333333]      n.d. 
35    ko wt ko wt  [333333]      n.d. 
36    ko wt ko ko  [333333]      n.d. 
[37]    ko ko wt wt  [111111]  [111111]  [111111] [111121] [111131]  [32] 
38    ko ko wt ko  [111111]      n.d. 
39    ko ko ko wt  [333333]      n.d. 
40    ko ko ko ko  [333333]      n.d. 
[41]    gf wt wt wt  [222222]  [222222]  [122222] [222222] [322222]  [32] 
42^{†}    gf wt wt ko  [222222]      [50] 
[43]    gf wt ko wt  [222222]  [222222]  [222222]  
44    gf wt ko ko  [222222]      n.d. 
[45]    gf ko wt wt  Unstable pattern (refer to Table 9)  [32]  
46    gf ko wt ko  [111111]      n.d. 
47    gf ko ko wt  [222222]      n.d. 
48    gf ko ko ko  [222222]      n.d. 
 (i)
For 15 genotypes whose RowID are indicated by boldface and labeled with square brackets, the fate patterns of each genotype have the in vivo experimental data reported in [32] (refer to the column of "Fate Patterns (ST)" in Tables 8 and 9).
RowID [5]  RowID [21]  

Predicted patterns  Predicted patterns  
Fate Patterns (JA)  Fate Patterns (ST)  Fate Patterns (STA)  Fate Patterns (JA)  Fate Patterns (ST)  Fate Patterns (STA) 
[1/2,1/2,2,1,2,1/2] (Total fate number: 8)  [1/2,1/2,2,1,2,1/2]  [1/2,1/2,2,1,2,1/2] +a  [1/2,1/2,2,1,2,1/2] (Total fate number: 8)  [2,1/2,2,1,2,1/2]  [2,1/2,2,1,2,1/2] +a 
[112121] [122121] [212121]  [112121] [112122] [122121] [122122] [212121] [212122] [222121] [222122]  [112121] [112122] [112123] [122121] [122122] [212121] [212122] [212123] [222121] [222122] [312121] [312122] [312123]  [112121] [122121] [212121]  [212121] [212122] [222121] [222122]  [212121] [212122] [222121] [222122] 
Total fate number: 3  Total fate number: 3  
RowID [29]  RowID [45]  
Predicted patterns  Predicted patterns  
Fate Patterns (JA)  Fate Patterns (ST)  Fate Patterns (STA)  Fate Patterns (JA)  Fate Patterns (ST)  Fate Patterns (STA) 
[1/2,1/2,1/2,1/2,1/2,1/2]  [1/2,1/2,1/2,1/2,1/2,1/2]  [1/2,1/2,1/2,1/2,1/2,1/2]  [1/2,1/2,1/2,1/2,1/2,1/2]  [1/2,1/2,1/2,1/2,1/2,1/2]  [1/2,1/2,1/2,1/2,1/2,1/2] 
(Total fate number: 64)  +a  (Total fate number: 64)  +a  
[111111] [111112]  [111111] [111112]  [111111] [111112]  [111111] [111112]  [111111] [111112]  [111111] [111112] 
[111121] [111211]  [111121] [111122]  [111121] [111122]  [111121] [111211]  [111121] [111122]  [111121] [111122] 
[111212] [111221]  [111211] [111212]  [111211] [111212]  [111212] [111221]  [111211] [111212]  [111211] [111212] 
[112111] [112112]  [111221] [111222]  [111221] [111222]  [112111] [112112]  [111221] [111222]  [111221] [111222] 
[112121] [112211]  [112111] [112112]  [112111] [112112]  [112121] [112211]  [112111] [112112]  [112111] [112112] 
[112212] [121111]  [112121] [112122]  [112121] [112122]  [112212] [121111]  [112121] [112122]  [112121] [112122] 
[121112] [121121]  [112211] [112212]  [112211] [112212]  [121112] [121121]  [112211] [112212]  [112211] [112212] 
[121211] [121212]  [112221] [112222]  [112221] [112222]  [121211] [121212]  [112221] [112222]  [112221] [112222] 
[121221] [122111]  [121111] [121112]  [121111] [121112]  [121221] [122111]  [121111] [121112]  [121111] [121112] 
[122112] [122121]  [121121] [121122]  [121121] [121122]  [122112] [122121]  [121121] [121122]  [121121] [121122] 
[211111] [211112]  [121211] [121212]  [121131] [121211]  [211111] [211112]  [121211] [121212]  [121211] [121212] 
[211121] [211211]  [121221] [121222]  [121212] [121221]  [211121] [211211]  [121221] [121222]  [121221] [121222] 
[211212] [211221]  [122111] [122112]  [121222] [122111]  [211212] [211221]  [122111] [122112]  [122111] [122112] 
[212111] [212112]  [122121] [122122]  [122112] [122121]  [212111] [212112]  [122121] [122122]  [122121] [122122] 
[212121] [212211]  [122211] [122212]  [122122] [122211]  [212121] [212211]  [122211] [122212]  [122211] [122212] 
[212212]  [122221] [122222]  [122212] [122221]  [212212]  [122221] [122222]  [122221] [122222] 
[211111] [211112]  [122222] [211111]  [211111] [211112]  [211111] [211112]  
[211121] [211122]  [211112] [211121]  [211121] [211122]  [211121] [211122]  
[211211] [211212]  [211122] [211211]  [211211] [211212]  [211211] [211212]  
[211221] [211222]  [211212] [211221]  [211221] [211222]  [211221] [211222]  
[212111] [212112]  [211222] [212111]  [212111] [212112]  [212111] [212112]  
[212121] [212122]  [212112] [212121]  [212121] [212122]  [212121] [212122]  
[212211] [212212]  [212122] [212211]  [212211] [212212]  [212211] [212212]  
[212221] [212222]  [212212] [212221]  [212221] [212222]  [212221] [212222]  
[221111] [221112]  [212222] [221111]  [221111] [221112]  [221111] [221112]  
[221121] [221122]  [221112] [221121]  [221121] [221122]  [221121] [221122]  
[221211] [221212]  [221122] [221211]  [221211] [221212]  [221123] [221211]  
[221221] [221222]  [221212] [221221]  [221221] [221222]  [221212] [221221]  
[222111] [222112]  [221222] [222111]  [222111] [222112]  [221222] [221223]  
[222121] [222122]  [222112] [222121]  [222121] [222122]  [221321] [221322]  
[222211] [222212]  [222122] [222211]  [222211] [222212]  [221323] [222111]  
[222221] [222222]  [222212] [222221]  [222221] [222222]  [222112] [222121]  
[222222]  [222122] [222211]  
[222212] [222221]  
[222222] [222312]  
Total fate number: 31  Total fate number: 31 
 (ii)
For eight genotypes whose RowID are indicated with the superscript (†), the fate patterns of each genotype have been confirmed by model checking approach in the discrete model in [9], which are also consistent with the biological facts [35, 46, 49–53].
 (iii)
For the left 25 genotypes, the patterns of each genotype have only been verified in [9], because these genotypes are usually experimentally intractable. The reason is that, the population of double, triple or quadruple mutants might be technically difficult to be generated [9].
 (iv)
For four genotypes (i.e., RowID 5, 21, 29, and 45) are called unstable patterns, because genetic condition will lead to an unstable fate pattern as shown in Table 9.
In the next subsection, we will execute simulation to investigate the characteristics of predicted fate patterns of 48 genotypes, in particular, four genotypes leading to the unstable fate pattern, and to evaluate two rules employed to the VPC fate model by comparing with three simulation targets (i.e., JA, ST, and STA) as shown in Figure 1(b).
Simulationbased model checking approach of determining VPC specification by using Cell Illustrator
We first demonstrate how to assign parameters to the VPC fate model. Then, we consider three simulation targets to investigate the properties of fate patterns, and to evaluate two proposed rules. Finally, a large number of simulations are performed with the use of "HighSpeed Simulation Module" of Cell Illustrator. The simulation results are given in the form of fitting score and variation frequency of each pattern of 48 genotypes. The fitting score is a percentage of the total numbers of predicted patterns appeared in each genotype); the variation frequency is the number of each appearing fate pattern in the respective genotype during the simulation experiments.
Parameter assignment
The VPC fate model in Figure 5 reflects the interrelation of each substance. All parameters for the reaction rates of processes and the steady state of the substance are tuned manually with repeating simulation until concentration behaviors of proteins correspond to the biological facts. Note that it is hard to decide optimal values of these parameters, since data from biological experiments are very insufficient to determine them.
Thresholds used in the HFPNe model of Figure 6.
Connector Name  Connector description  Firing threshold 

c_{1}(m_{11}, p_{19})  Active MAPK1 represses the shedding process of ligandreceptor complex  4.3+rand()/10 
C_{2}(m_{5}, p_{22})  Active LIN3/LET23 dimer represses the expression of lst  0.5+rand()/10 
c_{3}(m_{27}, p_{6})  Expressed LST prevents SEM5 from becoming an active form  0.09+rand()/10 
c_{4}(m_{27}, p_{7})  Expressed LST prevents LET60 from becoming an active form  0.09+rand()/10 
c_{5}(m_{27}, p_{8})  Expressed LST prevents MPK1 from becoming an active form  0.09+rand()/10 
Three simulation targets for validation
[Obtaining fate patterns (JA) by using model checker: MOCHA]
Model checking is powerful technique for automatically verifying the system requirements. The essential idea of model checking is that, with an exhaustive exploring of all reachable states and transitions of a modeled system, system properties (expressed as a formal specification) are examined whether the properties are satisfied or not. A model checker (e.g., MOCHA[55]) accepts the modeled system and the specification as its inputs. The checker then outputs yes if the model satisfies the given specification and generates a counterexample otherwise. The counterexample indicates why the model does not satisfy the given specification. By repeating operations of revising the errors examined by the counterexamples, the modeled system can be refined to satisfy enough system specifications [1, 2].
 (1)
The details of predicted fate patterns of four unstable patterns (RowID 5, 21, 29, and 45) are not explicitly given. That is, only summarized patterns are given. However, it is important to reveal if all the expansions of predicted (summarized) patterns will appear even though the predicted patterns satisfy the given specification. For example, in the case of ac; lin12gf; lin15ko double mutants (RowID 45 in Table 8), the predicted pattern is [1/2, 1/2, 1/2, 1/2, 1/2, 1/2 ] in [9]. It is obvious that the pattern includes totally 2^{6} = 64 possible fate patterns, but it is still ambiguous if all these 64 patterns will be adopted in in vivo experiments.
 (2)
The distribution and variation of individual behavior of predicted fate patterns are not sufficient to understand the features of the fate patterns. In other words, it is necessary to clarify the occurrence probability (called variation frequency) of each predicted pattern, which is considered to facilitate obtaining an overall distribution of the predicted fate patterns, especially, the four unstable patterns.
To improve the first weakness, we introduce a new procedure GENERATE NECESSARY FATE PATTERNS by repeating the use of "counterexample" to obtain necessary fate patterns on MOCHA.
«PROCEDURE GENERATE NECESSARY FATE PATTERNS»
[******]: A state pattern of six VPC fates; * is one of three alternative fates (1°, 2°, and 3°); i.e., [111111] denotes a fate pattern with 1° for all VPCs. In total, there are 729(= 3^{6}) fate patterns.
RS: A set to store intermediate fate patterns required for a genotype.
Verify: A MOCHA procedure to verify if the predication holds for the model. The input is the RS. If there is no counterexample for the RS, ϕ will be returned. If the counterexample is generated for the RS, one of the counterexamples will be returned at random.
 1.
RS ? {[111111]}
 2.
do c ? Verify(RS)
 3.
RS ? RS ? {c}
 4.
while c ? ?
 5.
c ? Verify(RS\{[111111]})
 6.
if c = ?
 7.
return RS\{[111111]}
 8.
else
 9.
return RS
In the above procedure, step 1 is an initialization of RS. Steps 2 – 4 are the main part to obtain the fate patterns by repeating the use of "counterexample". Steps 5 – 9 are designed to check if the initial fate pattern is necessary or not. By executing the procedure, the results of required fate patterns of 48 genotypes are summarized in the fourth column of Table 8, and the first and fourth columns of Table 9. The predicted fate patterns of each genotype derived by using our procedure are collectively called Fate Patterns (JA) (JA for short). It is clear that the number of predicted fate patterns investigated by our method is far smaller than the one summarized by [9] (see Table 9). The source code used to obtain JA with MOCHA can be found at the CSML website [54].
[Fate patterns (ST) obtained from in vivo data]
Sternberg and Horvitz have summarized the VPC fate patterns of 15 genotypes by the observation of anatomy and the cell lineages in living C. elegans using Nomarski differential interference contrast optics (see Table 4 in the original paper [32]). We list the fate patterns of these 15 genotypes (refer to the fifth column in Table 8, and the second and fifth columns in Table 9).
[Fate patterns (STA) obtained from in vivo data including hybrid lineage observations]
In [32], we have noticed that some biological observations of cell lineages have not received enough attentions. These observations are likely difficult to be determined accurately according to the two criteria defined by Sternberg and Horvitz [32, 39]. The reason is that some lineages were not interpretable as 1° or 2° by two criteria, i.e., observed lineages may result in possible inaccuracy in the observations which includes misscoring adherence to ventral cuticle owing to deformations in cuticle as animals bend, as well as variations in division axes [32]. In some cases, lineages are hybrid, e.g., [S TT] in which [S] is the production of the characteristics of the 3° fate, and [TT] can be the lineage of either the 1° or 2° fate. Sternberg and Horvitz have suggested that hybrid sublineage is a result of imprecise decision, and the specification is allowed to have a number of outcomes. When a system comes close to a certain threshold, it can be considered that partial functions are involved to express the results in the formation of hybrid lineage [39].
Inspired by the observation of hybrid lineage, it seems reasonable to put those uninterpretable experimental data together with the fate patterns of [32] (i.e., ST) as the simulation targets for validation. By investigating the experimental results of the vulval cell lineage given in [32], we explain the cell fate of such an uninterpretable lineage as three plausible fate candidates: 1°, 2°, and 3° fates. Thus, the VPC fate pattern including the uninterpretable lineage is extended to three predicted fate patterns (see STA block in Figure 1(b)). For example, in the case of vulko (RowID 3 in Table 8), we observed such a cell lineage: [[S S] [S S] [S S] [S TT] [S S] [S S] ], in which [S S] is a cell lineage of 3° and [S TT] is a hybrid lineage and is interpretable by neither two criteria defined in [32] nor the method in [9]. This cell lineage is determined by the fate pattern [333?33]. We thus suppose to interpret this VPC fate pattern to three fate pattern extensions of [3331 33], [3332 33], and [3333 33], i.e., extend "?" (uncertain fate) to the 1°, 2°, and 3° fate. All the possible cell fate patterns including extended fate patterns are shown in the column Fate Patterns (STA) of Tables 8 and 9, i.e., STA is the combination of ST and the pattern extensions.
Simulation procedures
Here, we discuss several considerations of simulation environment adjustment in order to validate the VPC fate model and evaluate two rules.
When emulating cell stimulations in in silico experiments, it is important to adjust the cell to a constant condition before the stimulation. This condition is usually called a steady state. For example, simulation time periods of 400 [pt] and 200 [pt] are reserved representing LIN3 stimulations from AC and hyp7 respectively in the VPC fate model ([pt] is the virtual time unit of the HFPNe model). This is because the concentration of the receptor LET23 will be kept at a steady state after 200 [pt]. The time interval of the stimulations between AC and hyp7 is designed to investigate respective variation of fate patterns.
 (i)
The notion of lognormal distribution is introduced. For each process, lognormal distribution is applied as a system noise. Each standard deviation is given in the third column in Table 2, where LSMass(arg 1, arg 2) denotes the function of lognormal distribution, arg 1 denotes normal reaction speed without noise, and arg 2 is the standard deviation denoting the strength of the noise.
 (ii)
In the case of lin15ko mutant, a little temporal difference between the stimulations of LIN3 emanating from hyp7 to each Pn.p is designed to investigate the influence of ectopic stimuli.
 (iii)
The key thresholds involved in Ras/MAPK and LIN12/Notch signaling pathways are assigned to the variables, which depend on the function of rand() that fluctuates randomly between 0.0 and 1.0 (refer to Table 10). Here, uniform random number generated by Mersenne Twister random number generator is used.
We have tried 100, 1,000 and 10,000run simulation experiments. For all cases, the results clearly show that Rule I can generate high fitting score than Rule II. Among them, since 10,000run simulation can present the most precise behaviors of each fate pattern, in this paper we have concentrated on the 10,000run simulation results to investigate the fitting score and variation frequency of 48 genotypes on the VPC fate model. The simulation experiments are carried out on the workstation of Intel Xeon X5450 (3.0 GHz) processors with 16 Gbytes of memory. The machine has two CPUs which has four cores per CPU (number of total processor cores is eight). The theoretical computational performance is 96 GFLOPS. All simulations were run on Java 1.6 environment. The VPC fate model will take nearly 100 [sec] for one simulation on Cell Illustrator with a scriptbased simulation engine. It provides detailed visualization of system behaviors. On the other hand, Cell Illustrator is equipped with a "HighSpeed Simulation Module" specialized in producing simulation results only. It increases the simulation speed from 10 to 100 times than the scriptbased one. Hence, the 10,000 simulations can be conducted on a day on average, and the 48 sets can be executed on 48 days on a single core of a processor. We carried out all simulations within 6 days on our computing environment. We use the same model, the same procedures and also the same parameters to evaluate the fate patterns of all 48 genotypes with the three simulation targets (refer to Tables 8 and 9).
Results and Discussion
We now exhibit and discuss our simulation results on the fitting score of predicted fate patterns and the variation frequency of each appearing fate pattern, especially focusing on the four unstable patterns.
Details of the simulation results for RowID 5 in Table 9
RuleI_JA  RuleI_ST  RuleI_STA  

Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num. 
[112121]^{X}  0  [112121]^{X}  0  [212121]^{X}  0  [112121]^{X}  0  [212123]^{X}  0  
[122121]^{X}  9260  [112122]^{X}  0  [212122]^{X}  0  [112122]^{X}  0  [222121]^{X}  0  
[212121]^{X}  0  [122121]^{X}  9260  [222121]^{X}  0  [112123]^{X}  0  [222122]^{X}  0  
[122122]^{X}  0  [222122]^{X}  0  [122121]^{X}  9260  [312121]^{X}  0  
[122122]^{X}  0  [312122]^{X}  0  
[212121]^{X}  0  [312123]^{X}  0  
[212122]^{X}  0  
Total: 9260 (92.6%)  Total: 9260 (92.6%)  Total: 9260 (92.6%)  
[121121]  19  [121121]  19  [121121]  19  
[121321]  3  [121321]  3  [121321]  3  
[121323]  1  [121323]  1  [121323]  1  
[123121]  11  [123121]  11  [123121]  11  
[123321]  651  [123321]  651  [123321]  651  
[123323]  55  [123323]  55  [123323]  55  
Total: 740 (7.4%)  Total: 740 (7.4%)  Total: 740 (7.4%)  
RuleII_JA  RuleII_ST  RuleII _STA  
Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num. 
[112121]^{X}  11  [112121]^{X}  11  [212121]^{X}  1140  [112121]^{X}  11  [212123]^{X}  0  
[122121]^{X}  1289  [112122]^{X}  1  [212122]^{X}  410  [112122]^{X}  1  [222121]^{X}  253  
[212121]^{X}  1140  [122121]^{X}  1289  [222121]^{X}  253  [112123]^{X}  0  [222122]^{X}  96  
[122122]^{X}  496  [222122]^{X}  96  [122121]^{X}  1289  [312121]^{X}  0  
[122122]^{X}  496  [312122]^{X}  0  
[212121]^{X}  1140  [312123]^{X}  0  
[212122]^{X}  410  
Total: 2440 (24.4%)  Total: 3696 (36.96%)  Total: 3696 (36.96%)  
[111122]  1  [211212]  25  [111122]  1  [211222]  2  [111122]  1  [211222]  2 
[111221]  1  [211221]  45  [111221]  1  [212111]  77  [111221]  1  [212111]  77 
[112111]  1  [211222]  2  [112111]  1  [212112]  318  [112111]  1  [212112]  318 
[112112]  2  [212111]  77  [112112]  2  [212211]  95  [112112]  2  [212211]  95 
[112122]  1  [212112]  318  [112212]  3  [212212]  400  [112212]  3  [212212]  400 
[112212]  3  [212122]  410  [112221]  3  [212221]  449  [112221]  3  [212221]  449 
[112221]  3  [212211]  95  [121111]  142  [212222]  64  [121111]  142  [212222]  64 
[121111]  142  [212212]  400  [121112]  754  [221111]  54  [121112]  754  [221111]  54 
[121112]  754  [212221]  449  [121121]  318  [221112]  265  [121121]  318  [221112]  265 
[121121]  318  [212222]  64  [121122]  232  [221121]  110  [121122]  232  [221121]  110 
[121122]  232  [221111]  54  [121211]  61  [221122]  70  [121211]  61  [221122]  70 
[121211]  61  [221112]  265  [121212]  116  [221211]  18  [121212]  116  [221211]  18 
[121212]  116  [221121]  110  [121221]  1084  [221212]  32  [121221]  1084  [221212]  32 
[121221]  1084  [221122]  70  [121222]  73  [221221]  426  [121222]  73  [221221]  426 
[121222]  73  [221211]  18  [122111]  57  [221222]  45  [122111]  57  [221222]  45 
[122111]  57  [221212]  32  [122112]  226  [222111]  11  [122112]  226  [222111]  11 
[122112]  226  [221221]  426  [122211]  81  [222112]  33  [122211]  81  [222112]  33 
[122122]  496  [221222]  45  [122212]  237  [222211]  8  [122212]  237  [222211]  8 
[122211]  81  [222111]  11  [122221]  132  [222212]  23  [122221]  132  [222212]  23 
[122212]  237  [222112]  33  [122222]  33  [222221]  28  [122222]  33  [222221]  28 
[122221]  132  [222121]  253  [211111]  29  [222222]  11  [211111]  29  [222222]  11 
[122222]  33  [222122]  96  [211112]  77  [211112]  77  
[211111]  29  [222211]  8  [211121]  17  [211121]  17  
[211112]  77  [222212]  23  [211122]  5  [211122]  5  
[211121]  17  [222221]  28  [211211]  10  [211211]  10  
[211122]  5  [222222]  11  [211212]  25  [211212]  25  
[211211]  10  [211221]  45  [211221]  45  
Total: 7560 (75.6%)  Total: 6304 (63.4%)  Total: 6304 (63.4%) 
Details of the simulation results for RowID 21 in Table 9
RuleI_JA  RuleI_ST  RuleI_STA  

Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num. 
[112121]^{X}  145  [212121]^{X}  1440  [212121]^{X}  1440  [222121]^{X}  0  [212121]^{X}  1440  [222121]^{X}  0 
[122121]^{X}  6544  [212122]^{X}  0  [222122]^{X}  0  [212122]^{X}  0  [222122]^{X}  0  
Total: 8129 (81.29%)  Total: 1440 (14.4%)  Total: 1440 (14.4%)  
[112111]  5  [122111]  8  [112111]  5  [121212]  1339  [112111]  5  [121212]  1339 
[121111]  38  [112121]  145  [122111]  8  [112121]  145  [122111]  8  
[121121]  481  [121111]  38  [122121]  6544  [121111]  38  [122121]  6544  
[121212]  1339  [121121]  481  [121121]  481  
Total: 1871 (18.71%)  Total: 8560 (85.6%)  Total: 8560 (85.6%)  
RuleII_JA  RuleII_ST  RuleII_STA  
Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num. 
[112121]^{X}  0  [212121]^{X}  1440  [212121]^{X}  1440  [222121]^{X}  0  [212121]^{X}  1440  [222121]^{X}  0 
[122121]^{X}  7221  [212122]^{X}  0  [222122]^{X}  0  [212122]^{X}  0  [222122]^{X}  0  
Total: 8661 (86.61%)  Total: 1440 (14.4%)  Total: 1440 (14.4%)  
[121212]  1339  [121212]  1339  [122121]  7221  [121212]  1339  [122121]  7221  
Total: 1339 (13.39%)  Total: 8560 (85.6%)  Total: 8560 (85.6%) 
Details of the simulation results for RowID 29 in Table 9
RuleI_JA  RuleI_ST  RuleI_STA  

Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num. 
[111111]^{X}  0  [111111]^{X}  0  [211112]^{X}  0  [111111]^{X}  0  [211111]^{X}  0  
[111112]^{X}  0  [111112]^{X}  0  [211121]^{X}  0  [111112]^{X}  0  [211112]^{X}  0  
[111121]^{X}  0  [111121]^{X}  0  [211122]^{X}  0  [111121]^{X}  0  [211121]^{X}  0  
[111211]^{X}  0  [111122]^{X}  0  [211211]^{X}  0  [111122]^{X}  0  [211122]^{X}  0  
[111212]^{X}  0  [111211]^{X}  0  [211212]^{X}  0  [111211]^{X}  0  [211211]^{X}  0  
[111221]^{X}  0  [111212]^{X}  0  [211221]^{X}  0  [111212]^{X}  0  [211212]^{X}  0  
[112111]^{X}  0  [111221]^{X}  0  [211222]^{X}  0  [111221]^{X}  0  [211221]^{X}  0  
[112112]^{X}  0  [111222]^{X}  0  [212111]^{X}  0  [111222]^{X}  0  [211222]^{X}  0  
[112121]^{X}  0  [112111]^{X}  0  [212112]^{X}  0  [112111]^{X}  0  [212111]^{X}  0  
[112211]^{X}  0  [112112]^{X}  0  [212121]^{X}  0  [112112]^{X}  0  [212112]^{X}  0  
[112212]^{X}  0  [112121]^{X}  0  [212122]^{X}  0  [112121]^{X}  0  [212121]^{X}  0  
[121111]^{X}  0  [112122]^{X}  0  [212211]^{X}  0  [112122]^{X}  0  [212122]^{X}  0  
[121112]^{X}  0  [112211]^{X}  0  [212212]^{X}  0  [112211]^{X}  0  [212211]^{X}  0  
[121121]^{X}  120  [112212]^{X}  0  [212221]^{X}  0  [112212]^{X}  0  [212212]^{X}  0  
[121211]^{X}  0  [112221]^{X}  0  [212222]^{X}  0  [112221]^{X}  0  [212221]^{X}  0  
[121212]^{X}  0  [112222]^{X}  0  [221111]^{X}  0  [112222]^{X}  0  [212222]^{X}  0  
[121221]^{X}  4393  [121111]^{X}  0  [221112]^{X}  0  [121111]^{X}  0  [221111]^{X}  0  
[122111]^{X}  0  [121112]^{X}  0  [221121]^{X}  0  [121112]^{X}  0  [221112]^{X}  0  
[122112]^{X}  0  [121121]^{X}  120  [221122]^{X}  0  [121121]^{X}  120  [221121]^{X}  0  
[122121]^{X}  4898  [121122]^{X}  0  [221211]^{X}  0  [121122]^{X}  0  [221122]^{X}  0  
[211111]^{X}  0  [121211]^{X}  0  [221212]^{X}  0  [121131]^{X}  0  [221211]^{X}  0  
[211112]^{X}  0  [121212]^{X}  0  [221221]^{X}  0  [121211]^{X}  0  [221212]^{X}  0  
[211121]^{X}  0  [121221]^{X}  4393  [221222]^{X}  0  [121212]^{X}  0  [221221]^{X}  0  
[211211]^{X}  0  [121222]^{X}  0  [222111]^{X}  0  [121221]^{X}  4393  [221222]^{X}  0  
[211212]^{X}  0  [122111]^{X}  0  [222112]^{X}  0  [121222]^{X}  0  [222111]^{X}  0  
[211221]^{X}  0  [122112]^{X}  0  [222121]^{X}  0  [122111]^{X}  0  [222112]^{X}  0  
[212111]^{X}  0  [122121]^{X}  4898  [222122]^{X}  0  [122112]^{X}  0  [222121]^{X}  0  
[212112]^{X}  0  [122122]^{X}  0  [222211]^{X}  0  [122121]^{X}  4898  [222122]^{X}  0  
[212121]^{X}  0  [122211]^{X}  0  [222212]^{X}  0  [122122]^{X}  0  [222211]^{X}  0  
[212211]^{X}  0  [122212]^{X}  0  [222221]^{X}  0  [122211]^{X}  0  [222212]^{X}  0  
[212212]^{X}  0  [122221]^{X}  575  [222222]^{X}  0  [122212]^{X}  0  [222221]^{X}  0  
[122222]^{X}  0  [122221]^{X}  575  [222222]^{X}  0  
[211111]^{X}  0  [122222]^{X}  0  
Total: 9411 (94.11%)  Total: 9986 (99.86%)  Total: 9986 (99.86%)  
[121223]  14  [122221]  575  [121223]  14  [121223]  14  
Total: 589 (5.89%)  Total: 14 (0.14%)  Total: 14 (0.14%)  
RuleII_JA  RuleII_ST  RuleII_STA  
Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num. 
[111111]^{X}  0  [111111]^{X}  0  [211112]^{X}  7  [111111]^{X}  0  [211111]^{X}  5  
[111112]^{X}  0  [111112]^{X}  0  [211121]^{X}  12  [111112]^{X}  0  [211112]^{X}  7  
[111121]^{X}  1  [111121]^{X}  1  [211122]^{X}  5  [111121]^{X}  1  [211121]^{X}  12  
[111211]^{X}  0  [111122]^{X}  0  [211211]^{X}  38  [111122]^{X}  0  [211122]^{X}  5  
[111212]^{X}  0  [111211]^{X}  0  [211212]^{X}  110  [111211]^{X}  0  [211211]^{X}  38  
[111221]^{X}  3  [111212]^{X}  0  [211221]^{X}  62  [111212]^{X}  0  [211212]^{X}  110  
[112111]^{X}  0  [111221]^{X}  3  [211222]^{X}  15  [111221]^{X}  3  [211221]^{X}  62  
[112112]^{X}  1  [111222]^{X}  0  [212111]^{X}  47  [111222]^{X}  0  [211222]^{X}  15  
[112121]^{X}  14  [112111]^{X}  0  [212112]^{X}  124  [112111]^{X}  0  [212111]^{X}  47  
[112211]^{X}  0  [112112]^{X}  1  [212121]^{X}  1214  [112112]^{X}  1  [212112]^{X}  124  
[112212]^{X}  4  [112121]^{X}  14  [212122]^{X}  405  [112121]^{X}  14  [212121]^{X}  1214  
[121111]^{X}  5  [112122]^{X}  3  [212211]^{X}  125  [112122]^{X}  3  [212122]^{X}  405  
[121112]^{X}  12  [112211]^{X}  0  [212212]^{X}  533  [112211]^{X}  0  [212211]^{X}  125  
[121121]^{X}  98  [112212]^{X}  4  [212221]^{X}  448  [112212]^{X}  4  [212212]^{X}  533  
[121211]^{X}  238  [112221]^{X}  2  [212222]^{X}  82  [112221]^{X}  2  [212221]^{X}  448  
[121212]^{X}  850  [112222]^{X}  1  [221111]^{X}  3  [112222]^{X}  1  [212222]^{X}  82  
[121221]^{X}  1271  [121111]^{X}  5  [221112]^{X}  9  [121111]^{X}  5  [221111]^{X}  3  
[122111]^{X}  12  [121112]^{X}  12  [221121]^{X}  46  [121112]^{X}  12  [221112]^{X}  9  
[122112]^{X}  70  [121121]^{X}  98  [221122]^{X}  36  [121121]^{X}  98  [221121]^{X}  46  
[122121]^{X}  1263  [121122]^{X}  54  [221211]^{X}  79  [121122]^{X}  54  [221122]^{X}  36  
[211111]^{X}  5  [121211]^{X}  238  [221212]^{X}  296  [121131]^{X}  0  [221211]^{X}  79  
[211112]^{X}  7  [121212]^{X}  850  [221221]^{X}  441  [121211]^{X}  238  [221212]^{X}  296  
[211121]^{X}  12  [121221]^{X}  1271  [221222]^{X}  88  [121212]^{X}  850  [221221]^{X}  441  
[211211]^{X}  38  [121222]^{X}  246  [222111]^{X}  3  [121221]^{X}  1271  [221222]^{X}  88  
[211212]^{X}  110  [122111]^{X}  12  [222112]^{X}  16  [121222]^{X}  246  [222111]^{X}  3  
[211221]^{X}  62  [122112]^{X}  70  [222121]^{X}  227  [122111]^{X}  12  [222112]^{X}  16  
[212111]^{X}  47  [122121]^{X}  1263  [222122]^{X}  103  [122112]^{X}  70  [222121]^{X}  227  
[212112]^{X}  124  [122122]^{X}  511  [222211]^{X}  6  [122121]^{X}  1263  [222122]^{X}  103  
[212121]^{X}  1214  [122211]^{X}  100  [222212]^{X}  45  [122122]^{X}  511  [222211]^{X}  6  
[212211]^{X}  125  [122212]^{X}  403  [222221]^{X}  28  [122211]^{X}  100  [222212]^{X}  45  
[212212]^{X}  533  [122221]^{X}  138  [222222]^{X}  10  [122212]^{X}  403  [222221]^{X}  28  
[122222]^{X}  32  [122221]^{X}  138  [222222]^{X}  10  
[211111]^{X}  5  [122222]^{X}  32  
Total: 6119 (61.19%)  Total: 10000 (100%)  Total: 10000 (100%)  
[112122]  3  [122211]  100  
[112221]  2  [122212]  403  [212122]  405  [221121]  46  [221222]  88  [222211]  6 
[112222]  1  [122221]  138  [212221]  448  [221122]  36  [222111]  3  [222212]  45 
[121122]  54  [122222]  32  [212222]  82  [221211]  79  [222112]  16  [222221]  28 
[121222]  246  [211122]  5  [221111]  3  [221212]  296  [222121]  227  [222222]  10 
[122122]  511  [211222]  15  [221112]  9  [221221]  441  [222122]  103  
Total: 3881 (38.81%) 
Details of the simulation results for RowID 45 in Table 9
RuleI_JA  RuleI_ST  RuleI_STA  

Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num. 
[111111]^{X}  0  [111111]^{X}  0  [211122]^{X}  0  [111111]^{X}  0  [211122]^{X}  0  
[111112]^{X}  0  [111112]^{X}  0  [211211]^{X}  0  [111112]^{X}  0  [211211]^{X}  0  
[111121]^{X}  0  [111121]^{X}  0  [211212]^{X}  0  [111121]^{X}  0  [211212]^{X}  0  
[111211]^{X}  2  [111122]^{X}  0  [211221]^{X}  0  [111122]^{X}  0  [211221]^{X}  0  
[111212]^{X}  32  [111211]^{X}  2  [211222]^{X}  0  [111211]^{X}  2  [211222]^{X}  0  
[111221]^{X}  0  [111212]^{X}  32  [212111]^{X}  108  [111212]^{X}  32  [212111]^{X}  108  
[112111]^{X}  6  [111221]^{X}  0  [212112]^{X}  0  [111221]^{X}  0  [212112]^{X}  0  
[112112]^{X}  0  [111222]^{X}  0  [212121]^{X}  1336  [111222]^{X}  0  [212121]^{X}  1336  
[112121]^{X}  115  [112111]^{X}  6  [212122]^{X}  0  [112111]^{X}  6  [212122]^{X}  0  
[112211]^{X}  0  [112112]^{X}  0  [212211]^{X}  0  [112112]^{X}  0  [212211]^{X}  0  
[112212]^{X}  0  [112121]^{X}  115  [212212]^{X}  0  [112121]^{X}  115  [212212]^{X}  0  
[121111]^{X}  0  [112122]^{X}  0  [212221]^{X}  0  [112122]^{X}  0  [212221]^{X}  0  
[121112]^{X}  0  [112211]^{X}  0  [212222]^{X}  0  [112211]^{X}  0  [212222]^{X}  0  
[121121]^{X}  94  [112212]^{X}  0  [221111]^{X}  0  [112212]^{X}  0  [221111]^{X}  0  
[121211]^{X}  62  [112221]^{X}  0  [221112]^{X}  0  [112221]^{X}  0  [221112]^{X}  0  
[121212]^{X}  1430  [112222]^{X}  0  [221121]^{X}  0  [112222]^{X}  0  [221121]^{X}  0  
[121221]^{X}  2795  [121111]^{X}  0  [221122]^{X}  0  [121111]^{X}  0  [221122]^{X}  0  
[122111]^{X}  1  [121112]^{X}  0  [221211]^{X}  0  [121112]^{X}  0  [221123]^{X}  0  
[122112]^{X}  0  [121121]^{X}  94  [221212]^{X}  0  [121121]^{X}  94  [221211]^{X}  0  
[122121]^{X}  4019  [121122]^{X}  0  [221221]^{X}  0  [121122]^{X}  0  [221212]^{X}  0  
[211111]^{X}  0  [121211]^{X}  62  [221222]^{X}  0  [121211]^{X}  62  [221221]^{X}  0  
[211112]^{X}  0  [121212]^{X}  1430  [222111]^{X}  0  [121212]^{X}  1430  [221222]^{X}  0  
[211121]^{X}  0  [121221]^{X}  2795  [222112]^{X}  0  [121221]^{X}  2795  [221223]^{X}  0  
[211211]^{X}  0  [121222]^{X}  0  [222121]^{X}  0  [121222]^{X}  0  [221321]^{X}  0  
[211212]^{X}  0  [122111]^{X}  1  [222122]^{X}  0  [122111]^{X}  1  [221322]^{X}  0  
[211221]^{X}  0  [122112]^{X}  0  [222211]^{X}  0  [122112]^{X}  0  [221323]^{X}  0  
[212111]^{X}  108  [122121]^{X}  4019  [222212]^{X}  0  [122121]^{X}  4019  [222111]^{X}  0  
[212112]^{X}  0  [122122]^{X}  0  [222221]^{X}  0  [122122]^{X}  0  [222112]^{X}  0  
[212121]^{X}  1336  [122211]^{X}  0  [222222]^{X}  0  [122211]^{X}  0  [222121]^{X}  0  
[212211]^{X}  0  [122212]^{X}  0  [122212]^{X}  0  [222122]^{X}  0  
[212212]^{X}  0  [122221]^{X}  0  [122221]^{X}  0  [222211]^{X}  0  
[122222]^{X}  0  [122222]^{X}  0  [222212]^{X}  0  
[211111]^{X}  0  [211111]^{X}  0  [222221]^{X}  0  
[211112]^{X}  0  [211112]^{X}  0  [222222]^{X}  0  
[211121]^{X}  0  [211121]^{X}  0  [222312]^{X}  0  
Total: 10000 (100%)  Total: 10000 (100%)  Total: 10000 (100%)  
RuleII_JA  RuleII_ST  RuleII_STA  
Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num.  Patterns  Num. 
[111111]^{X}  0  [111111]^{X}  0  [211122]^{X}  0  [111111]^{X}  0  [211122]^{X}  0  
[111112]^{X}  0  [111112]^{X}  0  [211211]^{X}  0  [111112]^{X}  0  [211211]^{X}  0  
[111121]^{X}  0  [111121]^{X}  0  [211212]^{X}  0  [111121]^{X}  0  [211212]^{X}  0  
[111211]^{X}  0  [111122]^{X}  0  [211221]^{X}  0  [111122]^{X}  0  [211221]^{X}  0  
[111212]^{X}  0  [111211]^{X}  0  [211222]^{X}  0  [111211]^{X}  0  [211222]^{X}  0  
[111221]^{X}  0  [111212]^{X}  0  [212111]^{X}  0  [111212]^{X}  0  [212111]^{X}  0  
[112111]^{X}  0  [111221]^{X}  0  [212112]^{X}  0  [111221]^{X}  0  [212112]^{X}  0  
[112112]^{X}  0  [111222]^{X}  0  [212121]^{X}  1444  [111222]^{X}  0  [212121]^{X}  1444  
[112121]^{X}  0  [112111]^{X}  0  [212122]^{X}  0  [112111]^{X}  0  [212122]^{X}  0  
[112211]^{X}  0  [112112]^{X}  0  [212211]^{X}  0  [112112]^{X}  0  [212211]^{X}  0  
[112212]^{X}  0  [112121]^{X}  0  [212212]^{X}  0  [112121]^{X}  0  [212212]^{X}  0  
[121111]^{X}  0  [112122]^{X}  0  [212221]^{X}  0  [112122]^{X}  0  [212221]^{X}  0  
[121112]^{X}  0  [112211]^{X}  0  [212222]^{X}  0  [112211]^{X}  0  [212222]^{X}  0  
[121121]^{X}  0  [112212]^{X}  0  [221111]^{X}  0  [112212]^{X}  0  [221111]^{X}  0  
[121211]^{X}  0  [112221]^{X}  0  [221112]^{X}  0  [112221]^{X}  0  [221112]^{X}  0  
[121212]^{X}  1462  [112222]^{X}  0  [221121]^{X}  0  [112222]^{X}  0  [221121]^{X}  0  
[121221]^{X}  2859  [121111]^{X}  0  [221122]^{X}  0  [121111]^{X}  0  [221122]^{X}  0  
[122111]^{X}  0  [121112]^{X}  0  [221211]^{X}  0  [121112]^{X}  0  [221123]^{X}  0  
[122112]^{X}  0  [121121]^{X}  0  [221212]^{X}  0  [121121]^{X}  0  [221211]^{X}  0  
[122121]^{X}  4235  [121122]^{X}  0  [221221]^{X}  0  [121122]^{X}  0  [221212]^{X}  0  
[211111]^{X}  0  [121211]^{X}  0  [221222]^{X}  0  [121211]^{X}  0  [221221]^{X}  0  
[211112]^{X}  0  [121212]^{X}  1462  [222111]^{X}  0  [121212]^{X}  1462  [221222]^{X}  0  
[211121]^{X}  0  [121221]^{X}  2859  [222112]^{X}  0  [121221]^{X}  2859  [221223]^{X}  0  
[211211]^{X}  0  [121222]^{X}  0  [222121]^{X}  0  [121222]^{X}  0  [221321]^{X}  0  
[211212]^{X}  0  [122111]^{X}  0  [222122]^{X}  0  [122111]^{X}  0  [221322]^{X}  0  
[211221]^{X}  0  [122112]^{X}  0  [222211]^{X}  0  [122112]^{X}  0  [221323]^{X}  0  
[212111]^{X}  0  [122121]^{X}  4235  [222212]^{X}  0  [122121]^{X}  4235  [222111]^{X}  0  
[212112]^{X}  0  [122122]^{X}  0  [222221]^{X}  0  [122122]^{X}  0  [222112]^{X}  0  
[212121]^{X}  1444  [122211]^{X}  0  [222222]^{X}  0  [122211]^{X}  0  [222121]^{X}  0  
[212211]^{X}  0  [122212]^{X}  0  [122212]^{X}  0  [222122]^{X}  0  
[212212]^{X}  0  [122221]^{X}  0  [122221]^{X}  0  [222211]^{X}  0  
[122222]^{X}  0  [122222]^{X}  0  [222212]^{X}  0  
[211111]^{X}  0  [211111]^{X}  0  [222221]^{X}  0  
[211112]^{X}  0  [211112]^{X}  0  [222222]^{X}  0  
[211121]^{X}  0  [211121]^{X}  0  [222312]^{X}  0  
Total: 10000 (100%)  Total: 10000 (100%)  Total: 10000 (100%) 
From the variation distribution as shown in Figure 9, [122121] is the fate pattern that can be most easily observed in in vivo experiments because of the high appearance. In contrast, [112121] is likely difficult to be monitored due to the relative low variation frequency. Each graph comprises three parts of comparison results obtained from JA, ST and STA (see (a), (b), and (c) in Figure 9) by using both Rule I and Rule II. In each part, the variation frequency results of matched patterns are given on the left side while that of unmatched patterns are exhibited on the right side. Figures 10, 11 and 12 are built up in the same way.
 (1)Rule I gives more genotypes (RowID) with high fitting scores nearly 100% than Rule II to cover predicted patterns of three simulation targets. In more details,
 (i)
For 44 genotypes (i.e., the genotypes without unstable fate patterns), each genotype can generate the fitting score nearly 95%, in which the fitting scores of 41 genotypes are all 100% (refer to Additional File 1) by using both Rule I and Rule II. In other words, our model shows good robustness, and can produce stable cell fate patterns even we intentionally add the noise to capture the behaviors of the model fluctuations.
 (ii)
For the left three genotypes of four unstable fate patterns, lin15ko mutant (RowID 5) produces all 92.6% for JA, ST and STA by using Rule I, as opposed to 24.4% (for JA) and 36.96% (for ST and STA) by using Rule II; ac; lin15ko mutant (RowID 29) produces high coverage of 94.11% (for JA) and 99.86% (for both ST and STA); and ac; lin12gf; lin15ko double mutants (RowID 45) generates all 100% with both rules for three simulation targets.
 (iii)
For lin15; lin12ko double mutants (RowID 21), the fitting scores in the results of ST and STA drop to a quite low value below 15% by using either Rule I or Rule II. This is because P3.p is allowed to adopt the 1° fate in JA (in silico model), but is not allowed in ST and STA (in vivo model). This fact has also been confirmed in the preceding study [9] that in silico model can faithfully produce the 1° fate for P3.p. From these observations, it can be considered that P3.p has a greater possibility to adopt the 1° fate, if the number of animals for the in vivo experiments can be increased to 10,000. In this way, the fitting score can be exactly increased to exceed more than 81% from the present 15%.
 (i)
 (2)
For lin15ko (RowID 5) and ac;lin15ko (RowID 29) genotypes, we can see that nearly 10% patterns in JA, ST and STA are not matched (refer to Tables 11 and 13). These patterns still have the possibility to be examined in in vivo experiments by means of enlarging animal population.
 (3)
Since the experiment data about hybrid lineages has not been taken into account as we have pointed out, we interpret these uninterpretable lineages to three fate pattern extensions as listed in the column of STA which includes more extensive possible fate patterns than ST. In the simulation results, the results of lin12ko mutant (RowID 9) interest us (refer to the Additional file 1). We can find that the fate pattern [331133] appeared in our simulation results of STA, which is the extended fate pattern from the hybrid lineage data exhibited in [32]. This hybrid lineage gives new insights on the imprecise fate decision and the fate specification mechanisms when a system comes close to a certain threshold.
Taking these observations together, we conclude that Rule I relying on the temporal interval can be considered more reasonable and proper in evaluating the VPC fate specification than Rule II.
Conclusion
The contribution of this paper is a novel method of modeling and simulating biological systems with the use of model checking approach on the hybrid functional Petri net with extension. A quantitative HFPNe model for the vulval development is constructed based on the literature. Then we employ two major biological fate determination rules to the quantitative model. These two rules are investigated by applying model checking approach in a quantitative manner. Three simulation targets of this model are considered: The first one is the fate patterns obtained by improving the qualitative method of Fisher et al. [9]; the second target is the fate patterns summarized by Sternberg and Horvitz [32]; and the last one is derived from the biological experiments in [32] including the hybrid lineage data. We have performed 480,000 simulations on the quantitative HFPNe model by using Cell Illustrator. We have examined the consistency and the correctness of the model, and evaluated the two rules of VPC fate specification. We consider that this computational experiment and the biological evaluation could not be easily put into practice without the HFPNe modeling method and the functions of Cell Illustrator, especially, the "HighSpeed Simulation Module". Finally, in silico simulation results have been given in the form of the fitting score and the variation frequency of each pattern. We have discussed the results and summarized several plausible explanations.
Notes
Appendix: Abbreviations
 AC:

(gonadal anchor cell)
 ac:

(absence of an anchor cell)
 EGFR:

(the epidermal growth factor receptor)
 HFPNe:

(hybrid functional Petri net with extension)
 JA:

(fate patterns obtained with our extended method from the discrete model of Fisher et al. [9])
 LBS:

(LAG1 binding site)
 lst:

(lateral signal target)
 MAPK:

(mitogenactivated protein kinases)
 ST:

(fate patterns summarized by Sternberg and Horvitz [32])
 STA:

(fate pattern combinations consisting of ST and the pattern extensions)
 VPC:

(vulval precursor cell)
 synMuv:

(synthetic Multivulva)
Declarations
Acknowledgements
We are grateful to the anonymous reviewers for their valuable hints and suggestions. This work was supported by KAKENHI (GrantinAid for Scientific Research) on Priority Areas "Systems Genomics" from the Ministry of Education, Culture, Sports, Science and Technology of Japan.
Authors’ Affiliations
References
 Clarke EM, Grumberg O, Peled DA: Model Checking. 1999, The MIT PressGoogle Scholar
 Bérard B, Bidoit M, Finkel A, Laroussinie F, Petit A, Petrucci L, Schnoebelen P, McKenzie P: Systems and Software Verification: ModelChecking Techniques and Tools. 2001, SpringerView ArticleGoogle Scholar
 Clarke EM, Emerson EA: Design and synthesis of synchronization skeletons using branching time temporal logic. Logic of Programs. 1982, 5271. New York: Springer Berlin/HeidelbergView ArticleGoogle Scholar
 Queille JP, Sifakis J: Specification and verification of concurrent systems in CESAR. Lecture Notes in Computer Science. 1982, 137: 337351.View ArticleGoogle Scholar
 Chabrier N, Fages F: Symbolic model checking of biochemical networks. Proceedings of CMSB 2003 (Computational Methods in Systems Biology). 2003, 149162. Italy: Springer Berlin/HeidelbergGoogle Scholar
 Antoniotti M, Policriti A, Ugel N, Mishra B: Model building and model checking for biochemical processes. Cell Biochem Biophys. 2003, 38 (3): 271286.View ArticlePubMedGoogle Scholar
 Batt G, Ropers D, de Jong H, Geiselmann J, Mateescu R, Page M, Schneider D: Validation of qualitative models of genetic regulatory networks by model checking: analysis of the nutritional stress response in Escherichia coli. Bioinformatics. 2005, 21 (Suppl 1): i19i28.View ArticlePubMedGoogle Scholar
 Calder M, Vyshemirsky V, Gilbert D, Orton R: Analysis of signalling pathways using the prism model checker. Proceedings of CMSB 2005 (Computational Methods in Systems Biology). Edited by: Plotkin G. 2005, 179190. University of EdinburghGoogle Scholar
 Fisher J, Piterman N, Hajnal A, Henzinger TA: Predictive modeling of signaling crosstalk during C. elegans vulval development. PLoS Comput Biol. 2007, 3 (5): e92PubMed CentralView ArticlePubMedGoogle Scholar
 Heath J, Kwiatkowska M, Norman G, Parker D, Tymchyshyn O: Probabilistic model checking of complex biological pathways. Theor Comput Sci. 2008, 391 (3): 239257.View ArticleGoogle Scholar
 Kwiatkowska MZ, Norman G, Parker D: Using probabilistic model checking in systems biology. SIGMETRICS Performance Evaluation Review. 2008, 35 (4): 1421.View ArticleGoogle Scholar
 Monteiro PT, Ropers D, Mateescu R, Freitas AT, de Jong H: Temporal logic patterns for querying dynamic models of cellular interaction networks. Bioinformatics. 2008, 24 (16): i227i233.View ArticlePubMedGoogle Scholar
 Alur R, Henzinger TA: Reactive modules. Formal Methods in System Design. 1999, 15: 748.View ArticleGoogle Scholar
 Regev A, Silverman W, Shapiro E: Representation and simulation of biochemical processes using the picalculus process algebra. Pac Symp Biocomput. 2001, 459470.Google Scholar
 Hatakeyama M, Kimura S, Naka T, Kawasaki T, Yumoto N, Ichikawa M, Kim JH, Saito K, Saeki M, Shirouzu M, Yokoyama S, Konagaya A: A computational model on the modulation of mitogenactivated protein kinase (MAPK) and Akt pathways in heregulininduced ErbB signalling. Biochem J. 2003, 373 (2): 451463.PubMed CentralView ArticlePubMedGoogle Scholar
 Matsuno H, Tanaka Y, Aoshima H, Doi A, Matsui M, Miyano S: Biopathways representation and simulation on hybrid functional Petri net. In Silico Biol. 2003, 3 (3): 389404.PubMedGoogle Scholar
 Nagasaki M, Doi A, Matsuno H, Miyano S: Computational modeling of biological processes with Petri net based architecture. Bioinformatics Technologies. Edited by: Chen YP. 2005, Springer Berlin HeidelbergGoogle Scholar
 Nagasaki M, Doi A, Matsuno H, Miyano S: A versatile Petri net based architecture for modeling and simulation of complex biological processes. Genome Inform. 2004, 15 (1): 180197.PubMedGoogle Scholar
 Pinney JW, Westhead DR, McConkey GA: Petri net representations in systems biology. Biochem Soc Trans. 2003, 31 (Pt 6): 15131515.View ArticlePubMedGoogle Scholar
 Matsuno H, Li C, Miyano S: Petri net based descriptions for systematic understanding of biological pathways. IEICE Trans Fundamentals. 2006, E89A (11): 31663174.View ArticleGoogle Scholar
 Li C, Ge QW, Nakata M, Matsuno H, Miyano S: Modelling and simulation of signal transductions in an apoptosis pathway by using timed Petri nets. J Biosci. 2007, 32 (1): 113127.View ArticlePubMedGoogle Scholar
 Chaouiya C: Petri net modelling of biological networks. Brief Bioinform. 2007, 8 (4): 210219.View ArticlePubMedGoogle Scholar
 Koch I, Heiner M: Petri nets. Analysis of Biological Networks. Edited by: Junker BH, Schreiber F. 2008, 139180. A Wiley Interscience PublicationView ArticleGoogle Scholar
 Cell Illustrator. http://www.cellillustrator.com/
 Cell Illustrator Online. , http://cionline.hgc.jp/
 Nagasaki M, Doi A, Matsuno H, Miyano S: Genomic Object Net: I. A platform for modelling and simulating biopathways. Appl Bioinformatics. 2003, 2 (3): 181184.PubMedGoogle Scholar
 Doi A, Fujita S, Matsuno H, Nagasaki M, Miyano S: Constructing biological pathway models with hybrid functional Petri nets. In Silico Biol. 2004, 4 (3): 271291.PubMedGoogle Scholar
 Doi A, Nagasaki M, Fujita S, Matsuno H, Miyano S: Abstract Genomic Object Net: II. modelling biopathways by hybrid functional Petri net with extension. Appl Bioinformatics. 2003, 2 (3): 185188.PubMedGoogle Scholar
 Matsuno H, Doi A, Nagasaki M, Miyano S: Hybrid Petri net representation of gene regulatory network. Pac Symp Biocomput. 2000, 341352.Google Scholar
 Matsuno H, Murakami R, Yamane R, Yamasaki N, Fujita S, Yoshimori H, Miyano S: Boundary formation by notch signaling in Drosophila multicellular systems: experimental observations and gene network modeling by Genomic Object Net. Pac Symp Biocomput. 2003, 152163.Google Scholar
 Troncale S, Tahi F, Campard D, Vannier JP, Guespin J: Modeling and simulation with hybrid functional Petri nets of the role of interleukin6 in human early haematopoiesis. Pac Symp Biocomput. 2006, 427438.Google Scholar
 Sternberg PW, Horvitz HR: The combined action of two intercellular signaling pathways specifies three cell fates during vulval induction in C. elegans. Cell. 1989, 58 (4): 679693.View ArticlePubMedGoogle Scholar
 Peterson JL: Petri Net Theory and the Modeling of Systems. 1981, Prentice HallGoogle Scholar
 Greenwald I: LIN12/Notch signaling in C. elegans. Worm Book. 2005, 8: 116.Google Scholar
 Yoo A, Bais C, Greenwald I: Crosstalk between the EGFR and LIN12/Notch pathways in C. elegans vulval development. Science. 2004, 303 (5658): 663666.View ArticlePubMedGoogle Scholar
 Christensen S, Kodoyianni V, Bosenberg M, Friedman L, Kimble J: lag1, a gene required for lin12 and glp1 signaling in Caenorhabditis elegans, is homologous to human CBF1 and Drosophila Su(H). Development. 1996, 122 (5): 13731383.PubMedGoogle Scholar
 Cui M, Chen J, Myers TR, Hwang BJ, Sternberg PW, Greenwald I, Han M: SynMuv genes redundantly inhibit lin3/EGF expression to prevent inappropriate vulval induction in C. elegans. Dev Cell. 2006, 10 (5): 667672.View ArticlePubMedGoogle Scholar
 Miller LM, Gallegos ME, Morisseau B, Kim S: lin31, a Caenorhabditis elegans HNF3/fork head transcription factor homolog, specifies three alternative cell fates in vulval development. Genes Dev. 1993, 7 (6): 933947.View ArticlePubMedGoogle Scholar
 Sternberg PW, Horvitz HR: Pattern formation during vulval development in C. elegans. Cell. 1986, 44 (5): 761772.View ArticlePubMedGoogle Scholar
 Lackner M, Kornfeld K, Miller LM, Horvitz HR, Kim S: A MAP kinase homolog, mpk1, is involved in rasmediated induction of vulval cell fates in Caenorhabditis elegans. Genes Dev. 1994, 8 (2): 160173.View ArticlePubMedGoogle Scholar
 Shaye DD, Greenwald I: Endocytosismediated downregulation of LIN12/Notch upon Ras activation in Caenorhabditis elegans. Nature. 2002, 420 (6916): 686690.View ArticlePubMedGoogle Scholar
 Sternberg PW: Vulval development. Worm Book. 2005, 25: 128.Google Scholar
 Kohara Y: Caenorhabditis elegans – Symphony of 1000 Cells. 1997, In Japanese, Kyoritsu ShuppanGoogle Scholar
 Riddle DL, Blumenthal T, Meyer BJ, Priess JR: C. Elegans II: Monograph 33. 1998, Cold Spring Harbor Laboratory PressGoogle Scholar
 Tan PB, Lackner MR, Kim SK: MAP kinase signaling specificity mediated by the LIN1 Ets/LIN31 WH transcription factor complex during C. elegans vulval induction. Cell. 1998, 93 (4): 569580.View ArticlePubMedGoogle Scholar
 Berset T, Hoier EF, Battu G, Canevascini S, Hajnal A: Notch inhibition of RAS signaling through MAP kinase phosphatase LIP1 during C. elegans vulval development. Science. 2001, 291 (5506): 10551058.View ArticlePubMedGoogle Scholar
 Jeong E, Nagasaki M, Saito A, Miyano S: Cell System Ontology: Representation for modeling, visualizing, and simulating biological pathways. In Silico Biol. 2007, 7 (6): 623638.PubMedGoogle Scholar
 Pnuts., http://www.pnuts.org/
 Sulston JE, Horvitz HR: Postembryonic cell lineages of the nematode, Caenorhabditis elegans. Dev Biol. 1977, 56 (1): 110156.View ArticlePubMedGoogle Scholar
 Berset TA, Hoier EF, Hajnal A: The C. elegans homolog of the mammalian tumor suppressor Dep1/Scc1 inhibits EGFR signaling to regulate binary cell fate decisions. Genes Dev. 2005, 19 (11): 13281340.PubMed CentralView ArticlePubMedGoogle Scholar
 Ferguson EL, Sternberg PW, Horvitz HR: A genetic pathway for the specification of the vulval cell lineages of Caenorhabditis elegans. Nature. 1987, 326 (6110): 259267.View ArticlePubMedGoogle Scholar
 Kimble J: Alterations in cell lineage following laser ablation of cells in the somatic gonad of Caenorhabditis elegans. Dev Biol. 1981, 87 (2): 286300.View ArticlePubMedGoogle Scholar
 Han M, Aroian RV, Sternberg PW: The let60 locus controls the switch between vulval and nonvulval cell fates in Caenorhabditis elegans. Genetics. 1990, 126 (4): 899913.PubMed CentralPubMedGoogle Scholar
 VPC fate specification of C. elegans in CSML., http://www.csml.org/models/csmlmodels/vulvaldev/
 Alur R, Henzinger TA, Mang FYC, Qadeer S, Rajamani SK, Tasiran S: MOCHA: modularity in model checking. Lecture Notes in Computer Science. 1998, 1427: 521525.View ArticleGoogle Scholar
Copyright
This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.