simul.next.resident: Time step simulation (next resident values)

Description Usage Arguments Details Value References See Also Examples

View source: R/simul.next.resident.R

Description

simul.next.resident simulates a time step, i.e. computes effects of a new mutation and gives next resident values whatever this mutation is fixed or not

Usage

1
2
3
simul.next.resident(E_res_fun, kin_fun, Keq_fun, N_fun,
correl_fun, beta_fun=NULL, X_fun=1, max_mut_size_E=1, max_mut_size_A=1,
pmutA=0, typ_E=1, typ_A=1, use.old.mut=FALSE)

Arguments

E_res_fun

Numeric vector of enzyme concentrations (resident)

kin_fun

Numeric vector of kinetic parameters (catalytic constant kcat divided by Michaelis constant Km)

Keq_fun

Numeric vector of equilibrium constants

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

X_fun

Numeric. Numerator of function flux. Default is 1

max_mut_size_E

Numeric. Maximum absolute size of mutation for enzyme concentrations. Default is 1

max_mut_size_A

Numeric. Maximum absolute size of mutation for kinetic parameters. Default is 1

pmutA

Numeric. Mutation probability of kinetic parameters. Higher pmutA, higher the mutation probability of kinetic parameters compared to enzyme concentrations. Default is 0, i.e. no mutation of kinetic parameters

typ_E

Numeric for mutation method. Authorized values: 1 or 2. Default is 1.

typ_A

Numeric for mutation method. Default is 1. See details in mut.kin.

use.old.mut

Logical. If FALSE (default), use mut.E.direct mutation method, else use mut.E.old mutation method if TRUE

Details

This function gives the genotype (enzyme concentrations and activities) and phenotype (flux) values of the next resident in an haploid population after a time step. Here, a time step corresponds to the apparition and fixation (or disappearance) of a mutation targeting one enzyme. Therefore a time step is the interval between appearances of two successive mutations.

This function is used for simulation of enzyme concentration evolution.

Algorithm

  1. target enzyme and mutation sign are chosen randomly with a uniform law

  2. mutation targets randomly concentration or kinetic parameter depending on pmutA value

  3. mutation size is chosen randomly between 0 and max_mut_size_E for concentrations (resp. max_mut_size_A for kinetic parameters), then multiplied by its sign

  4. mutation effects on all enzymes are computed with function mut.E.direct (resp. mut.kin). The input mutation method is only available for mut.E.old, but multiplicative mutation method typ_E=2 is not accurate in case of regulation

  5. if concentration or kinetic parameter become negative, which is biologically impossible, they are set to 0

  6. activities, then flux are computed

  7. selection coefficient is also computed, considering flux as fitness

  8. fixation probability of this mutation is computed

  9. fixation of this mutation is random, depending on this fixation probability: if mutation is fixed, mutant become resident for next step, else resident is unchanged for next step

  10. returns value of the resident for next step

Algorithm is also detailed in Coton et al. (2021)

Value

Returns a list of 7 elements:

Note that n is the number of enzymes, which is the length of E_res_fun.

References

Coton et al. (2021)

See Also

See function mut.E.direct and mut.kin to see how enzymes are mutated.

Fitness is computed with function flux.

Examples

1
2
3
4
5
6
7
8
E <- c(30,30,30)
kin <- c(53/0.29,50/0.78,29)
Keq <- c(1.1e+8,4.9e+3,1.1e+3)
beta <- matrix(c(1,10,5,0.1,1,0.5,0.2,2,1),nrow=3)
correl <- "RegPos"
N <- 1000

simul.next.resident(E, kin, Keq, N, correl, beta, pmutA=0.1)

SimEvolEnzCons documentation built on Oct. 29, 2021, 1:07 a.m.