Source code for emodpy_malaria.malaria_vector_species_params

import emod_api.config.default_from_schema_no_validation as dfs


[docs] def species_params(manifest, species: str = None): """ Returns configured species parameters based on species name Args: manifest: file that contains path to the schema file species: species, configuration for which, we will be adding to the simulation. Returns: Configured species parameters """ # generic vsp = dfs.schema_to_config_subnode(manifest.schema_file, ["idmTypes", "idmType:VectorSpeciesParameters"]) vsp.parameters.Anthropophily = 0.65 vsp.parameters.Name = "gambiae" vsp.parameters.Acquire_Modifier = 0.8 vsp.parameters.Adult_Life_Expectancy = 20 vsp.parameters.Aquatic_Arrhenius_1 = 84200000000 vsp.parameters.Aquatic_Arrhenius_2 = 8328 vsp.parameters.Aquatic_Mortality_Rate = 0.1 vsp.parameters.Days_Between_Feeds = 3 vsp.parameters.Egg_Batch_Size = 100 vsp.parameters.Immature_Duration = 2 vsp.parameters.Indoor_Feeding_Fraction = 0.95 vsp.parameters.Infected_Arrhenius_1 = 117000000000 vsp.parameters.Infected_Arrhenius_2 = 8336 vsp.parameters.Infected_Egg_Batch_Factor = 0.8 vsp.parameters.Infectious_Human_Feed_Mortality_Factor = 1.5 vsp.parameters.Male_Life_Expectancy = 10 vsp.parameters.Transmission_Rate = 0.9 vsp.parameters.Vector_Sugar_Feeding_Frequency = "VECTOR_SUGAR_FEEDING_NONE" # adding habitats lht = dfs.schema_to_config_subnode(manifest.schema_file, ["idmTypes", "idmType:VectorHabitat"]) lht.parameters.Habitat_Type = "WATER_VEGETATION" lht.parameters.Max_Larval_Capacity = 20000000 # end adding larval capacity vsp.parameters.Habitats = [lht.parameters] builtin_species_list = ["gambiae", "arabiensis", "funestus", "fpg_gambiae", "minimus", "dirus"] # please update if more species is added if species == "gambiae": # same as generic species return vsp.parameters elif species == "arabiensis": # default arabiensis vsp.parameters.Name = "arabiensis" vsp.parameters.Indoor_Feeding_Fraction = 0.5 # replacing habitats lht1 = dfs.schema_to_config_subnode(manifest.schema_file, ["idmTypes", "idmType:VectorHabitat"]) lht1.parameters.Habitat_Type = "TEMPORARY_RAINFALL" lht1.parameters.Max_Larval_Capacity = 800000000 lht2 = dfs.schema_to_config_subnode(manifest.schema_file, ["idmTypes", "idmType:VectorHabitat"]) lht2.parameters.Habitat_Type = "CONSTANT" lht2.parameters.Max_Larval_Capacity = 80000000 # end adding larval capacity vsp.parameters.Habitats = [lht1.parameters, lht2.parameters] return vsp.parameters elif species == "funestus": vsp.parameters.Name = "funestus" # replacing habitats lht1 = dfs.schema_to_config_subnode(manifest.schema_file, ["idmTypes", "idmType:VectorHabitat"]) lht1.parameters.Habitat_Type = "TEMPORARY_RAINFALL" lht1.parameters.Max_Larval_Capacity = 800000000 lht2 = dfs.schema_to_config_subnode(manifest.schema_file, ["idmTypes", "idmType:VectorHabitat"]) lht2.parameters.Habitat_Type = "CONSTANT" lht2.parameters.Max_Larval_Capacity = 80000000 # end adding larval capacity vsp.parameters.Habitats = [lht1.parameters, lht2.parameters] return vsp.parameters elif species == "fpg_gambiae": # from Jon Russel's sims, still called "gambiae" vsp.parameters.Acquire_Modifier = 0.8 vsp.parameters.Indoor_Feeding_Fraction = 0.5 vsp.parameters.Vector_Sugar_Feeding_Frequency = "VECTOR_SUGAR_FEEDING_EVERY_DAY" # replacing habitats lht = dfs.schema_to_config_subnode(manifest.schema_file, ["idmTypes", "idmType:VectorHabitat"]) lht.parameters.Habitat_Type = "LINEAR_SPLINE" lht.parameters.Max_Larval_Capacity = 316227766.01683795 lht.parameters.Capacity_Distribution_Number_Of_Years = 1 # adding larval capacity cdot = dfs.schema_to_config_subnode(manifest.schema_file, ["idmTypes", "idmType:InterpolatedValueMap"]) cdot.parameters.Times = [0, 30.417, 60.833, 91.25, 121.667, 152.083, 182.5, 212.917, 243.333, 273.75, 304.167, 334.583] cdot.parameters.Values = [3, 0.8, 1.25, 0.1, 2.7, 8, 4, 35, 6.8, 6.5, 2.6, 2.1] lht.parameters.Capacity_Distribution_Over_Time = cdot.parameters # end adding larval capacity vsp.parameters.Habitats = [lht.parameters] return vsp.parameters elif species == "minimus": # from Monique Ambrose's sims vsp.parameters.Anthropophily = 0.5 vsp.parameters.Name = "minimus" vsp.parameters.Acquire_Modifier = 0.8 vsp.parameters.Adult_Life_Expectancy = 25 vsp.parameters.Egg_Batch_Size = 70 vsp.parameters.Indoor_Feeding_Fraction = 0.6 vsp.parameters.Transmission_Rate = 0.8 # adding habitats lht1 = dfs.schema_to_config_subnode(manifest.schema_file, ["idmTypes", "idmType:VectorHabitat"]) lht1.parameters.Habitat_Type = "WATER_VEGETATION" lht1.parameters.Max_Larval_Capacity = 2e7 lht2 = dfs.schema_to_config_subnode(manifest.schema_file, ["idmTypes", "idmType:VectorHabitat"]) lht2.parameters.Habitat_Type = "LINEAR_SPLINE" lht2.parameters.Max_Larval_Capacity = 3e7 lht2.parameters.Capacity_Distribution_Number_Of_Years = 1 # adding larval capacity cdot = dfs.schema_to_config_subnode(manifest.schema_file, ["idmTypes", "idmType:InterpolatedValueMap"]) cdot.parameters.Times = [0, 1, 245, 275, 364] cdot.parameters.Values = [0.2, 0.2, 0.7, 3, 3] lht2.parameters.Capacity_Distribution_Over_Time = cdot.parameters # end adding larval capacity vsp.parameters.Habitats = [lht1.parameters, lht2.parameters] return vsp.parameters elif species == "dirus": # dirus for Monique Ambrose's sims vsp.parameters.Anthropophily = 0.5 vsp.parameters.Name = "dirus" vsp.parameters.Adult_Life_Expectancy = 30 vsp.parameters.Egg_Batch_Size = 70 vsp.parameters.Indoor_Feeding_Fraction = 0.01 vsp.parameters.Transmission_Rate = 0.8 # adding habitats lht1 = dfs.schema_to_config_subnode(manifest.schema_file, ["idmTypes", "idmType:VectorHabitat"]) lht1.parameters.Habitat_Type = "CONSTANT" lht1.parameters.Max_Larval_Capacity = 1e7 lht2 = dfs.schema_to_config_subnode(manifest.schema_file, ["idmTypes", "idmType:VectorHabitat"]) lht2.parameters.Habitat_Type = "TEMPORARY_RAINFALL" lht2.parameters.Max_Larval_Capacity = 7e7 # end adding larval capacity vsp.parameters.Habitats = [lht1.parameters, lht2.parameters] return vsp.parameters else: return builtin_species_list