BioLQM: A Java Toolkit for the Manipulation and Conversion of Logical Qualitative Models of Biological Networks

Here we introduce bioLQM, a new Java software toolkit for the conversion, modification, and analysis of Logical Qualitative Models of biological regulatory networks. BioLQM provides core modeling operations as building blocks for the development of integrated modeling software, or for the assembly of heterogeneous analysis workflows involving several complementary tools. Based on the definition of multi-valued logical models, bioLQM implements import and export facilities, notably for the recent SBML qual exchange format, as well as for formats used by several popular tools, facilitating the design of workflows combining these tools. Model modifications enable the definition of various perturbations, as well as model reduction, easing the analysis of large models. Another modification enables the study of multi-valued models with tools limited to the Boolean case. Finally, bioLQM provides a framework for the development of novel analysis tools. The current version implements various updating modes for model simulation (notably synchronous, asynchronous, and random asynchronous), as well as some static analysis features for the identification of attractors. The bioLQM software can be integrated into analysis workflows through command line and scripting interfaces. As a Java library, it further provides core data structures to the GINsim and EpiLog interactive tools, which supply graphical interfaces and additional analysis methods for cellular and multi-cellular qualitative models.


LOGICAL QUALITATIVE MODEL
A Logical Qualitative Model L = (G, M, F) with n components is defined by: ..n , the set of its components.
• M = {m i ∈ N * } i=1...n , the maximal activity levels of these components, S i = [0, m i ] is the activity range of the component g i , and S = S i is the state space.
..n , the logical functions defining its dynamical behavior.

STATE SPACE AND DYNAMICS
In the following, we define the state and dynamics of a model, which can be computed from its logical functions f i . For simplicity, we use i as a shorthand for g i when no ambiguity is possible.
A (qualitative) state x ∈ S of the model is a vector giving the activity levels of all components, where x i denotes the activity of the component i: We define unitary update functions u i : In the Boolean case, these unitary functions are identical to the logical functions f i by construction. They enforce unitary transitions in the multi-valued case.
Given a state x ∈ S and a subset of the components p ⊂ G, let x p be the state where all the components of the subset have been updated at once: For simplicity,

Deterministic updatings
• In the synchronous updating, the unique successor of x is its unitary image u(x). • In the sequential updating following the default order of components, the unique successor of the state x is (u n • · · · • u 1 )(x). A different sequential updater can be defined for each possible ordering of G.
• A block-sequential updater is based on an ordered partition of G in m non-overlapping subsets (m ≤ n). Let P = (p 1 , . . . , p m | p k ⊂ G ∀k) be this ordered partition. The function v k : S → S such that v k (x) = x p k updates all components of the subset p k synchronously. The unique successor of the state x by the block-sequential updater defined by the ordered partition P is then given by combining these functions: (v m • · · · • v 1 )(x).
• The synchronous priority updating is based on the partitioning P defined for the block-sequential case, but only the first updated subset is considered. If the state x is not a stable state, then there exists k such that the subset p k is the first one containing updated components: v k (x) = x and v i (x) = x ∀i < k. Then v k (x) is the successor of x in this updating. Note that this type of updating is the deterministic subset of the non-deterministic priority updatings defined below.

Non-deterministic updatings
• In the asynchronous updating, all logical functions are applied independently and all successors of the state x differ from x by exactly one component: the set of successors of x is {x i = x ∀i ∈ G}.
• In the complete updating, any number of components can be updated at once: the set of successors of x is {x p = x ∀p ⊂ G}. This set of successors includes all asynchronous successors, as well as the synchronous one.
• The priority updater generalizes the synchronous priority defined above by considering asynchronous updates between the blocks (priority classes). Starting with P = (p 1 , . . . , p m | p k ⊂ G ∀k), the ordered partition of G defined above, each subset p k is further partitioned in a k subsets p k,1 , . . . , p k,a k . If the state x is not a stable state, then there exists k such that the subset p k is the first one containing updated components: v k (x) = x and v i (x) = x ∀i < k. Then v k,1 (x), . . . , v k,a k (x) are the a k successors of x in this updating.

Range restriction
We call f a,b i the restriction of the function f i to the range [a, b] (with 0 ≤ a ≤ b ≤ m i ) such that: .

Perturbation of an interaction
The removal of an interaction (i, j) (i.e. the removal of i from the regulators of j) further requires the specification of v ∈ S i and leads to the modification of f j , the logical rule associated to j.
Let x i,v be the state such that x i,v i = v and x i,v k = x k ∀k = i. The perturbation constructs the modified function f i:v j = f j (x i,v ).