Title: | Predict Dominant Direction of Reactions of a Biochemical Network |
---|---|
Description: | Biologically relevant, yet mathematically sound constraints are used to compute the propensity and thence infer the dominant direction of reactions of a generic biochemical network. The reactions must be unique and their number must exceed that of the reactants,i.e., reactions >= reactants + 2. 'ReDirection', computes the null space of a user-defined stoichiometry matrix. The spanning non-zero and unique reaction vectors (RVs) are combinatorially summed to generate one or more subspaces recursively. Every reaction is represented as a sequence of identical components across all RVs of a particular subspace. The terms are evaluated with (biologically relevant bounds, linear maps, tests of convergence, descriptive statistics, vector norms) and the terms are classified into forward-, reverse- and equivalent-subsets. Since, these are mutually exclusive the probability of occurrence is binary (all, 1; none, 0). The combined propensity of a reaction is the p1-norm of the sub-propensities, i.e., sum of the products of the probability and maximum numeric value of a subset (least upper bound, greatest lower bound). This, if strictly positive is the probable rate constant, is used to infer dominant direction and annotate a reaction as "Forward (f)", "Reverse (b)" or "Equivalent (e)". The inherent computational complexity (NP-hard) per iteration suggests that a suitable value for the number of reactions is around 20. Three functions comprise ReDirection. These are check_matrix() and reaction_vector() which are internal, and calculate_reaction_vector() which is external. |
Authors: | Siddhartha Kundu <2021: Manuscript Under Preparation> |
Maintainer: | Siddhartha Kundu <[email protected]> |
License: | GPL-3 |
Version: | 1.0.1 |
Built: | 2024-12-26 06:33:07 UTC |
Source: | CRAN |
The input stoichiometry matrix of a generic biochemical network is checked and modified after which the null space is computed.
calculate_reaction_vector(smat, rar)
calculate_reaction_vector(smat, rar)
smat |
An input stoichiometry matrix of a generic biochemical network. This is a mandatory argument. |
rar |
A mandatory logical argument that indicates the orientation of the reactions as rows (TRUE) or columns (FALSE) in the stoichiometry matrix. |
The non-zero null space spanning and the subspace-generated unique reaction vectors (RVs) are recursively summed combinatorially and evaluated for redundancy.
The function compares the generated subspace vectors reaction-wise, i.e., as sequences of identical terms across all RVs. These are then evaluated on the basis of pre-defined criteria (descriptive statistics, linear maps, tests of convergence, probability of occurrence, vector norms).
The output for each reaction is the combined propensity (p1-norm) of the sub- propensities and is strictly positive. This is the probable rate constant, is used to infer the dominant direction of each reaction and annotate a reaction as "Forward (f)" or "Reverse (b)" or "Equivalent (e)". Although, there is no restriction on the number of reactions, the inherent computational complexity (NP-hard) involved per iteration suggests that an suitable value for the number of reactions is around 20.
code A numerically encoded ('0', no success; '1', success) text message to the user and indicates the outcome of utilizing "ReDirection".
mx <- matrix(c(1,0,0,0,0,1,0,-1,0,1,0,0,1,0,0,0,-1,1,1,0,0,0,0,0,0,-2,0,-1, -1,1,0,0,0,0,1,0,-1,1,0,0,0,0,0,0,-1,0,1,0,-1,0,0,0,0,0,-1,0,1,0,0,-1,0,-1,0) ,byrow=TRUE,nrow=9,ncol=7) calculate_reaction_vector(mx,TRUE)
mx <- matrix(c(1,0,0,0,0,1,0,-1,0,1,0,0,1,0,0,0,-1,1,1,0,0,0,0,0,0,-2,0,-1, -1,1,0,0,0,0,1,0,-1,1,0,0,0,0,0,0,-1,0,1,0,-1,0,0,0,0,0,-1,0,1,0,0,-1,0,-1,0) ,byrow=TRUE,nrow=9,ncol=7) calculate_reaction_vector(mx,TRUE)
This function of the package 'ReDirection' checks whether the user-defined stoichiometry matrix is suitable for further processing.
check_matrix(input_mat, rxy)
check_matrix(input_mat, rxy)
input_mat |
This is the user-defined stoichiometry matrix of a generic metabolic network and is a mandatory argument. |
rxy |
A mandatory logical argument that indicates the orientation of reactions as rows (TRUE) or columns (FALSE) of the user-defined stoichiometry matrix. |
'ReDirection', is reaction-centric. This means that the computations and results are solely based on the reactions. The number of unique reactions must exceed the number of reactants (reactions >= reactants + 2).
Additionally, 'ReDirection' must know if the reactions are represented as rows (TRUE) or columns (FALSE).
'ReDirection', also checks for linear dependence (rows, columns) and removes the same. This can perturb the indices of the matrix and users are advised to check the input stoichiometry matrix a priori.
The checked and modified matrix is returned and processed further.
output_mat A checked and modified version of the stoichiometry matrix which is returned for further computations.
flag An indicator of the suitability of the user-defined input stoichiometry matrix for further computations.
This function of the package 'ReDirection', combinatorially sums non-zero and unique reaction vectors of the null space and the generated subspace(s).
reaction_vector(xsol)
reaction_vector(xsol)
xsol |
The null space spanning vectors of the checked and modified user- defined stoichiometry matrix. |
The resultant reaction vectors (RVs) comprise every unique reaction as a sequence of identical components across all RVs and are processed further.
The RVs are evaluated for the presence of duplicated vectors and the same are removed.
If and only if the combined propensity of every reaction fulfills the output criteria (non-zero, greater than unity) are the iterations stopped, otherwise another commences.
mtdf Vectors are the resultant reaction vectors which are computed by by combinatorially summing the non-zero and null space spanning vectors and the subspace(s) generated.