Ejemplo n.º 1
0
coverages = [0.6, 0.7, 0.8, 0.9, 1.0]

SMC = [
            [
               ModFn(DTKConfigBuilder.set_param, 'Run_Number', seed),
               ModFn(DTKConfigBuilder.set_param, 'Simulation_Duration', smc_start_day+365),
               ModFn(add_smc_group,
                         start_days=[smc_start_day],
                         coverage=smc_coverage, drug='DP', agemax=5),
               ModFn(add_summary_report_by_start_day, start_day=smc_start_day),
            ]
           for smc_coverage in coverages
           for seed in range(num_seeds)
        ]

builder = ModBuilder.from_list(SMC)

run_sim_args = {'config_builder': cb,
                'exp_name': expname,
                'exp_builder': builder}


if __name__ == "__main__":

    SetupParser.default_block = 'HPC'

    SetupParser.init()
    exp_manager = ExperimentManagerFactory.init()
    exp_manager.run_simulations(**run_sim_args)
    # Wait for the simulations to be done
    exp_manager.wait_for_finished(verbose=True)
Ejemplo n.º 2
0
                   nreports=1,
                   age_bins=[5, 125],
                   parasitemia_bins=[0, 50, 200, 500, 2000000])

healthseeking_coverage_pairs = [[0.30, 0.30]]  # as U5 and then >5 year olds

# creates a sweep of simulations with varying coverages and Run_Number seeds
healthseeking = [[
    ModFn(sweep_coverages, coverages),
    ModFn(scale_linear_spline_max_habitat, x),
    ModFn(DTKConfigBuilder.set_param, 'Run_Number', seed)
] for x in np.logspace(-3, -0.3, 50)
                 for coverages in healthseeking_coverage_pairs
                 for seed in range(num_seeds)]

builder = ModBuilder.from_list(healthseeking)

# Run args
run_sim_args = {
    'config_builder': cb,
    'exp_name': exp_name,
    'exp_builder': builder
}

if __name__ == "__main__":

    if not SetupParser.initialized:
        SetupParser.init('HPC')

    exp_manager = ExperimentManagerFactory.init()
    exp_manager.run_simulations(**run_sim_args)
    def add_my_outbreak(cb, start_day):
        recurring_outbreak(cb, start_day=start_day, repetitions=1)
        return {'outbreak_start_day': start_day}

    builder = ModBuilder.from_list([[
        ModFn(add_my_outbreak, start_day=x * 365),
        ModFn(DTKConfigBuilder.set_param, 'Run_Number', y),
        ModFn(DTKConfigBuilder.set_param, 'Simulation_Duration',
              (x * 365) + (3 * 365)),
        ModFn(add_filtered_report, start=x * 365, end=(x * 365) + (3 * 365)),
        ModFn(add_health_seeking,
              start_day=0,
              targets=[{
                  'trigger': 'NewClinicalCase',
                  'coverage': 1,
                  'agemin': 0,
                  'agemax': 200,
                  'seek': 1,
                  'rate': 0.3
              }, {
                  'trigger': 'NewSevereCase',
                  'coverage': 1,
                  'seek': 1,
                  'rate': 0.5
              }])
    ] for y in range(num_seeds) for x in range(51)])
    #ModFn(add_my_outbreak, start_day=x),
    #ModFn(add_health_seeking, start_day=0, targets=[
    #{'trigger': 'NewClinicalCase', 'coverage': 1, 'agemin': 0, 'agemax': 200, 'seek': 1,'rate': 0.3},
    #{'trigger': 'NewSevereCase', 'coverage': 1, 'seek': 1, 'rate': 0.5}])
def perfect_health_seeking(cb):
    add_health_seeking(cb, start_day=survey_day,
                       targets=[dict(trigger='NewClinicalCase', coverage=1.0, seek=1.0, rate=0.3)])
    return cb.set_param('Config_Name', 'perfect_health_seeking')


def perfect_MSAT(cb):
    add_drug_campaign(cb, campaign_type='MSAT', drug_code='DP',
                      start_days=[survey_day + 30],
                      coverage=1.0, repetitions=3, interval=60)
    return cb.set_param('Config_Name', 'perfect_MSAT')


mod_fn_list = [[ModFn(baseline)], [ModFn(perfect_health_seeking)], [ModFn(perfect_MSAT)]]
builder = ModBuilder.from_list(mod_fn_list)

run_sim_args = {'config_builder': cb,
                'exp_name': exp_name,
                'exp_builder': builder
                }

"""
Analyzer to simply copy all survey-report JSON down from all simulations
"""


class MyDownloadAnalyzer(DownloadAnalyzer):

    def __init__(self):
        super(MyDownloadAnalyzer, self).__init__(
Ejemplo n.º 5
0
                     "class": 'WaningEffectConstant',
                     "Initial_Effect": killing,
                 }
             },
             duration=10000)
    # add_ATSB(cb, coverage=coverage, start=100, duration=365, kill_cfg=killing_cfg[1])
    return {'killing': killing, 'startDay': startDay}


# add_ATSB(cb, start=100, coverage=1, duration=365)

builder = ModBuilder.from_list([
    [
        ModFn(atsb_fn, killing, (years - 2) * 365),
        ModFn(DTKConfigBuilder.set_param, 'x_Temporary_Larval_Habitat', hab)
        # Run simulation with coverage, duration, or repetitions spread.
        # Don't leave duration over 210 because we don't know how ATSBs act after 210 days, or how they act after Dec 31.
    ] for killing in np.linspace(0, 0.25, 20)
    for hab in np.arange(0.2, 1, 0.478 / 10)
])

run_sim_args = {
    'config_builder': cb,
    'exp_name': exp_name,
    'exp_builder': builder
}

if __name__ == "__main__":
    SetupParser.init('HPC')
    exp_manager = ExperimentManagerFactory.init()
    exp_manager.run_simulations(**run_sim_args)
    no_resistance = [
        [ModFn(DTKConfigBuilder.set_param, 'Run_Number', seed),
         ModFn(change_vector_params, species='gambiae', mutation_rate1=mutation_rate1,
               mutation_rate2=mutation_rate2, serialization_seed=0),
         ModFn(DTKConfigBuilder.set_param, 'Serialized_Population_Path', ''),
         ModFn(add_ITNs, coverage=0.6, start=start, insecticide='carbamate', label='No_resistance'),
         ModFn(add_ITNs, coverage=0.6, start=start + 3 * 365, insecticide='carbamate', label='No_resistance')
         ]
        for seed in range(num_seeds)
        for mutation_rate1 in [0.01]
        for mutation_rate2 in [0]
        for start in [180 + extra * 365]
    ]

    builder = ModBuilder.from_list(no_rotation_three_year + no_nets + no_resistance)

    ############################### REPORTERS ###############################################
    vector_genetics_report = 1
    vector_stats_report = 0
    malaria_summary_report = 0

    add_reporters(cb, vector_genetics_report=vector_genetics_report)

    ############################## HEALTH SEEKING ###########################################
    # Health seeking
    add_health_seeking(cb,
                       targets=[{'trigger': 'NewClinicalCase',
                                 'coverage': 0.5,
                                 'agemin': 0,
                                 'agemax': 100,
Ejemplo n.º 7
0
              smc_start_day + 365),
        ModFn(
            add_smc_group,
            start_days=[smc_start_day],
            coverage=smc_coverage,
            drug=drug,
            agemax=agemax,
        ),
        ModFn(add_summary_report, start_day=smc_start_day),
        ModFn(DTKConfigBuilder.set_param, 'Serialized_Population_Path',
              '{path}/output'.format(path=path))
    ] for smc_start_day in intervention_days for smc_coverage in coverages
           for seed in range(num_seeds) for path in serialized_file_output
           for agemax in [5, 10] for drug in ['DP']]

    builder = ModBuilder.from_list(expanded_SMC_IVM)

    set_climate_constant(cb)
    set_species_param(
        cb, 'gambiae', 'Larval_Habitat_Types', {
            "LINEAR_SPLINE": {
                "Capacity_Distribution_Per_Year": {
                    "Times": [
                        0.0, 30.417, 60.833, 91.25, 121.667, 152.083, 182.5,
                        212.917, 243.333, 273.75, 304.167, 334.583
                    ],
                    "Values":
                    [3, 0.8, 1.25, 0.1, 2.7, 8, 4, 35, 6.8, 6.5, 2.6, 2.1]
                },
                "Max_Larval_Capacity": 1e9
            }
Ejemplo n.º 8
0
    add_InputEIR(cb, [x*scale_factor for x in monthly_EIR])
    return { 'annual EIR' : scale_factor*sum(monthly_EIR)}

# builder = ModBuilder.from_list( [[ ModFn(sweep_scale_factor, x)] for x in [0.01,10,100]])
report_years = 1
report_start = 40
add_summary_report(cb,
                   start = 365*report_start,
                   description='Annual_Report',
                   interval = 365,
                   nreports = 1,
                   age_bins = [2, 10, 125],
                   parasitemia_bins = [0, 50, 200, 500, 2000000]
                   )

builder = ModBuilder.from_list( [[ ModFn(sweep_scale_factor, x)] for x in np.logspace(-3, 0, 200)])




# Run args
run_sim_args = {'config_builder': cb,
                'exp_name': exp_name,
                'exp_builder': builder
                }

if __name__ == "__main__":

    if not SetupParser.initialized:
        SetupParser.init('HPC')
Ejemplo n.º 9
0
            ModFn(add_summary_report, start_day=smc_start_day),
            ModFn(DTKConfigBuilder.set_param, 'Serialized_Population_Path',
                  '{path}/output'.format(path=
                                         get_outpath_for_serialized_file(simmap, seed)))
        ]
        for smc_start_day in intervention_days
        for smc_coverage in coverages
        for seed in range(num_seeds)
        for simmap in [sim_map]
        for agemax in [5, 15]
        for drug in ['DP']
        for drug_code in [30, 90]
    ]

    # builder = ModBuilder.from_list(SMC3)
    builder = ModBuilder.from_list(SMC1+SMC2+SMC3)

    set_climate_constant(cb)
    set_species_param(cb, 'gambiae', 'Larval_Habitat_Types',
                      {"LINEAR_SPLINE": {
                          "Capacity_Distribution_Per_Year": {
                              "Times": [0.0, 30.417, 60.833, 91.25, 121.667, 152.083,
                                        182.5, 212.917, 243.333, 273.75, 304.167, 334.583],
                              # "Values": [1, 0.25, 0.1, 1, 1, 0.5, 12, 5, 3, 2, 1.5, 1.5]
                              "Values": [3, 0.8,  1.25, 0.1,  2.7, 8, 4, 35, 6.8,  6.5, 2.6, 2.1]
                          },
                          "Max_Larval_Capacity": 1e9
                      }})
    set_species_param(cb, "gambiae", "Indoor_Feeding_Fraction", 0.9)

    cb.update_params({"Demographics_Filenames": ['Calibration\single_node_demographics.json'],
                        ]  #HLC: 0.023478, .065638        CDC: 0.136566523, .098484065
                    }
                }
            },
            duration=duration)
    # add_ATSB(cb, coverage=coverage, start=100, duration=365, kill_cfg=killing_cfg[1])
    return {'coverage': coverage, 'duration': duration, 'repetitions': reps}


# add_ATSB(cb, start=100, coverage=1, duration=365)

builder = ModBuilder.from_list([
    [
        ModFn(atsb_fn, cov, dur, reps),
        ModFn(DTKConfigBuilder.set_param, 'Run_Number', x)
        # Run simulation with coverage, duration, or repetitions spread.
        # Don't leave duration over 210 because we don't know how ATSBs act after 210 days, or how they act after Dec 31.
    ] for cov in [0.0, 0.25, 0.5] for dur in [210] for reps in [1, 3]
    for x in range(2)
])

run_sim_args = {
    'config_builder': cb,
    'exp_name': exp_name,
    'exp_builder': builder
}

if __name__ == "__main__":
    SetupParser.init('HPC')
    exp_manager = ExperimentManagerFactory.init()
    exp_manager.run_simulations(**run_sim_args)
    cb = DTKConfigBuilder.from_defaults('MALARIA_SIM',
                                        Simulation_Duration=int(365 *
                                                                num_years))

    update_config_params(cb, direc=dir, geography=geography)
    add_SerializationTimesteps(cb, [num_years * 365], end_at_final=True)

    ########################## VECTOR GENETICS ####################################################

    builder = ModBuilder.from_list([
        [
            ModFn(DTKConfigBuilder.set_param, 'Run_Number', seed),
            ModFn(change_vector_params,
                  species='gambiae',
                  mutation_rate1=mutation_rate,
                  mutation_rate2=mutation_rate,
                  serialization_seed=seed)
        ] for seed in range(num_seeds)
        for mutation_rate in [0]  # pow(10, x) for x in range(-5, 0)
    ])

    ############################### REPORTERS ########################################
    vector_genetics_report = 1
    vector_stats_report = 0
    malaria_summary_report = 0

    add_reporters(cb, vector_genetics_report=vector_genetics_report)

    ################################ INTERVENTIONS ###################################
    #
Ejemplo n.º 12
0
    cb.update_params({
        "Report_Event_Recorder":
        1,
        "Listed_Events": ["Immigrating", "Emigrating"],
        "Report_Event_Recorder_Events": ["Immigrating", "Emigrating"],
        "Report_Event_Recorder_Ignore_Events_In_List":
        0
    })

    ########################## VECTOR GENETICS ####################################################
    # Add genes
    genes = {'gambiae': [{"Alleles": {"a0": 1.0, "a1": 0.0}, "Mutations": {}}]}
    set_species_genes(cb, genes)

    builder = ModBuilder.from_list(
        [[ModFn(DTKConfigBuilder.set_param, 'Run_Number', seed)]
         for seed in range(num_seeds)])

    ################################ INTERVENTIONS ############################################

    # Health seeking
    add_health_seeking(cb,
                       targets=[{
                           'trigger': 'NewClinicalCase',
                           'coverage': 0.5,
                           'agemin': 0,
                           'agemax': 100,
                           'seek': 1,
                           'rate': 0.3
                       }, {
                           'trigger': 'NewSevereCase',
    #     '//internal.idm.ctr/IDM/Home/pselvaraj/output/Matsari_homogeneousbiting_serialization_2017_10_02_12_00_07_818000/89d/00c/08a/89d00c08-a4a7-e711-9414-f0921c16b9e5']
    exp_name = ['2ac6fce6-9554-e811-a2bf-c4346bcb7274']

    for exp in exp_name:
        temp_sim_map = make_simmap(exp)
        if 'sim_map' not in locals():
            sim_map = temp_sim_map
        else:
            sim_map = pd.concat([sim_map, temp_sim_map])

    builder = ModBuilder.from_list([[
        ModFn(DTKConfigBuilder.set_param, 'Run_Number', seed),
        ModFn(DTKConfigBuilder.set_param, 'Simulation_Duration',
              start_day + 365),
        ModFn(add_summary_report, start_day=start_day),
        ModFn(
            DTKConfigBuilder.set_param, 'Serialized_Population_Path',
            '{path}/output'.format(
                path=get_outpath_for_serialized_file(simmap, seed)))
    ] for seed in range(num_seeds) for simmap in [sim_map]
                                    for start_day in intervention_days])

    # configure_dapelogo(cb)
    # cb.set_collection_id('1c189292-5471-e711-9401-f0921c16849d')
    set_climate_constant(cb)
    set_species_param(
        cb,
        'gambiae',
        'Larval_Habitat_Types',
        {
            "LINEAR_SPLINE": {
 old_builder = ModBuilder.from_list(
     [[
         ModFn(
             DTKConfigBuilder.update_params, {
                 "Serialized_Population_Path":
                 os.path.join(df["outpath"][x], "output"),
                 "Serialized_Population_Filenames": [
                     name for name in os.listdir(
                         os.path.join(df["outpath"][x], "output"))
                     if "state" in name
                 ],
                 "Run_Number":
                 df["Run_Number"][x],
                 "x_Temporary_Larval_Habitat":
                 df["x_Temporary_Larval_Habitat"][x]
             }),
         ModFn(add_annual_itns,
               year_count=years,
               n_rounds=1,
               coverage=itn_cov / 100,
               discard_halflife=180,
               start_day=5,
               IP=[{
                   "NetUsage": "LovesNets"
               }]),
         ModFn(assign_net_ip, hates_net_prop),
         ModFn(add_irs_group,
               coverage=irs_cov / 100,
               decay=180,
               start_days=[365 * start for start in range(years)]),
         ModFn(add_healthseeking_by_coverage,
               coverage=act_cov / 100,
               rate=0.15),
     ] for x in df.index for hates_net_prop in net_hating_props
      for itn_cov in intervention_coverages
      for irs_cov in intervention_coverages
      for act_cov in intervention_coverages])
            }
        }]
    }
    set_species_genes(cb, genes)

    copy_to_likelihoods = np.arange(0.5, 0.59, 0.1).tolist()

    # Add gene trait modifiers

    gene_drive = [[
        ModFn(DTKConfigBuilder.set_param, 'Run_Number', seed),
        ModFn(add_release, label='Gene_drive'),
        ModFn(add_driver, copy_to_likelihood=likelihood),
    ] for seed in range(num_seeds) for likelihood in copy_to_likelihoods]

    builder = ModBuilder.from_list(gene_drive)

    # Call output reporters
    cb.add_reports(
        BaseVectorGeneticsReport(
            type='ReportVectorGenetics',
            species='arabiensis',
            gender='VECTOR_FEMALE',
            include_vector_state_columns=1,
            stratify_by='SPECIFIC_GENOME',
            combine_similar_genomes=1,
            specific_genome_combinations_for_stratification=[{
                "Allele_Combination": [["X", "X"], ["a1", "*"]]
            }, {
                "Allele_Combination": [["X", "X"], ["a0", "a0"]]
            }]))
Ejemplo n.º 16
0
    cb.update_params({"x_Temporary_Larval_Habitat": scale_factor})
    return {'larval_habitat_multiplier': scale_factor}


#Reporting -----------------------------------------------------------------------------------------------------------
add_summary_report(cb,
                   start=365 * report_start,
                   description='Annual_Report',
                   interval=365,
                   nreports=1,
                   age_bins=[2, 10, 125],
                   parasitemia_bins=[0, 50, 200, 500, 2000000])

builder = ModBuilder.from_list([[
    ModFn(sweep_larval_habitat, scale_factor=habitat_multiplier),
    ModFn(DTKConfigBuilder.set_param, 'Run_Number', seed)
] for habitat_multiplier in np.logspace(-2, 1, 50)
                                for seed in range(num_seeds)])

# builder = ModBuilder.from_list( [[ ModFn(sweep_scale_factor, x)] for x in [0.01,10,100]])
# report_years = 1
# report_start = 40

# Run args
run_sim_args = {
    'config_builder': cb,
    'exp_name': exp_name,
    'exp_builder': builder
}

if __name__ == "__main__":
        [ModFn(DTKConfigBuilder.set_param, 'Run_Number', seed),
         ModFn(DTKConfigBuilder.set_param, 'Serialized_Population_Path', ''),
         ModFn(add_nets, coverage=net_coverage, number=0, num_nodes=0, start_day=start_day),
         ModFn(add_drivers, copy_to_likelihood=likelihood),
         ModFn(add_trait_modifiers, transmission_to_human=transmission_prob)
         ]
        for seed in range(num_seeds)
        for start_day in [0]
        for number in [0]
        for numnodes in [0]
        for net_coverage in [0.0]
        for likelihood in [0.0]
        for transmission_prob in [1.0]
    ]

    builder = ModBuilder.from_list(VC_and_GM + VC + GM + No_interventions)
    # builder = ModBuilder.from_list(VC)

    ################################ INTERVENTIONS ###################################

    # Health seeking
    add_health_seeking(cb,
                       targets=[{'trigger': 'NewClinicalCase',
                                 'coverage': 0.5,
                                 'agemin': 0,
                                 'agemax': 100,
                                 'seek': 1,
                                 'rate': 0.3},
                                {'trigger': 'NewSevereCase',
                                 'coverage': 0.8,
                                 'agemin': 0,
Ejemplo n.º 18
0
from malaria.interventions.malaria_challenge import add_challenge_trial
from simtools.ModBuilder import  ModFn, ModBuilder
from malaria.reports.MalariaReport import add_survey_report
from malaria.reports.MalariaReport import add_summary_report

burnin_duration = 25550

monthlyEIRs_1 = [1.9375, 3.375, 7.5, 1.9375, 0.5, 0.5, 0.5, 0.5, 0.25, 0.5, 0.5,1.0]
monthlyEIRs_2 = [3.875, 7.75, 15.0, 3.875, 1, 1, 1, 1, 0.5, 1, 1,2]

exp_name  = 'Challenge_bite_20_350_Dan_fix'

builder = ModBuilder.from_list(
    [[ModFn(add_challenge_trial, x, disable_vitals = False),
      ModFn(add_survey_report,[x],reporting_interval = 730),
      ModFn(add_summary_report,x,interval = 365/12,description = 'Monthly Report',
             age_bins = [1.0, 4.0, 8.0, 18.0, 28.0, 43.0, 400000.0],
             parasitemia_bins = [0.0, 16.0, 409.0, 4000000.0])
     ]
      for x in range(730,740,10)])


# builder = ModBuilder.from_list(
#     [[ModFn(add_InputEIR, monthlyEIRs_1, start_day=x, nodes={
#             "Node_List": [
#                1
#             ],
#             "class": "NodeSetNodeList"
#          }),
#       ModFn(add_InputEIR, monthlyEIRs_2, start_day=x, nodes={
#             "Node_List": [
#                2
Ejemplo n.º 19
0
            "Decay_Time_Constant": 30
        }
    }]

    add_ATSB(cb,
             coverage=coverage,
             start=100,
             duration=365,
             kill_cfg=killing_cfg[1])
    return {'coverage': coverage, 'initial_killing': killing}


# add_ATSB(cb, start=100, coverage=1, duration=365)

builder = ModBuilder.from_list([[
    ModFn(atsb_fn, cov, kill),
    ModFn(DTKConfigBuilder.set_param, 'Run_Number', x)
] for cov in [0, 1] for kill in [0.15] for x in range(1)])

run_sim_args = {
    'config_builder': cb,
    'exp_name': exp_name,
    'exp_builder': builder
}

if __name__ == "__main__":
    SetupParser.init('HPC')
    exp_manager = ExperimentManagerFactory.init()
    exp_manager.run_simulations(**run_sim_args)
    # Wait for the simulations to be done
    exp_manager.wait_for_finished(verbose=True)
    assert (exp_manager.succeeded())
                    "Serialized_Population_Filenames": [
                        name for name in os.listdir(
                            os.path.join(df["outpath"][x], "output"))
                        if "state" in name
                    ],
                    "Run_Number":
                    y,
                    "x_Temporary_Larval_Habitat":
                    df["x_Temporary_Larval_Habitat"][x]
                }) for x in df.index for y in range(num_runs)
        ]

        builder = ModBuilder.from_list(
            [[
                burnin_fn,
                ModFn(add_intervention, intervention, coverage,
                      species_details)
            ] for burnin_fn in from_burnin_list
             for intervention in interventions
             for coverage in np.linspace(0, 1, num_coverage_bins)])

    else:
        print("building burnin")
        builder = ModBuilder.from_list(
            [[
                ModFn(
                    DTKConfigBuilder.update_params, {
                        "Run_Number": run_num,
                        "x_Temporary_Larval_Habitat": 10**hab_exp
                    }),
            ] for run_num in range(10)
             for hab_exp in np.concatenate((np.arange(-3.75, -2, 0.25),
    set_species_param(cb, 'funestus', 'Larval_Habitat_Types',
                      {"CONSTANT": 11250000000})
    set_species_param(cb, 'funestus', 'Male_Life_Expectancy', 5)
    set_species_param(cb, 'funestus', 'Adult_Life_Expectancy', 10)
    set_species_param(cb, 'funestus', 'Transmission_Rate', 0.5)
    set_species_param(cb, 'funestus', 'Indoor_Feeding_Fraction', 1.0)

    ########################## VECTOR GENETICS ####################################################
    add_genes(cb)

    mendelian = [[
        ModFn(DTKConfigBuilder.set_param, 'Run_Number', seed),
        ModFn(add_release, label=label, number=10000),
    ] for seed in range(num_seeds) for label in ['No_inrogression']]

    builder = ModBuilder.from_list(mendelian)

    # Call output reporters
    cb.add_reports(
        BaseVectorGeneticsReport(
            type='ReportVectorGenetics',
            species='arabiensis',
            gender='VECTOR_FEMALE',
            include_vector_state_columns=1,
            stratify_by='SPECIFIC_GENOME',
            combine_similar_genomes=1,
            specific_genome_combinations_for_stratification=[{
                "Allele_Combination": [["X", "X"], ["a0", "*"]]
            }]))
    cb.add_reports(
        BaseVectorGeneticsReport(
        cb.update_params({'Serialization_Time_Steps': [365*years]})

    if pull_from_serialization :
        set_forest_HS = False
        burnin_df = create_sim_map(burnin_expid)
        burnin_df = burnin_df[(burnin_df['dirus_Anthropophily'] == 0.5) &
                              (burnin_df['x_Temporary_Larval_Habitat'] == 2.4)]
        update_serialization_params(cb)
        builder = ModBuilder.from_list([[
            ModFn(add_intervention, intervention, coverage, target, ivm_duration),
            ModFn(sample_anthrop_and_outdoor, 'dirus', row['dirus_Anthropophily'], row['dirus_Outdoor_Fraction']),
            ModFn(DTKConfigBuilder.update_params, {
                'x_Temporary_Larval_Habitat': row['x_Temporary_Larval_Habitat'],
                'Run_Number': y,
                'Serialized_Population_Path': os.path.join(row['path'], 'output')
            })
            ]
            for y in range(starting_seed, starting_seed+num_seeds)
            for coverage in np.linspace(0,1,6)
            for intervention in interventions
            for target in ['bothvill', 'vill1']
            for ivm_duration in ivm_durations
            for r,row in burnin_df.iterrows()
        ])

    else :
        set_forest_HS = True
        builder = ModBuilder.from_list([[
            ModFn(sample_anthrop_and_outdoor, 'dirus', anthropophily, outdoor),
            ModFn(DTKConfigBuilder.set_param, 'x_Temporary_Larval_Habitat', x_LH),
            ModFn(DTKConfigBuilder.set_param, 'Run_Number', y)]
            for y in range(num_seeds) for anthropophily in np.linspace(0,1,11) for outdoor in [0.99]