Input Model File - xsafran1/pepmc2 GitHub Wiki
Here it's detailed description of new model of input file. In first part there are described lexemes which can be used in input model. In second part there is described the syntax of whole new model. Finally in third part there is an example of real biological model.
====================================================== ##Input lexemes
NAME: [a-zA-Z][_0-9a-zA-Z~{}]* - matching whichever named variable, parameter or constant (Some name starting with upper case or lower case letter following whichever combination of letters, digits and '~' '{' '}' '_' characters)
NUMBER: matching nameless constants (simply numbers, integer or real)
RAMP: rp(*) | rm(*) | rpcoor() | rmcoor() | Rp(*) | Rm(*) | Rpcoor() | Rmcoor()
* = var, theta1, theta2, a, b
~ = var, theta1, theta2, y1, y2
SIGM:
Sp(*) | Sm(*) | Spinv(*) | Sminv(*) | Sp[](*) | Sm[](*) | Spinv[](*) | Sminv[](*) |
sp(*) | sm(*) | spinv(*) | sminv(*) | sp[](*) | sm[](*) | spinv[](*) | sminv[](*)
* = var, k, theta1, a, b
~ = n
STEP: Hp(*) | Hm(*) | hp(*) | hm(*)
* = var, theta1, a, b
HILL: Hillm(*) | Hillp(*) | hillm(*) | hillp(*)
* = var, theta, e, a, b
All following parameters may be represented by NAME or NUMBER:
var = variable (dimension)
thetaX = threshold
a,b = parameters concretizing location of ramp in space according to (y = a*x + b)
y1,y2 = parameters exactly determining y values of end-points of ramp
k = parameter determining steepness of sigmoid function
n = parameter determining accuracy or gentleness of change from curve to ramps
e = exponenet of the Hill functions
======================================================= ##Input syntax
File:
VARS: var_defs (Determines substances of reaction or interacting species.)
CONSTS: const_defs (Optional, determines named constants.)
PARAMS: param_defs (Determines parametres as intervals. Just for parameter estimation not for model checking.)
EQ: eq_defs (Determines equations. One line for each variable.)
THRES: thres_defs (Determines threholds of special interest for variables. One line for each variable.)
INIT: init_defs (determines initial conditions of variables as interval from thres values.)
VAR_POINTS: var_points_defs (Optional, determines number of x points and number of segments per variable.)
system async;
var_points_defs:
VAR_NAME : NUMBER , NUMBER ; VAR_NAME : NUMBER , NUMBER ...
init_defs:
VAR_NAME : NUMBER , NUMBER ; VAR_NAME : NUMEBR , NUMBER ...
const_defs:
NAME , NUMBER ; NAME , NUMBER ...
thres_defs:
VAR_NAME : NUMBER , NUMBER ...
var_defs:
NAME , NAME ...
param_defs:
NAME , NUMBER , NUMBER ; NAME , NUMBER , NUMBER ...
eq_defs:
VAR_NAME = expr
expr:
summation
ap
summation:
summant
summation + summant
summation - summant
summant:
multiplication
parenthesis
multiplication:
multiple
multiplication * multiple
multiple:
ap
parenthesis
parenthesis:
( expr )
ap:
NUMBER
NAME
RAMP
SIGM
STEP
HILL
-NUMBER
-NAME
-RAMP
-SIGM
-STEP
-HILL
=================================================
Notes
Limitation:
var*var only for different vars
var*special_function only if special function doesn't depend on the same variable (var)
special_function*special_function only if special functions don't depend on the same variable
in one equation can be only one parameter unknown
Parser ignores commentary of types:
# something...
// something...
/* something... */
==============================================
Example
VARS: pRB, E2F1
CONSTS: k1,1; y_pRB,0.005; kp,0.05; k2,1.6; y_E2F1,0.1; a,0.04
PARAMS: par,0.001,0.01
VAR_POINTS: pRB: 1500, 5; E2F1: 1500, 5
EQ: pRB = k1Hillp(E2F1,0.5,1,0,1)Hillm(pRB,0.5,1,1,0) - y_pRBpRBpar
EQ: E2F1 = kp + k2aa0.0625Hillm(E2F1,4,2,1,0)Hillm(pRB,5,1,1,0) + k2Hillp(E2F1,4,2,0,1)Hillm(pRB,5,1,1,0) - y_E2F1E2F1
THRES: pRB: 0, 1, 2, 6, 7, 8, 10, 3, 4, 5
THRES: E2F1: 0, 1, 2, 4, 6, 8, 10, 12, 15
INIT: pRB: 5, 6; E2F1: 1, 2
system async;
Note: every record must be written on one line. Here the sixth line is divided just because of length. In original model.bio file it isn't.