Simulation parameters¶
This sections presents the different parameters that can be set in the initialization file.
Kinetic parameters (dictionary_ranges
)¶
The kinetic parameters are specific to a type of interaction or a type
of species. They are stored in the dictionary_ranges
dictionary. One
can define the range over which they can vary by setting the its range
with a size 2 list (if the minimum is 0, the range can be set with a
float corresponding to the maximum).
In the example of a Degradation
interaction, the range of variation
of the rate
of degration is set with
dictionary_ranges["Degradation.rate"] = 0.0
Mutation parameters (dictionary_mutation
)¶
The mutation parameters define the rate a which a given mutation occurs.
Note that the evolution rescale the generation time so that a network
undergoes an average of one mutation per generation. The mutation
parameters are defined in the dictionary_mutation
dictionary.
A new mutation function is defined when creating a new interaction. Each new mutation can have its own rate defined.
Examples:
dictionary_mutation["random_gene()"]
: Rate at whichrandom_gene()
mutation is executed (with default settings).dictionary_mutation["random_gene(type = 'TF')"]
: Rate at whichrandom_gene()
mutation is executed with the parameter type equal to “TF” (it creates a species with a tag “TF” corresponding to a transcription factor).
General simulation parameters (prmt
)¶
The general simulation parameters are stored in a dictionary called
prmt
:
- Number of seeds (
nseed
): Number of independent evolution to simulate. - First seed (
firstseed
): Index of the first seed. This index is also used to seed the random number generator. - Number of generations (
ngeneration
): Number of generation to simulate in each independent evolution. - Number of cells (
ncelltot
): Number of cells in the organism. - Population size (
npopulation
): Number of network in the population. - Number of neighbors (
nneighbor
): Number of neighbors cell has. - Fraction mutated per gen (
frac_mutate
): Fraction of networks in the population to mutate at every generation. - Number of Inputs (
ninput
): Number of species with an inputs (with an input tag) a network should have. - Number of Outputs (
noutput
): Number of species with an outputs (with an output tag) a network should have. - Number of trials (
ntries
): When a fitness depends of a network’s initial conditions or in the presence of Langevin’s noise, it is useful to run several independent kinetic integrations.ntries
determines the number of integrations to run. Note that in the case the initialization of each trial should be done with the init_history function and the agregation(e.g. averaging) of the fitnesses coresponding to each integration is done with the treatment_fitness function. - Time step dt (
dt
): Size of an integration time step in the Euler algorithm. - Number of time steps (
nstep
): Number of integration time step in the Euler algorithm. - Langevin noise value (
langevin_noise
): Level of the langevin noise in a stochastic simulation. When 0, the integrations are deterministic. - Gillespie generation time (
tgeneration
): The computation of the next mutation follows a Gillespie algorithm.tgeneration
defines the initial time, then the timetgeneration
is updated to have roughly one mutation infrac_mutate
of the networks. - Recompute networks (
redo
): Should the networks that do not change in from a generation to the other be re-integrated ti compute the fitness? - Pareto simulation (
pareto
): Should we run a Pareto integration? - Number of pareto functions (
npareto_functions
): Number of pareto functions defined? - Pareto penalty radius (
rshare
): This parameter prevents a network from being dominated by a networks with fitnesses that fall too close to it current position in the fitness space. Increasingrshare
helps to explore a larger portion of the fitness space. Warmflash et al 2012. - Multiple threads (
multipro_level
): Should the algorithm run in parallel? - Generation printing frequency (
freq_stat
): During a simulation the algorithm regularly prints informations about its current state.freq_stat
defines the number of generations between two prints.
Restart parameters (prmt["restart"]
)¶
To restart a simulation either after it has been stopped or from a
specific seed and generation one can configure the restart parameters.
The parameters are hosted in a sub-dictionary or prmt
,
prmt["restart"]
:
prmt["restart"]["activated"]
: Activate restartprmt["restart"]["freq"]
: Frequency at which a complete generation is saved.prmt["restart"]["kgeneration"]
: Generation at which to restart the algorithmprmt["restart"]["seed"]
: Seed at which to restart the algorithmprmt["restart"]["same_seed"]
: Restart with the same seed
More information is available on the (restart an evolution section)[create_new_project.html#restart-an-evolution].