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)
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}
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)
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)
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)
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)
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})
##################### 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 # ##################
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,
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)
'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()