Example #1
0
def add_scenario_reports(cb,
                         include_summary=True,
                         include_inset=True,
                         include_bednet_events_in_counter=False):
    if include_summary:
        add_summary_report(cb, age_bins=summary_age_bins, start=365)

    events_to_count = [
        "Received_Treatment", "Received_Test", "Received_Campaign_Drugs",
        "Received_RCD_Drugs", "Received_SMC", "Received_Ivermectin",
        "Received_Primaquine"
    ]
    if include_bednet_events_in_counter:
        events_to_count += [
            "Bednet_Discarded", "Bednet_Got_New_One", "Bednet_Using"
        ]

    add_event_counter_report(cb, event_trigger_list=events_to_count)

    # drug_events = ["Received_Treatment", "Diagnostic_Survey_0", "Received_Test", "Received_RCD_Drugs",
    #                "Received_Campaign_Drugs"]
    # cb.set_param("Listed_Events", drug_events)
    # cb.set_param("Custom_Individual_Events", drug_events)

    if include_inset:
        cb.set_param("Enable_Default_Reporting", 1)
    else:
        cb.set_param("Enable_Default_Reporting", 0)
Example #2
0
def add_summary_report_by_start_day(cb, start_day=0):
    '''
    Add daily summary report to output
    :param cb: config builder
    :param start_day: start day for report
    :return: None
    '''

    add_summary_report(cb, start=start_day+1, interval=1.0, description='Daily_Report',
                       age_bins=[5.0, 10.0, 100.0])

    return {'report_start_day': start_day}
Example #3
0
def add_testing_reports(cb):
    add_node_demographics_report(cb, IP_key_to_collect='SchoolStatus')
    add_summary_report(cb,
                       ipfilter="SchoolStatus:AttendsSchool",
                       description="AttendsSchool",
                       age_bins=summary_age_bins)
    add_summary_report(cb,
                       ipfilter="SchoolStatus:DoesNotAttendSchool",
                       description="DoesNotAttendSchool",
                       age_bins=summary_age_bins)

    cb.set_param("Report_Detection_Threshold_True_Parasite_Density", 0)
    cb.set_param("Report_Detection_Threshold_PCR_Gametocytes", 0)
Example #4
0
def add_burnin_reports(cb, include_inset=False):
    add_summary_report(cb, start=45 * 365)

    if include_inset:
        cb.set_param("Enable_Default_Reporting", 1)
    else:
        cb.set_param("Enable_Default_Reporting", 0)

    events_to_count = [
        "Bednet_Discarded", "Bednet_Got_New_One", "Bednet_Using",
        "Received_Treatment", "Received_SMC"
    ]

    add_event_counter_report(cb,
                             event_trigger_list=events_to_count,
                             duration=365 * 50)
Example #5
0
 def __call__(self, cb):
     from malaria.reports.MalariaReport import add_summary_report
     return add_summary_report(cb,
                               start=self.start,
                               interval=self.interval,
                               nreports=self.nreports,
                               description=self.description,
                               age_bins=self.age_bins,
                               nodes=self.nodes)
Example #6
0
 def __call__(self, cb):
     from malaria.reports.MalariaReport import add_summary_report
     return add_summary_report(cb,
                               start=self.start,
                               interval=self.interval,
                               nreports=self.nreports,
                               description=self.description,
                               age_bins=self.age_bins,
                               parasitemia_bins=self.parasitemia_bins,
                               infection_bins=self.infection_bins,
                               nodes=self.nodes,
                               ipfilter=self.ip_filter)
Example #7
0
def add_testing_reports(cb):
    add_summary_report(cb)
    add_filtered_spatial_report(
        cb,
        channels=["Population", "Blood_Smear_Parasite_Prevalence"],
        start=start,
        end=(start + duration))
    add_vector_migration_report(cb)
    cb.set_param("Enable_Vector_Species_Report", 1)

    cb.update_params({
        "Report_Event_Recorder":
        1,
        "Report_Event_Recorder_Ignore_Events_In_List":
        0,
        "Report_Event_Recorder_Events": [
            "Received_Treatment", "Diagnostic_Survey_0", "Received_Test",
            "Received_RCD_Drugs", "Received_Campaign_Drugs"
        ]
    })

    # InsetChart
    cb.update_params({"Enable_Default_Reporting": 1})
Example #8
0
#####################
modlists = []

num_seeds = 3
modlist = modfn_sweep_over_seeds(num_seeds)
modlists.append(modlist)

modlist = modfn_sweep_over_timings(archetype, num_years=num_years)
modlists.append(modlist)

####################
# Reports and logs #
####################
# add_scenario_reports(cb, include_inset=False)
# add_testing_reports(cb)
add_summary_report(cb, start=365)

###############################
# Submission/COMPs parameters #
###############################

comps_experiment_name = "central_sac_ipt_timing_sweep"
# comps_priority = "BelowNormal"
comps_priority = "AboveNormal"
# comps_priority = "AboveNormal"
comps_coreset = "emod_abcd"
# comps_coreset = "emod_32cores"

##################
# Job submission #
##################
Example #9
0
        scaled_habitats["LINEAR_SPLINE"]["Max_Larval_Capacity"] = habitats[
            "LINEAR_SPLINE"]["Max_Larval_Capacity"] * scale_factor
        species_params["Larval_Habitat_Types"] = scaled_habitats
    return {'larval_habitat_multiplier': scale_factor}


# builder = ModBuilder.from_list( [[ ModFn(sweep_scale_factor, x)] for x in [0.01,10,100]])
report_years = 1
report_start = 50
survey_days = list(range(365 * report_start, (365 * (report_start + 1)), 30))

# add_survey_report(cb, survey_days, reporting_interval=1)
add_summary_report(cb,
                   start=365 * report_start,
                   description='Annual_Report',
                   interval=365,
                   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)]
        template_asset = asset_expt.simulations[0].tags
        cb.set_exe_collection(template_asset["exe_collection_id"])
        cb.set_dll_collection(template_asset["dll_collection_id"])
        cb.set_input_collection(template_asset["input_collection_id"])

    # Find vector proportions for each vector in our site
    site_vectors = pd.read_csv(
        os.path.join(site_input_dir, "vector_proportions.csv"))
    simulation_setup(cb, species_details, site_vectors)

    # reporting
    for idx, row in site_vectors.iterrows():
        add_summary_report(cb,
                           age_bins=list(range(10, 130, 10)),
                           nodes={
                               "class": "NodeSetNodeList",
                               "Node_List": [int(row["node_id"])]
                           },
                           description=row["name"])

    if pull_from_serialization:
        print("building from pickup")

        # serialization
        print("retrieving burnin")
        expt = retrieve_experiment(burnin_id)

        df = pd.DataFrame([x.tags for x in expt.simulations])
        df["outpath"] = pd.Series([sim.get_path() for sim in expt.simulations])

        df = df[df['Run_Number'] == 0]
num_seeds = 100
modlist = modfn_sweep_over_seeds(num_seeds)
modlists.append(modlist)

modlist = modfn_sweep_over_burnins(archetype)
modlists.append(modlist)

# modlist = modfn_sweep_over_scenarios(archetype, specific_scenarios_to_run=[13,30,34,35,36])
# modlists.append(modlist)
modlist = [ModFn(add_ipt_with_iver_skipping_one_term, t) for t in [1, 2, 3]]
modlists.append(modlist)

####################
# Reports and logs #
####################
add_summary_report(cb, age_bins=summary_age_bins, start=365)

events_to_count = [
    "Received_Treatment", "Received_Test", "Received_Campaign_Drugs_Term_1",
    "Received_Campaign_Drugs_Term_2", "Received_Campaign_Drugs_Term_3",
    "Received_RCD_Drugs", "Received_SMC", "Received_Ivermectin",
    "Received_Primaquine"
]

events_to_count += ["Bednet_Discarded", "Bednet_Got_New_One", "Bednet_Using"]

add_event_counter_report(cb, event_trigger_list=events_to_count)

cb.set_param("Enable_Default_Reporting", 1)

###############################
nyears = 50  # for sim duration AND reporting interval

cb = DTKConfigBuilder.from_defaults('MALARIA_SIM')
cb.update_params({
    'Num_Cores': 1,
    'Simulation_Duration': nyears * 365,
    'New_Diagnostic_Sensitivity': 0.025  # 40/uL
})

# recurring outbreak to avoid fadeout
recurring_outbreak(cb, outbreak_fraction=0.001, tsteps_btwn=180)

# custom reporting
add_summary_report(cb,
                   start=0,
                   interval=365,
                   nreports=nyears,
                   description="AnnualAverage")
add_immunity_report(cb,
                    start=365 * (nyears - 1),
                    interval=365,
                    nreports=1,
                    description="FinalYearAverage",
                    age_bins=[
                        1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 20,
                        25, 30, 40, 50, 60, 1000
                    ])

run_sim_args = {
    'config_builder': cb,
    'exp_name': exp_name,
Example #13
0
num_seeds = 10
modlist = modfn_sweep_over_seeds(num_seeds)
modlists.append(modlist)

modlist = modfn_sweep_over_burnins(archetype)
modlists.append(modlist)

modlist = [ModFn(add_smc_variant, s) for s in [0, 1, 2, 3, 4]]
modlists.append(modlist)

####################
# Reports and logs #
####################
add_summary_report(cb,
                   age_bins=summary_age_bins,
                   start=365,
                   duration_days=sim_duration)
cb.set_param("Enable_Demographics_Reporting", 1)

events_to_count = [
    "Received_Treatment", "Received_Test", "Received_Campaign_Drugs",
    "Received_RCD_Drugs", "Received_SMC", "Received_Ivermectin",
    "Received_Primaquine"
]

events_to_count += ["Bednet_Discarded", "Bednet_Got_New_One", "Bednet_Using"]

add_event_counter_report(cb,
                         event_trigger_list=events_to_count,
                         duration=sim_duration)
Example #14
0
        'gambiae': {
            'TEMPORARY_RAINFALL': 1.5e8 * sample["Temporary_Habitat"],
            'CONSTANT': 5.5e6 * sample["Constant_Habitat"]
        }
    }
    set_larval_habitat(cb, hab)

    return sample


optimtool = OptimTool(params, center_repeats=1, samples_per_iteration=25)
calib_manager = CalibManager(
    name=exp_name,
    config_builder=cb,
    map_sample_to_model_input_fn=map_sample_to_model_input,
    sites=[PointPrevalenceSite(site)],
    next_point=optimtool,
    sim_runs_per_param_set=1,
    max_iterations=3,
    plotters=[OptimToolPlotter()])

add_summary_report(
    cb,
    description='AnnualAverage')  ## add summary report of annual prevalence
run_calib_args = {"calib_manager": calib_manager}

if __name__ == "__main__":
    SetupParser.init()
    cm = run_calib_args["calib_manager"]
    cm.run_calibration()