This function computes actual mutation effect \(\delta\) at RNV for each enzyme
RNV.delta.all.enz(E_res_fun,A_fun,N_fun,correl_fun,beta_fun=NULL,tol_fun=0.0001)Numeric vector of enzyme concentrations (resident)
Numeric vector of activities
Numeric. Population size
Character string indicating the abbreviation of the constraint applied on the system
Matrix of co-regulation coefficients
Numeric and positive value. Accuracy for delta bounds. Default is 0.0001
List of n elements, one for each enzyme i considering that \(i\) is targeted by the mutation.
For each element of the list, we have a vector of length 2 or 4, depending on applied constraint correl_fun. Values of this vector are:
delta_i value for inferior bounds of the near RNV
delta_i value for superior bounds of the near RNV
delta_i value for inferior bounds of the far RNV (if exists)
delta_i value for superior bounds of the far RNV (if exists)
If superior bound is not accessible, value is NA.
Note that n is the number of enzymes, which is the length of E_ini_fun.
The Range of Neutral Variations (RNV) are mutant concentration values such as coefficient selection is between \(1/(2N)\) and \(-1/(2N)\).
Inferior (resp. superior) bound of RNV corresponds to selection coefficient equal to \(-1/(2N)\) (resp. \(1/(2N)\)).
Function RNV.delta.all.enz computes the actual mutation effect \(delta_i\) at RNV bounds, where \(i\) is the enzyme targeted by the mutation.
Depending on applied constraints correl_fun, it exists 1 or 2 RNV.
In case of independence ("SC") or positive regulation between all enzymes ("RegPos"), flux has no limit and there is only one RNV.
In other cases (competition and/or negative regulation), because flux can reach a maximum, there is two RNV:
a "near" one, for small mutations, and a "far" one for big mutations that put mutants in the other side of flux dome.
Known bug
Due to use of range_delta to limit search area, output \(\delta\) is computed to have mutant concentration between 0 and sum(E_res_fun) (resident total concentration).
If \(\delta\) is too high (mutant concentration over resident total concentration), output \(\delta\) could be NA rather than a numeric value. This case might happen when N_fun is too low and correl_fun="SC" or "RegPos" (no limit on total concentration),
Coton et al. (2021)
\(delta\) at RNV bounds is obtained by nullify the expression in odd.discrete.sel.coef.
# NOT RUN {
Er <- c(30,30,30)
A <- c(1,10,30)
beta <- matrix(c(1,10,5,0.1,1,0.5,0.2,2,1),nrow=3)
correl <- "CRPos"
N <- 1000
RNV.delta.all.enz(Er,A,N,correl,beta)
correl <- "SC"
RNV.delta.all.enz(Er,A,N,correl)
# }
Run the code above in your browser using DataLab