aegis_sim.submodels

  1from aegis_sim.submodels.reproduction.mutation import mutator
  2from aegis_sim.submodels.reproduction.reproduction import Reproducer
  3from aegis_sim.submodels.abiotic import Abiotic
  4from aegis_sim.submodels.predation import Predation
  5from aegis_sim.submodels.resources.starvation import starvation
  6from aegis_sim.submodels.infection import Infection
  7from aegis_sim.submodels.frailty import frailty
  8from aegis_sim.submodels.genetics.ploider import ploider
  9from aegis_sim.submodels.genetics.architect import Architect
 10from aegis_sim.utilities.popgenstats import PopgenStats
 11from aegis_sim.submodels.resources.resources import resources
 12from aegis_sim.submodels.reproduction.sexsystem import SexSystem
 13from aegis_sim.submodels.reproduction.matingmanager import MatingManager
 14from aegis_sim.submodels import lattice
 15
 16
 17def init(self, parametermanager):
 18
 19    ##################################
 20    # INDEPENDENT of other submodels #
 21    ##################################
 22
 23    self.abiotic = Abiotic(
 24        ABIOTIC_HAZARD_SHAPE=parametermanager.parameters.ABIOTIC_HAZARD_SHAPE,
 25        ABIOTIC_HAZARD_OFFSET=parametermanager.parameters.ABIOTIC_HAZARD_OFFSET,
 26        ABIOTIC_HAZARD_AMPLITUDE=parametermanager.parameters.ABIOTIC_HAZARD_AMPLITUDE,
 27        ABIOTIC_HAZARD_PERIOD=parametermanager.parameters.ABIOTIC_HAZARD_PERIOD,
 28    )
 29    self.predation = Predation(
 30        PREDATOR_GROWTH=parametermanager.parameters.PREDATOR_GROWTH,
 31        PREDATION_RATE=parametermanager.parameters.PREDATION_RATE,
 32    )
 33    starvation.init(
 34        STARVATION_MORTALITY_FACTOR=parametermanager.parameters.STARVATION_MORTALITY_FACTOR,
 35        STARVATION_MORTALITY_MAXIMUM=parametermanager.parameters.STARVATION_MORTALITY_MAXIMUM,
 36    )
 37    self.infection = Infection(
 38        BACKGROUND_INFECTIVITY=parametermanager.parameters.BACKGROUND_INFECTIVITY,
 39        TRANSMISSIBILITY=parametermanager.parameters.TRANSMISSIBILITY,
 40        RECOVERY_RATE=parametermanager.parameters.RECOVERY_RATE,
 41        FATALITY_RATE=parametermanager.parameters.FATALITY_RATE,
 42    )
 43    frailty.init(
 44        FRAILTY_MODIFIER=parametermanager.parameters.FRAILTY_MODIFIER,
 45        AGE_LIMIT=parametermanager.parameters.AGE_LIMIT,
 46    )
 47
 48    # Spatial lattice — opt-in via LATTICE_MODE. When False (default), init
 49    # leaves the lattice singleton inert and no other submodel calls it.
 50    lattice.init(
 51        LATTICE_MODE=parametermanager.parameters.LATTICE_MODE,
 52        INITIAL_POPULATION_SIZE=parametermanager.parameters.INITIAL_POPULATION_SIZE,
 53        LATTICE_TARGET_DENSITY=parametermanager.parameters.LATTICE_TARGET_DENSITY,
 54        RESOURCE_MAXIMUM_AMOUNT=parametermanager.parameters.RESOURCE_MAXIMUM_AMOUNT,
 55        rng_seed=parametermanager.parameters.RANDOM_SEED,
 56    )
 57
 58    # Resources
 59    resources.init(
 60        RESOURCE_ADDITIVE_GROWTH=parametermanager.parameters.RESOURCE_ADDITIVE_GROWTH,
 61        RESOURCE_MULTIPLICATIVE_GROWTH=parametermanager.parameters.RESOURCE_MULTIPLICATIVE_GROWTH,
 62        RESOURCE_MAXIMUM_AMOUNT=parametermanager.parameters.RESOURCE_MAXIMUM_AMOUNT,
 63        RESOURCE_INITIAL_AMOUNT=parametermanager.parameters.RESOURCE_INITIAL_AMOUNT,
 64    )
 65
 66    # Reproduction
 67    mutator.init(
 68        MUTATION_RATIO=parametermanager.parameters.MUTATION_RATIO,
 69        MUTATION_METHOD=parametermanager.parameters.MUTATION_METHOD,
 70        MUTATION_AGE_MULTIPLIER=parametermanager.parameters.MUTATION_AGE_MULTIPLIER,
 71    )
 72    self.sexsystem = SexSystem()
 73    self.matingmanager = MatingManager()
 74
 75    # Genetic architecture
 76    ploider.init(
 77        REPRODUCTION_MODE=parametermanager.parameters.REPRODUCTION_MODE,
 78        DOMINANCE_FACTOR=parametermanager.parameters.DOMINANCE_FACTOR,
 79        PLOIDY=parametermanager.parameters.PLOIDY,
 80    )
 81
 82    # Other
 83    self.popgenstats = PopgenStats()
 84
 85    ################################
 86    # DEPENDENT on other submodels #
 87    ################################
 88
 89    # Reproduction
 90    self.reproduction = Reproducer(
 91        RECOMBINATION_RATE=parametermanager.parameters.RECOMBINATION_RATE,
 92        REPRODUCTION_MODE=parametermanager.parameters.REPRODUCTION_MODE,
 93        mutator=mutator,
 94    )
 95
 96    # Genetic architecture
 97    self.architect = Architect(
 98        GENARCH_TYPE=parametermanager.parameters.GENARCH_TYPE,
 99        BITS_PER_LOCUS=parametermanager.parameters.BITS_PER_LOCUS,
100        PHENOMAP=parametermanager.parameters.PHENOMAP,
101        AGE_LIMIT=parametermanager.parameters.AGE_LIMIT,
102        THRESHOLD=parametermanager.parameters.THRESHOLD,
103        ENVDRIFT_RATE=parametermanager.parameters.ENVDRIFT_RATE,
104        MODIF_GENOME_SIZE=parametermanager.parameters.MODIF_GENOME_SIZE,
105    )
def init(self, parametermanager):
 18def init(self, parametermanager):
 19
 20    ##################################
 21    # INDEPENDENT of other submodels #
 22    ##################################
 23
 24    self.abiotic = Abiotic(
 25        ABIOTIC_HAZARD_SHAPE=parametermanager.parameters.ABIOTIC_HAZARD_SHAPE,
 26        ABIOTIC_HAZARD_OFFSET=parametermanager.parameters.ABIOTIC_HAZARD_OFFSET,
 27        ABIOTIC_HAZARD_AMPLITUDE=parametermanager.parameters.ABIOTIC_HAZARD_AMPLITUDE,
 28        ABIOTIC_HAZARD_PERIOD=parametermanager.parameters.ABIOTIC_HAZARD_PERIOD,
 29    )
 30    self.predation = Predation(
 31        PREDATOR_GROWTH=parametermanager.parameters.PREDATOR_GROWTH,
 32        PREDATION_RATE=parametermanager.parameters.PREDATION_RATE,
 33    )
 34    starvation.init(
 35        STARVATION_MORTALITY_FACTOR=parametermanager.parameters.STARVATION_MORTALITY_FACTOR,
 36        STARVATION_MORTALITY_MAXIMUM=parametermanager.parameters.STARVATION_MORTALITY_MAXIMUM,
 37    )
 38    self.infection = Infection(
 39        BACKGROUND_INFECTIVITY=parametermanager.parameters.BACKGROUND_INFECTIVITY,
 40        TRANSMISSIBILITY=parametermanager.parameters.TRANSMISSIBILITY,
 41        RECOVERY_RATE=parametermanager.parameters.RECOVERY_RATE,
 42        FATALITY_RATE=parametermanager.parameters.FATALITY_RATE,
 43    )
 44    frailty.init(
 45        FRAILTY_MODIFIER=parametermanager.parameters.FRAILTY_MODIFIER,
 46        AGE_LIMIT=parametermanager.parameters.AGE_LIMIT,
 47    )
 48
 49    # Spatial lattice — opt-in via LATTICE_MODE. When False (default), init
 50    # leaves the lattice singleton inert and no other submodel calls it.
 51    lattice.init(
 52        LATTICE_MODE=parametermanager.parameters.LATTICE_MODE,
 53        INITIAL_POPULATION_SIZE=parametermanager.parameters.INITIAL_POPULATION_SIZE,
 54        LATTICE_TARGET_DENSITY=parametermanager.parameters.LATTICE_TARGET_DENSITY,
 55        RESOURCE_MAXIMUM_AMOUNT=parametermanager.parameters.RESOURCE_MAXIMUM_AMOUNT,
 56        rng_seed=parametermanager.parameters.RANDOM_SEED,
 57    )
 58
 59    # Resources
 60    resources.init(
 61        RESOURCE_ADDITIVE_GROWTH=parametermanager.parameters.RESOURCE_ADDITIVE_GROWTH,
 62        RESOURCE_MULTIPLICATIVE_GROWTH=parametermanager.parameters.RESOURCE_MULTIPLICATIVE_GROWTH,
 63        RESOURCE_MAXIMUM_AMOUNT=parametermanager.parameters.RESOURCE_MAXIMUM_AMOUNT,
 64        RESOURCE_INITIAL_AMOUNT=parametermanager.parameters.RESOURCE_INITIAL_AMOUNT,
 65    )
 66
 67    # Reproduction
 68    mutator.init(
 69        MUTATION_RATIO=parametermanager.parameters.MUTATION_RATIO,
 70        MUTATION_METHOD=parametermanager.parameters.MUTATION_METHOD,
 71        MUTATION_AGE_MULTIPLIER=parametermanager.parameters.MUTATION_AGE_MULTIPLIER,
 72    )
 73    self.sexsystem = SexSystem()
 74    self.matingmanager = MatingManager()
 75
 76    # Genetic architecture
 77    ploider.init(
 78        REPRODUCTION_MODE=parametermanager.parameters.REPRODUCTION_MODE,
 79        DOMINANCE_FACTOR=parametermanager.parameters.DOMINANCE_FACTOR,
 80        PLOIDY=parametermanager.parameters.PLOIDY,
 81    )
 82
 83    # Other
 84    self.popgenstats = PopgenStats()
 85
 86    ################################
 87    # DEPENDENT on other submodels #
 88    ################################
 89
 90    # Reproduction
 91    self.reproduction = Reproducer(
 92        RECOMBINATION_RATE=parametermanager.parameters.RECOMBINATION_RATE,
 93        REPRODUCTION_MODE=parametermanager.parameters.REPRODUCTION_MODE,
 94        mutator=mutator,
 95    )
 96
 97    # Genetic architecture
 98    self.architect = Architect(
 99        GENARCH_TYPE=parametermanager.parameters.GENARCH_TYPE,
100        BITS_PER_LOCUS=parametermanager.parameters.BITS_PER_LOCUS,
101        PHENOMAP=parametermanager.parameters.PHENOMAP,
102        AGE_LIMIT=parametermanager.parameters.AGE_LIMIT,
103        THRESHOLD=parametermanager.parameters.THRESHOLD,
104        ENVDRIFT_RATE=parametermanager.parameters.ENVDRIFT_RATE,
105        MODIF_GENOME_SIZE=parametermanager.parameters.MODIF_GENOME_SIZE,
106    )