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
14
15
16def init(self, parametermanager):
17
18    ##################################
19    # INDEPENDENT of other submodels #
20    ##################################
21
22    self.abiotic = Abiotic(
23        ABIOTIC_HAZARD_SHAPE=parametermanager.parameters.ABIOTIC_HAZARD_SHAPE,
24        ABIOTIC_HAZARD_OFFSET=parametermanager.parameters.ABIOTIC_HAZARD_OFFSET,
25        ABIOTIC_HAZARD_AMPLITUDE=parametermanager.parameters.ABIOTIC_HAZARD_AMPLITUDE,
26        ABIOTIC_HAZARD_PERIOD=parametermanager.parameters.ABIOTIC_HAZARD_PERIOD,
27    )
28    self.predation = Predation(
29        PREDATOR_GROWTH=parametermanager.parameters.PREDATOR_GROWTH,
30        PREDATION_RATE=parametermanager.parameters.PREDATION_RATE,
31    )
32    starvation.init(
33        STARVATION_MORTALITY_FACTOR=parametermanager.parameters.STARVATION_MORTALITY_FACTOR,
34        STARVATION_MORTALITY_MAXIMUM=parametermanager.parameters.STARVATION_MORTALITY_MAXIMUM,
35    )
36    self.infection = Infection(
37        BACKGROUND_INFECTIVITY=parametermanager.parameters.BACKGROUND_INFECTIVITY,
38        TRANSMISSIBILITY=parametermanager.parameters.TRANSMISSIBILITY,
39        RECOVERY_RATE=parametermanager.parameters.RECOVERY_RATE,
40        FATALITY_RATE=parametermanager.parameters.FATALITY_RATE,
41    )
42    frailty.init(
43        FRAILTY_MODIFIER=parametermanager.parameters.FRAILTY_MODIFIER,
44        AGE_LIMIT=parametermanager.parameters.AGE_LIMIT,
45    )
46
47    # Resources
48    resources.init(
49        RESOURCE_ADDITIVE_GROWTH=parametermanager.parameters.RESOURCE_ADDITIVE_GROWTH,
50        RESOURCE_MULTIPLICATIVE_GROWTH=parametermanager.parameters.RESOURCE_MULTIPLICATIVE_GROWTH,
51        RESOURCE_MAXIMUM_AMOUNT=parametermanager.parameters.RESOURCE_MAXIMUM_AMOUNT,
52        RESOURCE_INITIAL_AMOUNT=parametermanager.parameters.RESOURCE_INITIAL_AMOUNT,
53    )
54
55    # Reproduction
56    mutator.init(
57        MUTATION_RATIO=parametermanager.parameters.MUTATION_RATIO,
58        MUTATION_METHOD=parametermanager.parameters.MUTATION_METHOD,
59        MUTATION_AGE_MULTIPLIER=parametermanager.parameters.MUTATION_AGE_MULTIPLIER,
60    )
61    self.sexsystem = SexSystem()
62    self.matingmanager = MatingManager()
63
64    # Genetic architecture
65    ploider.init(
66        REPRODUCTION_MODE=parametermanager.parameters.REPRODUCTION_MODE,
67        DOMINANCE_FACTOR=parametermanager.parameters.DOMINANCE_FACTOR,
68        PLOIDY=parametermanager.parameters.PLOIDY,
69    )
70
71    # Other
72    self.popgenstats = PopgenStats()
73
74    ################################
75    # DEPENDENT on other submodels #
76    ################################
77
78    # Reproduction
79    self.reproduction = Reproducer(
80        RECOMBINATION_RATE=parametermanager.parameters.RECOMBINATION_RATE,
81        REPRODUCTION_MODE=parametermanager.parameters.REPRODUCTION_MODE,
82        mutator=mutator,
83    )
84
85    # Genetic architecture
86    self.architect = Architect(
87        GENARCH_TYPE=parametermanager.parameters.GENARCH_TYPE,
88        BITS_PER_LOCUS=parametermanager.parameters.BITS_PER_LOCUS,
89        PHENOMAP=parametermanager.parameters.PHENOMAP,
90        AGE_LIMIT=parametermanager.parameters.AGE_LIMIT,
91        THRESHOLD=parametermanager.parameters.THRESHOLD,
92        ENVDRIFT_RATE=parametermanager.parameters.ENVDRIFT_RATE,
93        MODIF_GENOME_SIZE=parametermanager.parameters.MODIF_GENOME_SIZE,
94    )
def init(self, parametermanager):
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    # Resources
49    resources.init(
50        RESOURCE_ADDITIVE_GROWTH=parametermanager.parameters.RESOURCE_ADDITIVE_GROWTH,
51        RESOURCE_MULTIPLICATIVE_GROWTH=parametermanager.parameters.RESOURCE_MULTIPLICATIVE_GROWTH,
52        RESOURCE_MAXIMUM_AMOUNT=parametermanager.parameters.RESOURCE_MAXIMUM_AMOUNT,
53        RESOURCE_INITIAL_AMOUNT=parametermanager.parameters.RESOURCE_INITIAL_AMOUNT,
54    )
55
56    # Reproduction
57    mutator.init(
58        MUTATION_RATIO=parametermanager.parameters.MUTATION_RATIO,
59        MUTATION_METHOD=parametermanager.parameters.MUTATION_METHOD,
60        MUTATION_AGE_MULTIPLIER=parametermanager.parameters.MUTATION_AGE_MULTIPLIER,
61    )
62    self.sexsystem = SexSystem()
63    self.matingmanager = MatingManager()
64
65    # Genetic architecture
66    ploider.init(
67        REPRODUCTION_MODE=parametermanager.parameters.REPRODUCTION_MODE,
68        DOMINANCE_FACTOR=parametermanager.parameters.DOMINANCE_FACTOR,
69        PLOIDY=parametermanager.parameters.PLOIDY,
70    )
71
72    # Other
73    self.popgenstats = PopgenStats()
74
75    ################################
76    # DEPENDENT on other submodels #
77    ################################
78
79    # Reproduction
80    self.reproduction = Reproducer(
81        RECOMBINATION_RATE=parametermanager.parameters.RECOMBINATION_RATE,
82        REPRODUCTION_MODE=parametermanager.parameters.REPRODUCTION_MODE,
83        mutator=mutator,
84    )
85
86    # Genetic architecture
87    self.architect = Architect(
88        GENARCH_TYPE=parametermanager.parameters.GENARCH_TYPE,
89        BITS_PER_LOCUS=parametermanager.parameters.BITS_PER_LOCUS,
90        PHENOMAP=parametermanager.parameters.PHENOMAP,
91        AGE_LIMIT=parametermanager.parameters.AGE_LIMIT,
92        THRESHOLD=parametermanager.parameters.THRESHOLD,
93        ENVDRIFT_RATE=parametermanager.parameters.ENVDRIFT_RATE,
94        MODIF_GENOME_SIZE=parametermanager.parameters.MODIF_GENOME_SIZE,
95    )