State space generator for models based on ordinary differential equations. Part of BioDivine tool for model checking and parameter synthesis of biological models.
Repository can be added as a dependency to your project using jitpack (See badge above).
So far, only supported format of input model file is .bio (or BIO) format. Every model file has to contain at least the following parts:
- declaration of model variables,
- corresponding thresholds (at least two numeric values have to be defined as the lower and upper bound thresholds for each variable),
- declaration of parameters (each with a lower and upper bound),
- differential equations (one for each variable).
The corresponding lines start with predefined keywords and have the following syntax (the order of lines is strongly recommended):
- VARS: variables (mandatory, only one occurrence) where variables is a list of variable names delimited by comma (,).
- THRES: variable_name: threshold_values (mandatory, one for each model variable) where threshold_values is a list of at least two numeric_values delimited by comma (,) and variable_name is the reference to variables list.
- PARAMS: parameters (mandatory, only one occurrence) where parameters is a list of expressions delimited by semicolon (;) in the form param_name, lower_bound, upper_bound.
- CONSTS: constants (optional, only one occurrence) where constants is a list of named constants delimited by semicolon (;) in the form constant_name, constant_value.
- EQ: variable_name = equation_expression (mandatory, one for each model variable) where variable_name is the reference to variables list (syntax of the equation_expression is defined later in this section).
- VAR_POINTS: var_points (optional, only one occurrence) where var_points is a list delimited by semicolons (;) of the form variable_name: valuation_points, ramps_count. Here, valuation_points defines the accuracy of the approximation and ramps_count defines the number of additional created thresholds, effectively determining the accuracy of the parameter synthesis process.
In the syntax above, the terms lower_bound, upper_bound, constant_value and numeric_values are either integers or floating-point numbers (the scientific notation is not supported), while the terms valuation_points and ramps_count are integers only. Note that lines do not end with a semicolon (;) or any other special ending character.
The syntax of equation_expression is defined as an arithmetic expression that uses only the operations + (addition), - (subtraction or unary negation), and * (multiplication). The operands can be either memebrs of numeric_values, variables, constant_name, param_name, or the application of one of the following functions:
-
[ Hp | Hm ](var, thr, a, b) is the so-called Heaviside step function in increasing/positive form (Hp) or in decreasing/negative form (Hm); they are defined in the following way:
-
[ Rp | Rm ](var, thr1, thr2, a, b) is the so-called ramp function in increasing/positive form (Rp) or in decreasing/negative form (Rm) defined as follows:
-
[ Sm | Sp ](var, k, thr, a, b) is a sigmoidal function in increasing/positive form (Sp) or in decreasing/negative form (Sm); defined in the following way:
-
[ Hillp | Hillm ](var, thr, n, a, b) is the so-called Hill function in positive form (Hillp) or in negative form (Hillm); they are defined in the following way:
When n equals 1, the function serves as the Michaelis-Menten kinetics. In that case, the parameters var and thr have the meaning of , respectively. Moreover, if a equals 0 then b acts as the maximum rate constant and vice-versa.
-
Pow(var, n) is the well-known power function defined in the following way:
-
Monod(var,thr,y) is the most common function for description of the microbial growth kinetics called Monod equation where var usually stands for the substrate concentration; it is defined in the following way:
When the function is used to model an increase of microbial population based on the substrate concentration the y (i.e., the yield coefficient) equals 1. Otherwise, it is used to model a decrease of the substrate proportional to the population growth.
-
Moser(var,thr,n) is another function for modelling of microbial growth defined as follows:
-
Tessier(var,thr) is another function for modelling of microbial growth defined in the following way:
-
Haldane(var,thr,k) is microbial growth function defined as follows:
-
Aiba(var,thr,k) is another microbial growth function defined in the following way:
-
Tessier_type(var,thr,k) is a microbial growth function defined as follows:
-
Andrews(var,thr,k) is another microbial growth function defind in the following way:
where var is a member of variables list; thr is meant to be an important value of interest for the particular variable var and should be represented as numeric value; all other coefficients (e.g., k, a, etc.) are either numeric values or one of the names defined in the constants list.
VARS: x, y
CONSTS: k2, 1; deg_y, 0.1; a, 1; b, 0; n, 5
PARAMS: k1, 0, 2; deg_x, 0, 1
EQ: x = k1*Hillm(y, 5, n, a, b) - deg_x*x
EQ: y = k2*Hillm(x, 5, 5, 1, 0) - deg_y*y
VAR_POINTS: x: 1500, 10; y: 1500, 10
THRES: x: 0, 15
THRES: y: 0, 15