Description Usage Arguments Details Value See Also Examples
View source: R/RNV.compute.elements.R
(Deprecated). This function computes different elements at RNV, for different resident concentrations, based on function RNV.delta.all.enz
For simulations, preferably use RNV.for.simul.
1 2 | RNV.compute.elements(mat_E,mat_A,N_fun,correl_fun,beta_fun=NULL,
end.mean=TRUE,add.RNV.J=FALSE,mat_J=NULL,X_fun=1)
|
mat_E |
Numeric matrix of concentrations. Columns correspond to enzyme number, and rows correspond to different resident. |
mat_A |
Numeric matrix of activities. Same dimensions as |
N_fun |
Numeric. Population size |
correl_fun |
Character string indicating the abbreviation of the constraint applied on the system |
beta_fun |
Matrix of co-regulation coefficients |
end.mean |
Logical. If |
add.RNV.J |
Logical. Add value of flux at RNV ? If |
mat_J |
Numeric matrix of flux. One column and same rows number as |
X_fun |
Numeric value. Default is |
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.compute.elements computes the δ_i at RNV bounds (where i is the enzyme targeted by the mutation),
but also mutant concentrations at RNV bounds and the RNV size.
The RNV size is the absolute value of δ_i^sup minus δ_i^inf.
Depending on applied constraint 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 RNVs:
a "near" one, for small mutations, and a "far" one for big mutations that put mutant in the other side of flux dome.
This function RNV.compute.elements is designed to compute RNV of one simulation launched by simul.evol.enz.multiple.
For example, for simulation 1, put mat_E=tabR[tabR$sim==1,1:n] and mat_A=tabR[tabR$sim==1,(2*n+4):(3*n+3)]. To reduce computation time, put mat_J=tabR[tabR$sim==1,(2*n+3)] for flux.
It also works for different resident values of concentrations and activities.
List of 7 elements:
$RNV_delta : list of n elements, one by enzyme.
Each element contains a numeric matrix of nb_resid rows and two or four columns.
For each enzyme i (a list element), each row corresponds to one resident and columns are actual mutation effect δ_i corresponding respectively to inferior bound (col 1) and superior bound (col 2) of RNV (x2 if there is a second RNV).
Each row is a result of RNV.delta.all.enz.
$RNV_enz : same structure as $RNV_delta, but for mutant enzyme concentrations at RNV limits, i.e. E_i + δ_i for each target enzyme i ;
$RNV_size : list of one or two elements (depending on RNV number).
Each element contains a matrix of n columns (one by enzyme) and nb_resid rows.
Each cell is the RNV size for current enzyme (in column) and current resident (in row).
The RNV size is absolute value of δ_i^sup minus δ_i^inf. If there is no superior bounds but there is two RNV, RNV size is obtained by the difference of the two δ_i^inf.
$RNV_size_divEtot : same structure as $RNV_size, but for RNV size divided by total concentration of corresponding resident.
$RNV_proxy : numeric matrix of one or two rows (depending on RNV number) and n columns (one by enzyme).
Each cell id the mean of RNV size. If end.mean=TRUE, the mean is computed from last half of resident.
$RNV_proxy_divEtot : same structure as $RNV_proxy, but mean of RNV size is divided by mean of total concentration.
$RNV_flux : numeric matrix of two columns (inferior and superior limits of neutral zone) and nb_resid rows.
Each cell is the flux value at neutral zone limits.
Note that n is the number of enzymes. nb_resid is the number of resident and s also the row number of mat_E and mat_A.
See function RNV.delta.all.enz to see how actual mutation effect δ is computed.
For simulations, preferably use RNV.for.simul. Code is almost the same for the two functions, but differs in input.
1 2 3 4 5 6 7 8 9 10 11 12 | #for 2 resident genotypes and 3 enzymes
Er <- matrix(30,ncol=3,nrow=2)
A <- matrix(c(1,10,30),byrow=TRUE,ncol=3,nrow=2)
beta <- matrix(c(1,10,5,0.1,1,0.5,0.2,2,1),nrow=3)
B <- compute.B.from.beta(beta)
correl <- "CRPos"
N <- 1000
#second resident = theoretical equilibrium of first resident
Er[2,] <- 100*predict_th(A[1,],correl,B)$pred_e
RNV.compute.elements(Er,A,N,correl,beta,add.RNV.J=TRUE)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.