diff --git a/create_plots/helpers_likelihood_and_metrics.py b/create_plots/helpers_likelihood_and_metrics.py index e54dd95..07a9074 100644 --- a/create_plots/helpers_likelihood_and_metrics.py +++ b/create_plots/helpers_likelihood_and_metrics.py @@ -15,7 +15,7 @@ import warnings import numpy as np from plotnine import ggplot, aes, geom_point, xlab, ylab, coord_fixed, geom_abline, theme_classic, themes, \ - ggtitle, geom_smooth + ggtitle, geom_smooth, element_text import collections @@ -230,7 +230,7 @@ def corr_ref_sim_points(combined_df): + geom_abline(slope=1, intercept=0, color='grey', alpha=0.5) + geom_smooth(method="lm", fill=None, se=False, alpha=0.5, size=0.5) + theme_classic() - + themes.theme(plot_title=themes.element_text(size=12))) + + themes.theme(plot_title=element_text(size=12))) # create data frame with information about linear regression and correlation for each Site lm_summary = collections.defaultdict(list) @@ -296,7 +296,7 @@ def corr_ref_deriv_sim_points(combined_df): + geom_abline(slope=1, intercept=0, color='grey', alpha=0.5) # + geom_smooth(method="lm", fill=None, se=False, alpha=0.5, size=0.5) + theme_classic() - + themes.theme(plot_title=themes.element_text(size=12))) + + themes.theme(plot_title=element_text(size=12))) # create data frame with information about linear regression and correlation for each Site lm_summary = collections.defaultdict(list) diff --git a/create_plots/helpers_plot_ref_sim_comparisons.py b/create_plots/helpers_plot_ref_sim_comparisons.py index 5c67087..1354530 100644 --- a/create_plots/helpers_plot_ref_sim_comparisons.py +++ b/create_plots/helpers_plot_ref_sim_comparisons.py @@ -5,7 +5,7 @@ from plotnine import ggplot, aes, geom_bar, scale_fill_brewer, facet_grid, geom_line, geom_point, geom_errorbar, \ theme_bw, xlab, ylab, scale_color_manual, scale_fill_manual, coord_fixed, geom_abline, theme_classic, themes, \ - facet_wrap, scale_shape_manual, scale_size_manual, scale_x_log10, ggtitle, labs, position_dodge + facet_wrap, scale_shape_manual, scale_size_manual, scale_x_log10, ggtitle, labs, position_dodge, element_text import numpy as np import pandas as pd from scipy.stats import beta @@ -58,7 +58,7 @@ def compare_benchmark(combined_df): + coord_fixed(ratio=1, xlim=(min_value, max_value), ylim=(min_value, max_value)) + geom_abline(slope=1, intercept=0, color='grey', alpha=0.5) + theme_classic() - + themes.theme(plot_title=themes.element_text(size=12))) + + themes.theme(plot_title=element_text(size=12))) return gg @@ -249,7 +249,7 @@ def plot_par_dens_ref_sim_comparison(combined_df): + theme_bw() + ylab('fraction of population') + xlab('parasite density bin') - + themes.theme(axis_text_x=themes.element_text(angle=45)) + + themes.theme(axis_text_x=element_text(angle=45)) + ggtitle(cur_site) + scale_color_manual(values=color_manual) + scale_shape_manual(values=shape_manual) @@ -742,6 +742,6 @@ def plot_infection_duration_dist_by_age(ref_df, sim_data, pos_thresh_dens, age_b + scale_fill_manual(values=color_manual_2) + labs(title='infection duration', x='infection duration (days)') # ylim(NA,max_y) + - + facet_grid(scales='fixed', facets=['censor_type', 'age_group'])) + + facet_grid('censor_type', 'age_group', scales='fixed')) return gg diff --git a/idmtools.ini b/idmtools.ini index 9a64f88..b9a59f9 100644 --- a/idmtools.ini +++ b/idmtools.ini @@ -11,7 +11,7 @@ max_local_sims = 6 [SLURM] type = COMPS -endpoint = https://comps.idmod.org +endpoint = https://comps2.idmod.org environment = Calculon priority = Normal simulation_root = $COMPS_PATH(USER)\output diff --git a/report/Malaria_model_validation_output_v1.3.0.pdf b/report/Malaria_model_validation_output_v1.3.0.pdf new file mode 100644 index 0000000..342c274 Binary files /dev/null and b/report/Malaria_model_validation_output_v1.3.0.pdf differ diff --git a/requirements.txt b/requirements.txt index 5d101de..c76ec30 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,3 +7,4 @@ scipy~=1.9 snakemake~=7.19 plotnine~=0.10 datar~=0.9 +pulp==2.7.0 diff --git a/setup.py b/setup.py index 547590c..b5e2e1b 100644 --- a/setup.py +++ b/setup.py @@ -41,7 +41,7 @@ def load_arguments_from_file(filepath, arguments_list): setuptools.setup( name="malaria_model_validation", - version="1.2.0", + version="1.3.0", author=[author[0] for author in authors], author_email=[author[1] for author in authors], description="malaria-model_validation package", diff --git a/simulations/add_suite.py b/simulations/add_suite.py index 47ec5ac..012847b 100644 --- a/simulations/add_suite.py +++ b/simulations/add_suite.py @@ -19,7 +19,7 @@ def add_suite(sites: list, suite_name: str = 'Malaria Model Validation Suite') - Returns: suite_id """ - platform = Platform(manifest.platform_name) + platform = Platform(manifest.platform_name, endpoint=manifest.endpoint, environment=manifest.environment) first_exp_found = True for site in sites: exp_id_file = get_comps_id_filename(site, level=0) diff --git a/simulations/analyzers/AnnualSummaryReportAnalyzer.py b/simulations/analyzers/AnnualSummaryReportAnalyzer.py index 8b64b26..073255f 100644 --- a/simulations/analyzers/AnnualSummaryReportAnalyzer.py +++ b/simulations/analyzers/AnnualSummaryReportAnalyzer.py @@ -14,7 +14,6 @@ from idmtools.core import ItemType from idmtools.core.platform_factory import Platform - mpl.use('Agg') @@ -78,8 +77,8 @@ def reduce(self, all_data: Dict[Union[IWorkflowItem, Simulation], Any]) -> Any: groupby_tags = self.sweep_variables groupby_tags.remove('Run_Number') - df_summarized = df_final.groupby(['Age']+groupby_tags)['Prevalence', 'Incidence'].apply(np.mean).reset_index() - df_summarized_std = df_final.groupby(['Age']+groupby_tags)['Prevalence', 'Incidence'].apply(np.std) + df_summarized = df_final.groupby(['Age']+groupby_tags, as_index=False).agg({'Prevalence': np.mean, 'Incidence': np.mean}) + df_summarized_std = df_final.groupby(['Age']+groupby_tags).agg({'Prevalence': np.mean, 'Incidence': np.mean}) for c in ['Prevalence', 'Incidence']: df_summarized[c + '_std'] = list(df_summarized_std[c]) @@ -87,10 +86,11 @@ def reduce(self, all_data: Dict[Union[IWorkflowItem, Simulation], Any]) -> Any: if __name__ == '__main__': + import simulations.manifest as manifest # Set the platform where you want to run your analysis # In this case we are running in BELEGOST since the Work Item we are analyzing was run on COMPS logger = getLogger() - with Platform('CALCULON') as platform: + with Platform(manifest.platform_name, endpoint=manifest.endpoint, environment=manifest.environment) as platform: # Initialize the analyser class with the path of the output csv file analyzers = [AnnualSummaryReportAnalyzer()] diff --git a/simulations/analyzers/InfectiousnessByParDensAgeAnalyzer.py b/simulations/analyzers/InfectiousnessByParDensAgeAnalyzer.py index 8df0b9b..883a5d1 100644 --- a/simulations/analyzers/InfectiousnessByParDensAgeAnalyzer.py +++ b/simulations/analyzers/InfectiousnessByParDensAgeAnalyzer.py @@ -69,6 +69,7 @@ def reduce(self, all_data): if __name__ == '__main__': + import simulations.manifest as manifest # Set the experiment id you want to analyze experiment_id = 'b7126585-30b6-ec11-a9f6-9440c9be2c51' end_year = 65 @@ -76,7 +77,7 @@ def reduce(self, all_data): # Set the platform where you want to run your analysis # In this case we are running in BELEGOST since the Work Item we are analyzing was run on COMPS logger = getLogger() - with Platform('CALCULON') as platform: + with Platform(manifest.platform_name, endpoint=manifest.endpoint, environment=manifest.environment) as platform: # Initialize the analyser class with the path of the output csv file analyzers = [InfectiousnessByParDensAgeAnalyzer(expt_name='Sugungum_1970', diff --git a/simulations/analyzers/InsetChartAnalyzer.py b/simulations/analyzers/InsetChartAnalyzer.py index 80da6c1..d6b92a9 100644 --- a/simulations/analyzers/InsetChartAnalyzer.py +++ b/simulations/analyzers/InsetChartAnalyzer.py @@ -14,7 +14,6 @@ from idmtools.core import ItemType from idmtools.core.platform_factory import Platform - mpl.use('Agg') @@ -103,10 +102,11 @@ def reduce(self, all_data: Dict[Union[IWorkflowItem, Simulation], Any]) -> Any: if __name__ == '__main__': + import simulations.manifest as manifest # Set the platform where you want to run your analysis # In this case we are running in BELEGOST since the Work Item we are analyzing was run on COMPS logger = getLogger() - with Platform('CALCULON') as platform: + with Platform(manifest.platform_name, endpoint=manifest.endpoint, environment=manifest.environment) as platform: # Initialize the analyser class with the path of the output csv file analyzers = [InsetChartAnalyzer()] diff --git a/simulations/analyzers/MonthlySummaryReportAnalyzer.py b/simulations/analyzers/MonthlySummaryReportAnalyzer.py index a0ec493..32cc873 100644 --- a/simulations/analyzers/MonthlySummaryReportAnalyzer.py +++ b/simulations/analyzers/MonthlySummaryReportAnalyzer.py @@ -69,6 +69,7 @@ def reduce(self, all_data): if __name__ == '__main__': + import simulations.manifest as manifest # Set the experiment id you want to analyze experiment_id = 'b7126585-30b6-ec11-a9f6-9440c9be2c51' end_year = 65 @@ -76,7 +77,7 @@ def reduce(self, all_data): # Set the platform where you want to run your analysis # In this case we are running in BELEGOST since the Work Item we are analyzing was run on COMPS logger = getLogger() - with Platform('CALCULON') as platform: + with Platform(manifest.platform_name, endpoint=manifest.endpoint, environment=manifest.environment) as platform: # Initialize the analyser class with the path of the output csv file analyzers = [MonthlySummaryReportAnalyzer(expt_name='Sugungum_1970', diff --git a/simulations/analyzers/ParDensAgeAnalyzer.py b/simulations/analyzers/ParDensAgeAnalyzer.py index ab60bad..9e18ba7 100644 --- a/simulations/analyzers/ParDensAgeAnalyzer.py +++ b/simulations/analyzers/ParDensAgeAnalyzer.py @@ -76,6 +76,7 @@ def reduce(self, all_data): if __name__ == '__main__': + import simulations.manifest as manifest # Set the experiment id you want to analyze experiment_id = 'b7126585-30b6-ec11-a9f6-9440c9be2c51' @@ -84,7 +85,7 @@ def reduce(self, all_data): # Set the platform where you want to run your analysis # In this case we are running in BELEGOST since the Work Item we are analyzing was run on COMPS logger = getLogger() - with Platform('CALCULON') as platform: + with Platform(manifest.platform_name, endpoint=manifest.endpoint, environment=manifest.environment) as platform: # Initialize the analyser class with the path of the output csv file analyzers = [ParDensAgeAnalyzer(expt_name='Sugungum_1970', diff --git a/simulations/analyzers/PatientReportAnalyzer.py b/simulations/analyzers/PatientReportAnalyzer.py index 8cbb864..313362d 100644 --- a/simulations/analyzers/PatientReportAnalyzer.py +++ b/simulations/analyzers/PatientReportAnalyzer.py @@ -89,12 +89,13 @@ def reduce(self, all_data): from idmtools.analysis.analyze_manager import AnalyzeManager from idmtools.core import ItemType from idmtools.core.platform_factory import Platform + import simulations.manifest as manifest use_ssmt = True # Set the platform where you want to run your analysis # In this case we are running in BELEGOST since the Work Item we are analyzing was run on COMPS - with Platform('Calculon') as platform: + with Platform(manifest.platform_name, endpoint=manifest.endpoint, environment=manifest.environment) as platform: # Set the experiment you want to analyze experiments = { diff --git a/simulations/analyzers/PatientReportAnalyzer_laterDays.py b/simulations/analyzers/PatientReportAnalyzer_laterDays.py index 33fd19d..fc10050 100644 --- a/simulations/analyzers/PatientReportAnalyzer_laterDays.py +++ b/simulations/analyzers/PatientReportAnalyzer_laterDays.py @@ -86,10 +86,11 @@ def reduce(self, all_data): from idmtools.core import ItemType from idmtools.core.platform_factory import Platform from general.manifest import analyzed_ouptut_path + import simulations.manifest as manifest # Set the platform where you want to run your analysis # In this case we are running in BELEGOST since the Work Item we are analyzing was run on COMPS - with Platform('Calculon') as platform: + with Platform(manifest.platform_name, endpoint=manifest.endpoint, environment=manifest.environment) as platform: # Set the experiment you want to analyze experiments = {'test_infectDuration_Navrongo2': 'aaa3fc9f-787a-ec11-a9f3-9440c9be2c51'} diff --git a/simulations/create_auth_token_args.py b/simulations/create_auth_token_args.py index 4192183..53d0a78 100644 --- a/simulations/create_auth_token_args.py +++ b/simulations/create_auth_token_args.py @@ -2,7 +2,7 @@ import getpass from COMPS import Client from COMPS.CredentialPrompt import CredentialPrompt - +import simulations.manifest as manifest __comps_client_version = 10 @@ -29,7 +29,7 @@ def prompt(self): if __name__ == '__main__': parser = argparse.ArgumentParser() - parser.add_argument('--comps_url', '-c', default='https://comps.idmod.org', help='comps url') + parser.add_argument('--comps_url', '-c', default=manifest.endpoint, help='comps url') parser.add_argument('--username', '-u', help='enter username') parser.add_argument('--password', '-p', help='enter password') @@ -43,4 +43,4 @@ def prompt(self): print(f"Login to {compshost} and cache the credentials.") Client.login(compshost, StaticCredentialPrompt(comps_url=args.comps_url, username=args.username, - password=p)) \ No newline at end of file + password=p)) diff --git a/simulations/download/Eradication b/simulations/download/Eradication index accc97a..ee79cb7 100644 Binary files a/simulations/download/Eradication and b/simulations/download/Eradication differ diff --git a/simulations/download/schema.json b/simulations/download/schema.json index 23077c8..713851f 100644 --- a/simulations/download/schema.json +++ b/simulations/download/schema.json @@ -1,8 +1,8 @@ { "Version": { - "DTK_Branch": "Malaria-Ongoing(2cda8c4dbe)", - "DTK_Build_Date": "Jan 5 2023", - "DTK_Version": "2.20.5347.0" + "DTK_Branch": "Malaria-Ongoing(1c311c0)", + "DTK_Build_Date": "Jun 12 2024", + "DTK_Version": "2.20.5522.0" }, "config": { "Climate.ByData": { @@ -353,12 +353,6 @@ "description": "Controls whether or not campaign interventions will be used in the simulation.", "type": "bool" }, - "Insecticides": { - "default": [], - "description": "An Array of insecticides and their resistance modifiers", - "item_type": "idmType:Insecticide", - "type": "Vector idmType:Insecticide" - }, "Migration_Model": { "default": "NO_MIGRATION", "description": "Model to use for migration. Note: VARIABLE_RATE_MIGRATION and LEVY FLIGHTS are currently not supported.", @@ -1150,12 +1144,6 @@ "min": 0, "type": "float" }, - "Insecticides": { - "default": [], - "description": "An Array of insecticides and their resistance modifiers", - "item_type": "idmType:Insecticide", - "type": "Vector idmType:Insecticide" - }, "Larval_Density_Dependence": { "default": "UNIFORM_WHEN_OVERPOPULATION", "description": "The funtional form of mortality and growth delay for mosquito larvae based on population density.", @@ -1303,12 +1291,6 @@ ], "type": "enum" }, - "Vector_Species_Params": { - "default": [], - "description": "A list of JSON object where each object contains the parameters for a specific species of vectors.", - "item_type": "idmType:VectorSpeciesParameters", - "type": "Vector idmType:VectorSpeciesParameters" - }, "Wolbachia_Infection_Modification": { "default": 1, "description": "The change in vector susceptibility to infection due to a Wolbachia infection.", @@ -1884,7 +1866,7 @@ "type": "bool" }, "Enable_Migration_Heterogeneity": { - "default": 1, + "default": 0, "depends-on": { "Migration_Model": "FIXED_RATE_MIGRATION" }, @@ -2024,7 +2006,7 @@ "type": "bool" }, "Enable_Migration_Heterogeneity": { - "default": 1, + "default": 0, "depends-on": { "Migration_Model": "FIXED_RATE_MIGRATION" }, @@ -3836,7 +3818,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": [], "depends-on": { @@ -4300,6 +4288,12 @@ "min": 0, "type": "integer" }, + "Insecticides": { + "default": [], + "description": "An Array of insecticides and their resistance modifiers", + "item_type": "idmType:Insecticide", + "type": "Vector idmType:Insecticide" + }, "Load_Balance_Filename": { "default": "UNINITIALIZED STRING", "description": "Path to input file used when a static load balancing scheme is selected.", @@ -4425,6 +4419,118 @@ "DENGUE_SIM" ], "type": "enum" + }, + "Vector_Species_Params": { + "default": [], + "description": "A list of JSON object where each object contains the parameters for a specific species of vectors.", + "item_type": "idmType:VectorSpeciesParameters", + "type": "Vector idmType:VectorSpeciesParameters" + } + }, + "Simulation.Vector": { + "Campaign_Filename": { + "default": "", + "depends-on": { + "Enable_Interventions": 1 + }, + "description": "The path to the campaign file.", + "type": "string" + }, + "Custom_Reports_Filename": { + "default": "", + "description": "The name of the file containing custom report configuration parameters. Omitting this parameter or setting it to RunAllCustomReports will load all reporters found that are valid for the given simulation type.", + "type": "string" + }, + "Enable_Default_Reporting": { + "default": 1, + "description": "Controls whether or not the default InsetChart.json report is created.", + "type": "bool" + }, + "Enable_Demographics_Reporting": { + "default": 1, + "description": "Controls whether or not demographic summary data and age-binned reports are outputted to file.", + "type": "bool" + }, + "Enable_Property_Output": { + "default": 0, + "description": "Controls whether or not property output reports are created.", + "type": "bool" + }, + "Enable_Spatial_Output": { + "default": 0, + "description": "Controls whether or not spatial output reports are created.", + "type": "bool" + }, + "Enable_Termination_On_Zero_Total_Infectivity": { + "default": 0, + "description": "Controls whether or not the simulation should be ended when total infectivity falls to zero. Supported only in single-node simulations.", + "type": "bool" + }, + "Insecticides": { + "default": [], + "description": "An Array of insecticides and their resistance modifiers", + "item_type": "idmType:Insecticide", + "type": "Vector idmType:Insecticide" + }, + "Load_Balance_Filename": { + "default": "UNINITIALIZED STRING", + "description": "Path to input file used when a static load balancing scheme is selected.", + "type": "string" + }, + "Minimum_End_Time": { + "default": 0, + "depends-on": { + "Enable_Termination_On_Zero_Total_Infectivity": 1 + }, + "description": "The minimum time step the simulation must reach before checking for early termination conditions.", + "max": 1000000.0, + "min": 0, + "type": "float" + }, + "Report_Coordinator_Event_Recorder": { + "default": 0, + "description": "Enables or disables the ReportCoordinatorEventRecorder.csv output report for coordinator events.", + "type": "bool" + }, + "Report_Event_Recorder": { + "default": 0, + "description": "Set to true (1) to enable or to false (0) to disable the ReportEventRecorder.csv output report that lists individual events in the simulation.", + "type": "bool" + }, + "Report_Node_Event_Recorder": { + "default": 0, + "description": "Enables or disables the ReportNodeEventRecorder.csv output report.", + "type": "bool" + }, + "Report_Surveillance_Event_Recorder": { + "default": 0, + "description": "Enables or disables the ReportCoordinatorEventRecorder.csv output report for coordinator events.", + "type": "bool" + }, + "Simulation_Type": { + "default": "GENERIC_SIM", + "description": "Type of disease being simulated. IDM-supported values include GENERIC_SIM, VECTOR_SIM, MALARIA_SIM, TBHIV_SIM, STI_SIM, HIV_SIM, ENVIRONMENTAL_SIM, and TYPHOID_SIM. To query the values supported for your specific build, use the --version option.", + "enum": [ + "GENERIC_SIM", + "VECTOR_SIM", + "MALARIA_SIM", + "ENVIRONMENTAL_SIM", + "POLIO_SIM", + "AIRBORNE_SIM", + "TBHIV_SIM", + "STI_SIM", + "HIV_SIM", + "PY_SIM", + "TYPHOID_SIM", + "DENGUE_SIM" + ], + "type": "enum" + }, + "Vector_Species_Params": { + "default": [], + "description": "A list of JSON object where each object contains the parameters for a specific species of vectors.", + "item_type": "idmType:VectorSpeciesParameters", + "type": "Vector idmType:VectorSpeciesParameters" } }, "SpatialReport": { @@ -4858,12 +4964,6 @@ "min": 0, "type": "float" }, - "Insecticides": { - "default": [], - "description": "An Array of insecticides and their resistance modifiers", - "item_type": "idmType:Insecticide", - "type": "Vector idmType:Insecticide" - }, "Larval_Density_Dependence": { "default": "UNIFORM_WHEN_OVERPOPULATION", "description": "The funtional form of mortality and growth delay for mosquito larvae based on population density.", @@ -5011,12 +5111,6 @@ ], "type": "enum" }, - "Vector_Species_Params": { - "default": [], - "description": "A list of JSON object where each object contains the parameters for a specific species of vectors.", - "item_type": "idmType:VectorSpeciesParameters", - "type": "Vector idmType:VectorSpeciesParameters" - }, "Wolbachia_Infection_Modification": { "default": 1, "description": "The change in vector susceptibility to infection due to a Wolbachia infection.", @@ -5554,7 +5648,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": [], "description": "The list of events that are of interest to the community health worker (CHW). If one of these events occurs, the individual or node is put into a queue to receive the CHW's intervention. The CHW processes the queue when the event coordinator is updated.", @@ -6383,6 +6483,41 @@ "type": "integer" }, "class": "TriggeredEventCoordinator" + }, + "VectorSurveillanceEventCoordinator": { + "Coordinator_Name": { + "default": "VectorSurveillanceEventCoordinator", + "description": "The name of the VectorSurveillanceEventCoordinator to help differentiate it from other coordinators.", + "type": "string" + }, + "Counter": { + "description": "Configuration dictionary of the sampling parameters.", + "type": "idmType:VectorCounter" + }, + "Duration": { + "default": -1, + "description": "Number of timesteps for which, after being distributed, VectorSurveillanceEventCoordinator will exist and wait for Start/Stop triggers.", + "max": 3.40282e+38, + "min": -1, + "type": "float" + }, + "Responder": { + "description": "Contains optional Responded_Event, which is sent out every time VectorSurveillanceEventCoordinator runs.", + "type": "idmType:VectorResponder" + }, + "Start_Trigger_Condition_List": { + "default": [], + "description": "List of Coordinator-level events that will trigger VectorSurveillanceEventCoordinator to run sampling every Update_Period, starting at the time trigger is received.", + "type": "Vector Constrained String", + "value_source": "':Custom_Coordinator_Events.*' or Built-in" + }, + "Stop_Trigger_Condition_List": { + "default": [], + "description": "Optional list of Coordinator-level events that will trigger VectorSurveillanceEventCoordinator to stop sampling.", + "type": "Vector Constrained String", + "value_source": "':Custom_Coordinator_Events.*' or Built-in" + }, + "class": "VectorSurveillanceEventCoordinator" } }, "idmAbstractType:Intervention": { @@ -6530,7 +6665,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "The event that triggers the drug intervention campaign.", @@ -6858,7 +6999,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "The event that should occur at the end of the delay period.", @@ -6973,7 +7120,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "The name of the event to broadcast to selected nodes.", @@ -7101,7 +7254,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "The name of the event to be broadcast when the intervention is distributed to an individual. See the list of available events for possible values.", @@ -7193,7 +7352,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "The name of the event to be broadcast when the intervention is distributed to an individual. See the list of available events for possible values.", @@ -7734,7 +7899,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "When the person stops using the contraceptive, this event will be broadcasted.", @@ -8006,7 +8177,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "If 'Event_Or_Config' is set to 'Event', this parameter defines the event to be broadcasted on a negative test result.", @@ -8087,7 +8264,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "If the test is positive, this specifies an event that can trigger another intervention when the event occurs. Only used if Event_Or_Config is set to Event.", @@ -8459,7 +8642,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "When the person stops using the intervention, this event will be broadcasted.", @@ -8670,7 +8859,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "If 'Event_Or_Config' is set to 'Event', this parameter defines the event to be broadcasted on a negative test result.", @@ -8755,7 +8950,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "If the test is positive, this specifies an event that can trigger another intervention when the event occurs. Only used if Event_Or_Config is set to Event.", @@ -9462,7 +9663,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "The event that is broadcast when an individual discards their bed net, either by replacing an existing net or due to the expiration timer.", @@ -9720,7 +9927,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "This parameter broadcasts when a new net is received, either the first net or a replacement net.", @@ -9803,7 +10016,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "This parameter broadcasts each time step in which a bed net is used.", @@ -10519,7 +10738,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "If the test is positive, this specifies an event that can trigger another intervention when the event occurs. Only used if Event_Or_Config is set to Event.", @@ -10612,7 +10837,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "The event of an actual intervention sought. Selects a class for the intervention and configures the parameters specific for that intervention class. See the list of available events for possible values.", @@ -11007,7 +11238,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "If 'Event_Or_Config' is set to 'Event', this parameter defines the event to be broadcasted on a negative test result.", @@ -11092,7 +11329,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "If the test is positive, this specifies an event that can trigger another intervention when the event occurs. Only used if Event_Or_Config is set to Event.", @@ -11192,7 +11435,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "The event that is broadcast when an individual discards their bed net, either by replacing an existing net or due to the expiration timer.", @@ -11476,7 +11725,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "This parameter broadcasts when a new net is received, either the first net or a replacement net.", @@ -11563,7 +11818,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "This parameter broadcasts each time step in which a bed net is used.", @@ -12620,10 +12881,16 @@ "min": 0, "type": "float" }, - "Released_Microsporidia": { - "default": 0, - "description": "A boolean indicating if the released vectors are infected with microsporidia or not.", - "type": "bool" + "Released_Mate_Genome": { + "default": [], + "description": "This defines the alleles of the genome of the vectors to be released. The Released_Mate_Genome must be male, and Released_Genome must be female. It must define all of the alleles including the gender 'gene'. '*' is not allowed. When this parameter is defined, the released female vectors will be fully gestated and ready to lay eggs, which will be the product of Released_Genome and Released_Mate_Genome.", + "type": "Vector2d String", + "value_source": ":Vector_Species_Params.*Genes.*" + }, + "Released_Microsporidia_Strain": { + "default": "", + "description": "A string indicating the name of the microsporidia strain for the indicated specie. An empty string indicates no microsporidia infection.", + "type": "string" }, "Released_Number": { "default": 10000, @@ -12907,7 +13174,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": "", "description": "The event to broadcast if an intervention cannot be distributed due to the Blackout_Period.", @@ -13105,7 +13378,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": [], "description": "A list of events that trigger a health seeking intervention.", @@ -14107,41 +14386,6 @@ }, "class": "MalariaPatientJSONReport" }, - "MalariaSqlReport": { - "End_Day": { - "default": 3.40282e+38, - "description": "The day of the simulation to stop collecting data.", - "max": 3.40282e+38, - "min": 0, - "type": "float" - }, - "Include_Drug_Status_Table": { - "default": 0, - "description": "Include the table that provides data at each time step for each drug the person has.", - "type": "bool" - }, - "Include_Health_Table": { - "default": 1, - "description": "Include the table that provides data at each time step for a persons health.", - "type": "bool" - }, - "Include_Infection_Data_Table": { - "default": 1, - "description": "Include the table that provides data at each time step for each active infection.", - "type": "bool" - }, - "Sim_Types": [ - "MALARIA_SIM" - ], - "Start_Day": { - "default": 0, - "description": "The day of the simulation to start collecting data.", - "max": 3.40282e+38, - "min": 0, - "type": "float" - }, - "class": "MalariaSqlReport" - }, "MalariaSummaryReport": { "Age_Bins": { "ascending": 1, @@ -14304,7 +14548,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": [], "description": "The list of triggers for the events included in the report.", @@ -14480,7 +14730,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": [], "description": "The list of triggers for the events included in the report.", @@ -14544,12 +14800,7 @@ "min": 0, "type": "float" }, - "Filename_Suffix": { - "default": "", - "description": "Augments the filename of the report. If multiple reports are being generated, this allows you to distinguish among the multiple reports.", - "type": "string" - }, - "Include_Barcode_IDs": { + "Include_Genome_IDs": { "default": 0, "description": "Add a column that has a list of Barcode IDs (hashcode) for the person.", "type": "bool" @@ -14646,6 +14897,42 @@ "min": 0, "type": "float" }, + "Include_Column_Gametocyte": { + "default": 1, + "description": "If set to true (1), then a column will be added to the report that contains the number of gametocytes (male & female) from this infection.", + "type": "bool" + }, + "Include_Column_Hepatocyte": { + "default": 1, + "description": "If set to true (1), then a column will be added to the report providing the count of the infected hepatocytes.", + "type": "bool" + }, + "Include_Column_IRBC": { + "default": 1, + "description": "If set to true (1), then a column will be added to the report with the number of Infected Red Blood Cells from this infection.", + "type": "bool" + }, + "Include_Data_Threshold_Gametocytes": { + "default": 0, + "description": "If the column is included and the number of gametocytes related to this infection are greater than or equal to this value, then the row of data will be included.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Include_Data_Threshold_Hepatocytes": { + "default": 0, + "description": "If the column is included and the number of hepatocytes related to this infection are greater than or equal to this value, then the row of data will be included.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Include_Data_Threshold_IRBC": { + "default": 0, + "description": "If the column is included and the number of IRBCs related to this infection are greater than or equal to this value, then the row of data will be included.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, "Reporting_Interval": { "default": 1, "description": "Defines the cadence of the report by specifying how many time steps to collect data before writing to the file.", @@ -14876,6 +15163,14 @@ }, "class": "ReportMalariaFilteredIntraHost" }, + "ReportMicrosporidia": { + "Sim_Types": [ + "VECTOR_SIM", + "MALARIA_SIM", + "DENGUE_SIM" + ], + "class": "ReportMicrosporidia" + }, "ReportNodeDemographics": { "Age_Bins": { "ascending": 0, @@ -14967,6 +15262,11 @@ "description": "Name of the key to add a column for.", "type": "string" }, + "Include_Identity_By_XXX": { + "default": 0, + "description": "Include columns about the average Identity By State (IBS) and Identity By Descent (IBD) for all new infections with unique barcodes in the last year.", + "type": "bool" + }, "Sim_Types": [ "MALARIA_SIM" ], @@ -15176,9 +15476,116 @@ }, "class": "ReportVectorGenetics" }, - "ReportVectorMigration": { - "End_Day": { - "default": 3.40282e+38, + "ReportVectorGeneticsMalariaGenetics": { + "Allele_Combinations_For_Stratification": { + "default": [], + "depends-on": { + "Stratify_By": "ALLELE" + }, + "description": "If stratifying by allele, then also add these allele name combos to the stratification", + "type": "Vector2d String" + }, + "Alleles_For_Stratification": { + "default": [], + "depends-on": { + "Stratify_By": "ALLELE_FREQ" + }, + "description": "The list of alleles to collect frequency counts on. If the list is empty, it will use a list of all possible alleles.", + "type": "Vector String" + }, + "Combine_Similar_Genomes": { + "default": 0, + "depends-on": { + "Stratify_By": "GENOME,SPECIFIC_GENOME" + }, + "description": "1 implies genomes are combined if for each locus (ignoring gender) the set of allele of the two genomes are the same (i.e. 1-0 is similar to 0-1).", + "type": "bool" + }, + "End_Day": { + "default": 3.40282e+38, + "description": "The day of the simulation to stop collecting data.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Filename_Suffix": { + "default": "", + "description": "Augments the filename of the report. If multiple reports are being generated, this allows you to distinguish among the multiple reports.", + "type": "string" + }, + "Gender": { + "default": "VECTOR_FEMALE", + "description": "gender to include in file", + "enum": [ + "VECTOR_FEMALE", + "VECTOR_MALE", + "VECTOR_BOTH_GENDERS" + ], + "type": "enum" + }, + "Include_Death_By_State_Columns": { + "default": 0, + "description": "Adds columns for the number of vectors that died in this state during this time step as well as the average age. It adds two columns for each of the following states: ADULT, INFECTED, INFETCIOUS, and MALE.", + "type": "bool" + }, + "Include_Vector_State_Columns": { + "default": 1, + "description": "1 implies to add the columns for vectors in the different states (i.e Eggs, Larva, etc).", + "type": "bool" + }, + "Node_IDs_Of_Interest": { + "ascending": 0, + "default": [], + "description": "Data will be collected for the nodes in this list.", + "max": 2147480000.0, + "min": 0, + "type": "Vector Uint32" + }, + "Parasite_Barcodes": { + "default": [], + "description": "TBD", + "type": "Vector String" + }, + "Sim_Types": [ + "MALARIA_SIM" + ], + "Species": { + "default": "UNINITIALIZED STRING", + "description": "The species to include information on.", + "type": "string" + }, + "Specific_Genome_Combinations_For_Stratification": { + "default": [], + "depends-on": { + "Stratify_By": "SPECIFIC_GENOME" + }, + "description": "If stratifying by SPECIFIC_GENOME, then use these genomes to stratify by. '*' = list all entries at that location, '?' = combine all entries at that location", + "item_type": "idmType:RVG_AlleleCombo", + "type": "Vector idmType:RVG_AlleleCombo" + }, + "Start_Day": { + "default": 0, + "description": "The day of the simulation to start collecting data.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Stratify_By": { + "default": "GENOME", + "description": "An enum that determines how the data is stratified", + "enum": [ + "GENOME", + "SPECIFIC_GENOME", + "ALLELE", + "ALLELE_FREQ" + ], + "type": "enum" + }, + "class": "ReportVectorGeneticsMalariaGenetics" + }, + "ReportVectorMigration": { + "End_Day": { + "default": 3.40282e+38, "description": "The day of the simulation to stop collecting data.", "max": 3.40282e+38, "min": 0, @@ -15375,6 +15782,121 @@ }, "class": "SpatialReportMalariaFiltered" }, + "SqlReport": { + "End_Day": { + "default": 3.40282e+38, + "description": "The day of the simulation to stop collecting data.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Include_Health_Table": { + "default": 1, + "description": "Include the table that provides data at each time step for a persons health.", + "type": "bool" + }, + "Include_Individual_Properties": { + "default": 0, + "description": "Include a table with all the possible IPs and include the IP data for each person in the Health table.", + "type": "bool" + }, + "Include_Infection_Data_Table": { + "default": 1, + "description": "Include the table that provides data at each time step for each active infection.", + "type": "bool" + }, + "Sim_Types": [ + "*" + ], + "Start_Day": { + "default": 0, + "description": "The day of the simulation to start collecting data.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "class": "SqlReport" + }, + "SqlReportMalaria": { + "End_Day": { + "default": 3.40282e+38, + "description": "The day of the simulation to stop collecting data.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Include_Drug_Status_Table": { + "default": 0, + "description": "Include the table that provides data at each time step for each drug the person has.", + "type": "bool" + }, + "Include_Health_Table": { + "default": 1, + "description": "Include the table that provides data at each time step for a persons health.", + "type": "bool" + }, + "Include_Individual_Properties": { + "default": 0, + "description": "Include a table with all the possible IPs and include the IP data for each person in the Health table.", + "type": "bool" + }, + "Include_Infection_Data_Table": { + "default": 1, + "description": "Include the table that provides data at each time step for each active infection.", + "type": "bool" + }, + "Sim_Types": [ + "MALARIA_SIM" + ], + "Start_Day": { + "default": 0, + "description": "The day of the simulation to start collecting data.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "class": "SqlReportMalaria" + }, + "SqlReportMalariaGenetics": { + "End_Day": { + "default": 3.40282e+38, + "description": "The day of the simulation to stop collecting data.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Include_Drug_Status_Table": { + "default": 0, + "description": "Include the table that provides data at each time step for each drug the person has.", + "type": "bool" + }, + "Include_Health_Table": { + "default": 1, + "description": "Include the table that provides data at each time step for a persons health.", + "type": "bool" + }, + "Include_Individual_Properties": { + "default": 0, + "description": "Include a table with all the possible IPs and include the IP data for each person in the Health table.", + "type": "bool" + }, + "Include_Infection_Data_Table": { + "default": 1, + "description": "Include the table that provides data at each time step for each active infection.", + "type": "bool" + }, + "Sim_Types": [ + "MALARIA_SIM" + ], + "Start_Day": { + "default": 0, + "description": "The day of the simulation to start collecting data.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "class": "SqlReportMalariaGenetics" + }, "VectorHabitatReport": { "Sim_Types": [ "VECTOR_SIM", @@ -15534,7 +16056,13 @@ "WouldHaveEnteredLatentStage", "HIVInfectionStageEnteredLatent", "HIVInfectionStageEnteredAIDS", - "HIVInfectionStageEnteredOnART" + "HIVInfectionStageEnteredOnART", + "NewMalariaInfectionObject", + "PFA_Entered", + "PFA_Exited", + "PFA_SeekingPartner", + "PFA_FoundPartner", + "PFA_NoPartnerFound" ], "default": [], "description": "A list of events that will trigger an intervention.", @@ -15873,6 +16401,71 @@ }, "class": "MalariaDrugTypeParameters" }, + "idmType:MicrosporidiaParameters": { + "Duration_To_Disease_Acquisition_Modification": { + "description": "A modifier is selected based on the duration of the age of the microsporidia infection. The modifier is used to modify the probability the vector aquires the disease (i.e. malaria).", + "type": "idmType:InterpolatedValueMap" + }, + "Duration_To_Disease_Transmission_Modification": { + "description": "A modifier is selected based on the duration of the age of the microsporidia infection. The modifier is used to modify the probability the vector transmit the disease (i.e. malaria).", + "type": "idmType:InterpolatedValueMap" + }, + "Female_Mortality_Modifier": { + "default": 1, + "description": "A modifier on the death rate for female vectors due to general life expectancy, age, and dry heat", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Female_To_Egg_Transmission_Probability": { + "default": 0, + "description": "The probability an infected female will infect her eggs when laying them.", + "max": 1, + "min": 0, + "type": "float" + }, + "Female_To_Male_Transmission_Probability": { + "default": 0, + "description": "The probability an infected female will infect an uninfected male during mating.", + "max": 1, + "min": 0, + "type": "float" + }, + "Larval_Growth_Modifier": { + "default": 1, + "description": "A modifier to the daily, temperature dependent, larval growth progression to immature.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Male_Mortality_Modifier": { + "default": 1, + "description": "A modifier on the death rate for male vectors due to general life expectancy, age, and dry heat", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Male_To_Egg_Transmission_Probability": { + "default": 0, + "description": "The probability a female that mated with an infected male will infect her eggs when laying them, independent of her being infected and transmitting to her offspring.", + "max": 1, + "min": 0, + "type": "float" + }, + "Male_To_Female_Transmission_Probability": { + "default": 0, + "description": "The probability an infected male will infect an uninfected female during mating.", + "max": 1, + "min": 0, + "type": "float" + }, + "Strain_Name": { + "default": "UNINITIALIZED STRING", + "description": "The name/identifier of the collection of transmission parameters. Cannot be empty string.", + "type": "string" + }, + "class": "MicrosporidiaParameters" + }, "idmType:NodeIdAndCoverage": { "Coverage": { "default": 0, @@ -16393,6 +16986,22 @@ "class": "TargetedDistribution" }, "idmType:TraitModifier": { + "Gametocyte_A_Barcode_String": { + "default": "", + "depends-on": { + "Trait": "OOCYST_PROGRESSION" + }, + "description": "TBD", + "type": "string" + }, + "Gametocyte_B_Barcode_String": { + "default": "", + "depends-on": { + "Trait": "OOCYST_PROGRESSION" + }, + "description": "TBD", + "type": "string" + }, "Modifier": { "default": 1, "description": "The multiplier to use to modify the given trait for vectors with the given allele combination.", @@ -16400,6 +17009,14 @@ "min": 0, "type": "float" }, + "Sporozoite_Barcode_String": { + "default": "", + "depends-on": { + "Trait": "SPOROZOITE_MORTALITY" + }, + "description": "TBD", + "type": "string" + }, "Trait": { "default": "INFECTED_BY_HUMAN", "description": "The trait to be modified of vectors with the given allele combination.", @@ -16411,7 +17028,9 @@ "TRANSMISSION_TO_HUMAN", "ADJUST_FERTILE_EGGS", "MORTALITY", - "INFECTED_PROGRESS" + "INFECTED_PROGRESS", + "OOCYST_PROGRESSION", + "SPOROZOITE_MORTALITY" ], "type": "enum" }, @@ -16460,6 +17079,217 @@ }, "class": "VectorAlleleMutation" }, + "idmType:VectorCounter": { + "Count_Type": { + "default": "ALLELE_FREQ", + "description": "The attribute to count in the mosquitoes being sampled. The statistic returned by the Vector_Counter will be with respect to how this attribute relates to the mosquitos sampled. Possible values are 'ALLELE_FREQ' - Calculates the frequency of every allele in the sampled population. NOTE: This will be account the occurrences of the allele where there can be two per vector(i.e.you can get 0, 1, or 2 from each vector); GENOME_FRACTION - Calculates the fraction of each (grouped by similar) genome in the sampled population.", + "enum": [ + "ALLELE_FREQ", + "GENOME_FRACTION" + ], + "type": "enum" + }, + "Gender": { + "default": "VECTOR_FEMALE", + "description": "The sex of the vectors we are sampling. Options are VECTOR_MALE, VECTOR_FEMALE, VECTOR_BOTH_GENDERS.", + "enum": [ + "VECTOR_FEMALE", + "VECTOR_MALE", + "VECTOR_BOTH_GENDERS" + ], + "type": "enum" + }, + "Sample_Size_Constant": { + "default": 6, + "depends-on": { + "Sample_Size_Distribution": "CONSTANT_DISTRIBUTION" + }, + "description": "Each instance will receive this constant/fixed value.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Sample_Size_Distribution": { + "default": "NOT_INITIALIZED", + "description": "The distribution dictionary to use for determining the number of vectors in the sample for each sampling. If the population is less than this number, then the entire population will be selected.", + "enum": [ + "NOT_INITIALIZED", + "CONSTANT_DISTRIBUTION", + "UNIFORM_DISTRIBUTION", + "GAUSSIAN_DISTRIBUTION", + "EXPONENTIAL_DISTRIBUTION", + "POISSON_DISTRIBUTION", + "LOG_NORMAL_DISTRIBUTION", + "DUAL_CONSTANT_DISTRIBUTION", + "WEIBULL_DISTRIBUTION", + "DUAL_EXPONENTIAL_DISTRIBUTION" + ], + "type": "enum" + }, + "Sample_Size_Exponential": { + "default": 6, + "depends-on": { + "Sample_Size_Distribution": "EXPONENTIAL_DISTRIBUTION" + }, + "description": "The mean for an exponential distribution.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Sample_Size_Gaussian_Mean": { + "default": 6, + "depends-on": { + "Sample_Size_Distribution": "GAUSSIAN_DISTRIBUTION" + }, + "description": "The mean for a Gaussian distribution.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Sample_Size_Gaussian_Std_Dev": { + "default": 1, + "depends-on": { + "Sample_Size_Distribution": "GAUSSIAN_DISTRIBUTION" + }, + "description": "The standard deviation for a Gaussian distribution.", + "max": 3.40282e+38, + "min": 1.17549e-38, + "type": "float" + }, + "Sample_Size_Kappa": { + "default": 1, + "depends-on": { + "Sample_Size_Distribution": "WEIBULL_DISTRIBUTION" + }, + "description": "The shape value in a Weibull distribution.", + "max": 3.40282e+38, + "min": 1.17549e-38, + "type": "float" + }, + "Sample_Size_Lambda": { + "default": 1, + "depends-on": { + "Sample_Size_Distribution": "WEIBULL_DISTRIBUTION" + }, + "description": "The scale value in a Weibull distribution.", + "max": 3.40282e+38, + "min": 1.17549e-38, + "type": "float" + }, + "Sample_Size_Log_Normal_Mu": { + "default": 6, + "depends-on": { + "Sample_Size_Distribution": "LOG_NORMAL_DISTRIBUTION" + }, + "description": "The mean for a log-normal distribution.", + "max": 3.40282e+38, + "min": -3.40282e+38, + "type": "float" + }, + "Sample_Size_Log_Normal_Sigma": { + "default": 1, + "depends-on": { + "Sample_Size_Distribution": "LOG_NORMAL_DISTRIBUTION" + }, + "description": "The width for a log-normal distribution.", + "max": 3.40282e+38, + "min": -3.40282e+38, + "type": "float" + }, + "Sample_Size_Max": { + "default": 1, + "depends-on": { + "Sample_Size_Distribution": "UNIFORM_DISTRIBUTION" + }, + "description": "The maximum of the uniform distribution.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Sample_Size_Mean_1": { + "default": 1, + "depends-on": { + "Sample_Size_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION" + }, + "description": "The mean of the first exponential distribution.", + "max": 3.40282e+38, + "min": 1.17549e-38, + "type": "float" + }, + "Sample_Size_Mean_2": { + "default": 1, + "depends-on": { + "Sample_Size_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION" + }, + "description": "The mean of the second exponential distribution.", + "max": 3.40282e+38, + "min": 1.17549e-38, + "type": "float" + }, + "Sample_Size_Min": { + "default": 0, + "depends-on": { + "Sample_Size_Distribution": "UNIFORM_DISTRIBUTION" + }, + "description": "The minimum of the uniform distribution.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Sample_Size_Peak_2_Value": { + "default": 1, + "depends-on": { + "Sample_Size_Distribution": "DUAL_CONSTANT_DISTRIBUTION" + }, + "description": "The value to assign to the remaining individuals.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Sample_Size_Poisson_Mean": { + "default": 6, + "depends-on": { + "Sample_Size_Distribution": "POISSON_DISTRIBUTION" + }, + "description": "The mean for a Poisson distribution.", + "max": 3.40282e+38, + "min": 0, + "type": "float" + }, + "Sample_Size_Proportion_0": { + "default": 1, + "depends-on": { + "Sample_Size_Distribution": "DUAL_CONSTANT_DISTRIBUTION" + }, + "description": "The proportion of individuals to assign a value of zero.", + "max": 1, + "min": 0, + "type": "float" + }, + "Sample_Size_Proportion_1": { + "default": 1, + "depends-on": { + "Sample_Size_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION" + }, + "description": "The proportion of individuals in the first exponential distribution.", + "max": 1, + "min": 0, + "type": "float" + }, + "Species": { + "default": "UNINITIALIZED STRING", + "description": "The name of the species to sample the mosquitoes from. This string must be defined by the Name parameter in the config.Vector_Species_Param parameters.", + "type": "Constrained String", + "value_source": ":Vector_Species_Params.*" + }, + "Update_Period": { + "default": 30, + "description": "The number of days between the sampling of the mosquito population. If the mosquitoes are sampled on day 1 and the period is 30, then the next sample will be taken on day 31.", + "max": 999999, + "min": 0, + "type": "float" + } + }, "idmType:VectorGene": { "Alleles": { "default": [], @@ -16566,6 +17396,14 @@ }, "class": "VectorHabitat" }, + "idmType:VectorResponder": { + "Survey_Completed_Event": { + "default": "", + "description": "Optional Coordinator-level event that will be sent out every time VectorSurveillanceEventCoordinator surveys the vector population.", + "type": "Constrained String", + "value_source": "':Custom_Coordinator_Events.*' or Built-in" + } + }, "idmType:VectorSpeciesParameters": { "Acquire_Modifier": { "default": 1, @@ -16729,55 +17567,11 @@ "min": 1, "type": "float" }, - "Microsporidia_Duration_To_Disease_Acquisition_Modification": { - "description": "A modifier is selected based on the duration of the age of the microsporidia infection. The modifier is used to modify the probability the vector aquires the disease (i.e. malaria).", - "type": "idmType:InterpolatedValueMap" - }, - "Microsporidia_Duration_To_Disease_Transmission_Modification": { - "description": "A modifier is selected based on the duration of the age of the microsporidia infection. The modifier is used to modify the probability the vector transmit the disease (i.e. malaria).", - "type": "idmType:InterpolatedValueMap" - }, - "Microsporidia_Female_Mortality_Modifier": { - "default": 1, - "description": "A modifier on the death rate for female vectors due to general life expectancy, age, and dry heat", - "max": 3.40282e+38, - "min": 0, - "type": "float" - }, - "Microsporidia_Female_To_Egg_Transmission_Probability": { - "default": 0, - "description": "The probability an infected female will infect her eggs when laying them.", - "max": 1, - "min": 0, - "type": "float" - }, - "Microsporidia_Female_To_Male_Transmission_Probability": { - "default": 0, - "description": "The probability an infected female will infect an uninfected male during mating.", - "max": 1, - "min": 0, - "type": "float" - }, - "Microsporidia_Larval_Growth_Modifier": { - "default": 1, - "description": "A modifier to the daily, temperature dependent, larval growth progression to immature.", - "max": 3.40282e+38, - "min": 0, - "type": "float" - }, - "Microsporidia_Male_Mortality_Modifier": { - "default": 1, - "description": "A modifier on the death rate for male vectors due to general life expectancy, age, and dry heat", - "max": 3.40282e+38, - "min": 0, - "type": "float" - }, - "Microsporidia_Male_To_Female_Transmission_Probability": { - "default": 0, - "description": "The probability an infected male will infect an uninfected female during mating.", - "max": 1, - "min": 0, - "type": "float" + "Microsporidia": { + "default": [], + "description": "A list of microsporidia parameters for each strain that this species can get.", + "item_type": "idmType:MicrosporidiaParameters", + "type": "Vector idmType:MicrosporidiaParameters" }, "Name": { "default": "UNINITIALIZED STRING", diff --git a/simulations/download_wi.py b/simulations/download_wi.py index d7fa450..33add55 100644 --- a/simulations/download_wi.py +++ b/simulations/download_wi.py @@ -20,7 +20,7 @@ def download_output(site: str, platform: Platform = None) -> bool: """ if not platform: - platform = Platform(manifest.platform_name) + platform = Platform(manifest.platform_name, endpoint=manifest.endpoint, environment=manifest.environment) analyzer_id_file = get_comps_id_filename(site, level=2) with open(analyzer_id_file, 'r') as id_file: wi_id = id_file.readline() diff --git a/simulations/get_depends_on_ids_from_suite.py b/simulations/get_depends_on_ids_from_suite.py index 6b82e50..21762ff 100644 --- a/simulations/get_depends_on_ids_from_suite.py +++ b/simulations/get_depends_on_ids_from_suite.py @@ -18,7 +18,7 @@ def get_depends_on_ids(suite_ids: str) -> str: Returns: name of the csv file. """ - platform = Platform(manifest.platform_name) + platform = Platform(manifest.platform_name, endpoint=manifest.endpoint, environment=manifest.environment) suite = platform.get_item(item_id=suite_ids, item_type=ItemType.SUITE) site_to_ids = {"site": [], "exp_id": [], diff --git a/simulations/get_version.py b/simulations/get_version.py index cf3a5a6..4b85353 100644 --- a/simulations/get_version.py +++ b/simulations/get_version.py @@ -31,7 +31,7 @@ def get_eradication_info(exp_id=None, experiment=None): if not experiment and not exp_id: raise ValueError("Please provide an experiment object or an experiment id.") if not experiment: - platform = Platform(manifest.platform_name) + platform = Platform(manifest.platform_name, endpoint=manifest.endpoint, environment=manifest.environment) experiment = platform.get_item(item_id=exp_id, item_type=ItemType.EXPERIMENT) sim = experiment.simulations[0] diff --git a/simulations/manifest.py b/simulations/manifest.py index 62621eb..d0a41a7 100644 --- a/simulations/manifest.py +++ b/simulations/manifest.py @@ -11,6 +11,10 @@ Set it to None if you don't want to run with any singularity image. """ use_local_eradication = 0 +# staging +# singularity_id = "e5d5ab18-cfcf-ec11-92e9-f0921c167864" + +# production singularity_id = "8df53802-53f3-ec11-a9f9-b88303911bc1" # ======================================================== @@ -53,6 +57,9 @@ # Define Comps platform platform_name = "Calculon" +# platform_name = "Nibbler" +endpoint = "https://comps.idmod.org" +environment="Calculon" priority = 'BelowNormal' node_group_private = 'idm_48cores' node_group = 'idm_abcd' diff --git a/simulations/run_analyzers.py b/simulations/run_analyzers.py index 5544e2a..943bebb 100644 --- a/simulations/run_analyzers.py +++ b/simulations/run_analyzers.py @@ -24,7 +24,7 @@ def run_analyzers(site: str, characteristic: bool = False) -> (bool, str): if not, return experiment status and id. """ - platform = Platform(manifest.platform_name) + platform = Platform(manifest.platform_name, endpoint=manifest.endpoint, environment=manifest.environment) comps_id_file = get_comps_id_filename(site=site) with open(comps_id_file, 'r') as id_file: exp_id = id_file.readline() diff --git a/simulations/run_sims.py b/simulations/run_sims.py index 0bf9b97..eed9627 100644 --- a/simulations/run_sims.py +++ b/simulations/run_sims.py @@ -25,7 +25,7 @@ def submit_sim(site=None, nSims=1, characteristic=False, priority=manifest.prior """ # Create a platform # Show how to dynamically set priority and node_group - platform = Platform(my_manifest.platform_name, priority=priority, node_group=my_manifest.node_group) + platform = Platform(my_manifest.platform_name, endpoint=my_manifest.endpoint, environment=my_manifest.environment, priority=priority, node_group=my_manifest.node_group) print("Prompting for COMPS creds if necessary...") experiment = create_exp(characteristic, nSims, site, my_manifest, not_use_singularity) diff --git a/simulations/wait_for_experiment.py b/simulations/wait_for_experiment.py index 4de12cb..fa1b1bd 100644 --- a/simulations/wait_for_experiment.py +++ b/simulations/wait_for_experiment.py @@ -17,7 +17,7 @@ def check_experiment(site, platform=None): exp_id = id_file.readline() if not platform: - platform = Platform(manifest.platform_name) + platform = Platform(manifest.platform_name, endpoint=manifest.endpoint, environment=manifest.environment) experiment = platform.get_item(item_id=exp_id, item_type=ItemType.EXPERIMENT) # Wait for the experiment to be done in Comps. diff --git a/tests/inputs/2.20.5522.0_old_campaign.json b/tests/inputs/2.20.5522.0_old_campaign.json new file mode 100644 index 0000000..4c3c69a --- /dev/null +++ b/tests/inputs/2.20.5522.0_old_campaign.json @@ -0,0 +1,335 @@ +{ + "Campaign_Name": "Unnamed Campaign", + "Events": [ + { + "Event_Coordinator_Config": { + "Demographic_Coverage": 1, + "Individual_Selection_Type": "DEMOGRAPHIC_COVERAGE", + "Intervention_Config": { + "Age_Dependence": "SURFACE_AREA_DEPENDENT", + "Disqualifying_Properties": [], + "Dont_Allow_Duplicates": 0, + "EIR_Type": "MONTHLY", + "Intervention_Name": "InputEIR", + "Monthly_EIR": [ + 13, + 16, + 8, + 3, + 5, + 8, + 44, + 26, + 35, + 19, + 13, + 11 + ], + "New_Property_Value": "", + "Scaling_Factor": 1, + "class": "InputEIR" + }, + "Node_Property_Restrictions": [], + "Number_Repetitions": 1, + "Property_Restrictions": [], + "Property_Restrictions_Within_Node": [], + "Target_Demographic": "Everyone", + "Target_Gender": "All", + "Target_Residents_Only": 0, + "Targeting_Config": { + "HasIP": {}, + "HasIntervention": {}, + "IsPregnant": {}, + "TargetingLogic": {} + }, + "Timesteps_Between_Repetitions": 365, + "class": "StandardInterventionDistributionEventCoordinator" + }, + "Nodeset_Config": { + "class": "NodeSetAll" + }, + "Start_Day": 0, + "class": "CampaignEvent" + }, + { + "Event_Coordinator_Config": { + "Demographic_Coverage": 1, + "Individual_Selection_Type": "DEMOGRAPHIC_COVERAGE", + "Intervention_Config": { + "Actual_IndividualIntervention_Config": { + "Actual_IndividualIntervention_Configs": [ + { + "Cost_To_Consumer": 0, + "Disqualifying_Properties": [], + "Dont_Allow_Duplicates": 0, + "Drug_Type": "Artemether", + "Intervention_Name": "AntimalarialDrug_Artemether", + "New_Property_Value": "", + "class": "AntimalarialDrug" + }, + { + "Cost_To_Consumer": 0, + "Disqualifying_Properties": [], + "Dont_Allow_Duplicates": 0, + "Drug_Type": "Lumefantrine", + "Intervention_Name": "AntimalarialDrug_Lumefantrine", + "New_Property_Value": "", + "class": "AntimalarialDrug" + }, + { + "Broadcast_Event": "ReceivedTreatment", + "Disqualifying_Properties": [], + "Dont_Allow_Duplicates": 0, + "Intervention_Name": "BroadcastEvent", + "New_Property_Value": "", + "class": "BroadcastEvent" + } + ], + "Coverage": 1, + "Delay_Period_Distribution": "EXPONENTIAL_DISTRIBUTION", + "Delay_Period_Exponential": 3.3333333333333335, + "Disqualifying_Properties": [], + "Dont_Allow_Duplicates": 0, + "Intervention_Name": "DelayedIntervention", + "New_Property_Value": "", + "class": "DelayedIntervention" + }, + "Blackout_Event_Trigger": "", + "Blackout_On_First_Occurrence": 0, + "Blackout_Period": 0, + "Demographic_Coverage": 0.1, + "Disqualifying_Properties": [], + "Distribute_On_Return_Home": 0, + "Dont_Allow_Duplicates": 0, + "Duration": -1, + "Intervention_Name": "NodeLevelHealthTriggeredIV", + "New_Property_Value": "", + "Node_Property_Restrictions": [], + "Property_Restrictions": [], + "Target_Age_Max": 5, + "Target_Age_Min": 0, + "Target_Demographic": "ExplicitAgeRanges", + "Target_Gender": "All", + "Target_Residents_Only": 0, + "Targeting_Config": { + "HasIP": {}, + "HasIntervention": {}, + "IsPregnant": {}, + "TargetingLogic": {} + }, + "Trigger_Condition_List": [ + "NewClinicalCase" + ], + "class": "NodeLevelHealthTriggeredIV" + }, + "Node_Property_Restrictions": [], + "Number_Repetitions": 1, + "Property_Restrictions": [], + "Property_Restrictions_Within_Node": [], + "Target_Demographic": "Everyone", + "Target_Gender": "All", + "Target_Residents_Only": 0, + "Targeting_Config": { + "HasIP": {}, + "HasIntervention": {}, + "IsPregnant": {}, + "TargetingLogic": {} + }, + "Timesteps_Between_Repetitions": -1, + "class": "StandardInterventionDistributionEventCoordinator" + }, + "Nodeset_Config": { + "class": "NodeSetAll" + }, + "Start_Day": 0.0, + "class": "CampaignEvent" + }, + { + "Event_Coordinator_Config": { + "Demographic_Coverage": 1, + "Individual_Selection_Type": "DEMOGRAPHIC_COVERAGE", + "Intervention_Config": { + "Actual_IndividualIntervention_Config": { + "Actual_IndividualIntervention_Configs": [ + { + "Cost_To_Consumer": 0, + "Disqualifying_Properties": [], + "Dont_Allow_Duplicates": 0, + "Drug_Type": "Artemether", + "Intervention_Name": "AntimalarialDrug_Artemether", + "New_Property_Value": "", + "class": "AntimalarialDrug" + }, + { + "Cost_To_Consumer": 0, + "Disqualifying_Properties": [], + "Dont_Allow_Duplicates": 0, + "Drug_Type": "Lumefantrine", + "Intervention_Name": "AntimalarialDrug_Lumefantrine", + "New_Property_Value": "", + "class": "AntimalarialDrug" + }, + { + "Broadcast_Event": "ReceivedTreatment", + "Disqualifying_Properties": [], + "Dont_Allow_Duplicates": 0, + "Intervention_Name": "BroadcastEvent", + "New_Property_Value": "", + "class": "BroadcastEvent" + } + ], + "Coverage": 1, + "Delay_Period_Distribution": "EXPONENTIAL_DISTRIBUTION", + "Delay_Period_Exponential": 3.3333333333333335, + "Disqualifying_Properties": [], + "Dont_Allow_Duplicates": 0, + "Intervention_Name": "DelayedIntervention", + "New_Property_Value": "", + "class": "DelayedIntervention" + }, + "Blackout_Event_Trigger": "", + "Blackout_On_First_Occurrence": 0, + "Blackout_Period": 0, + "Demographic_Coverage": 0.1, + "Disqualifying_Properties": [], + "Distribute_On_Return_Home": 0, + "Dont_Allow_Duplicates": 0, + "Duration": -1, + "Intervention_Name": "NodeLevelHealthTriggeredIV", + "New_Property_Value": "", + "Node_Property_Restrictions": [], + "Property_Restrictions": [], + "Target_Age_Max": 100, + "Target_Age_Min": 5, + "Target_Demographic": "ExplicitAgeRanges", + "Target_Gender": "All", + "Target_Residents_Only": 0, + "Targeting_Config": { + "HasIP": {}, + "HasIntervention": {}, + "IsPregnant": {}, + "TargetingLogic": {} + }, + "Trigger_Condition_List": [ + "NewClinicalCase" + ], + "class": "NodeLevelHealthTriggeredIV" + }, + "Node_Property_Restrictions": [], + "Number_Repetitions": 1, + "Property_Restrictions": [], + "Property_Restrictions_Within_Node": [], + "Target_Demographic": "Everyone", + "Target_Gender": "All", + "Target_Residents_Only": 0, + "Targeting_Config": { + "HasIP": {}, + "HasIntervention": {}, + "IsPregnant": {}, + "TargetingLogic": {} + }, + "Timesteps_Between_Repetitions": -1, + "class": "StandardInterventionDistributionEventCoordinator" + }, + "Nodeset_Config": { + "class": "NodeSetAll" + }, + "Start_Day": 0.0, + "class": "CampaignEvent" + }, + { + "Event_Coordinator_Config": { + "Demographic_Coverage": 1, + "Individual_Selection_Type": "DEMOGRAPHIC_COVERAGE", + "Intervention_Config": { + "Actual_IndividualIntervention_Config": { + "Actual_IndividualIntervention_Configs": [ + { + "Cost_To_Consumer": 0, + "Disqualifying_Properties": [], + "Dont_Allow_Duplicates": 0, + "Drug_Type": "Artemether", + "Intervention_Name": "AntimalarialDrug_Artemether", + "New_Property_Value": "", + "class": "AntimalarialDrug" + }, + { + "Cost_To_Consumer": 0, + "Disqualifying_Properties": [], + "Dont_Allow_Duplicates": 0, + "Drug_Type": "Lumefantrine", + "Intervention_Name": "AntimalarialDrug_Lumefantrine", + "New_Property_Value": "", + "class": "AntimalarialDrug" + }, + { + "Broadcast_Event": "ReceivedTreatment", + "Disqualifying_Properties": [], + "Dont_Allow_Duplicates": 0, + "Intervention_Name": "BroadcastEvent", + "New_Property_Value": "", + "class": "BroadcastEvent" + } + ], + "Coverage": 1, + "Delay_Period_Distribution": "EXPONENTIAL_DISTRIBUTION", + "Delay_Period_Exponential": 2.0, + "Disqualifying_Properties": [], + "Dont_Allow_Duplicates": 0, + "Intervention_Name": "DelayedIntervention", + "New_Property_Value": "", + "class": "DelayedIntervention" + }, + "Blackout_Event_Trigger": "", + "Blackout_On_First_Occurrence": 0, + "Blackout_Period": 0, + "Demographic_Coverage": 0.6, + "Disqualifying_Properties": [], + "Distribute_On_Return_Home": 0, + "Dont_Allow_Duplicates": 0, + "Duration": -1, + "Intervention_Name": "NodeLevelHealthTriggeredIV", + "New_Property_Value": "", + "Node_Property_Restrictions": [], + "Property_Restrictions": [], + "Target_Age_Max": 125, + "Target_Age_Min": 0, + "Target_Demographic": "ExplicitAgeRanges", + "Target_Gender": "All", + "Target_Residents_Only": 0, + "Targeting_Config": { + "HasIP": {}, + "HasIntervention": {}, + "IsPregnant": {}, + "TargetingLogic": {} + }, + "Trigger_Condition_List": [ + "NewSevereCase" + ], + "class": "NodeLevelHealthTriggeredIV" + }, + "Node_Property_Restrictions": [], + "Number_Repetitions": 1, + "Property_Restrictions": [], + "Property_Restrictions_Within_Node": [], + "Target_Demographic": "Everyone", + "Target_Gender": "All", + "Target_Residents_Only": 0, + "Targeting_Config": { + "HasIP": {}, + "HasIntervention": {}, + "IsPregnant": {}, + "TargetingLogic": {} + }, + "Timesteps_Between_Repetitions": -1, + "class": "StandardInterventionDistributionEventCoordinator" + }, + "Nodeset_Config": { + "class": "NodeSetAll" + }, + "Start_Day": 0.0, + "class": "CampaignEvent" + } + ], + "Use_Defaults": 1 +} \ No newline at end of file diff --git a/tests/inputs/2.20.5522.0_old_custom_reports.json b/tests/inputs/2.20.5522.0_old_custom_reports.json new file mode 100644 index 0000000..10ad60e --- /dev/null +++ b/tests/inputs/2.20.5522.0_old_custom_reports.json @@ -0,0 +1,367 @@ +{ + "Custom_Reports": { + "Use_Explicit_Dlls": 1 + }, + "Reports": [ + { + "Age_Bins": [ + 5.0, + 15.0, + 80.0 + ], + "Enabled": 1, + "End_Day": 365, + "Filename_Suffix": "Monthly_Report_0", + "Infectiousness_Bins": [ + 0, + 100 + ], + "Max_Number_Reports": 1000, + "Must_Have_IP_Key_Value": "", + "Must_Have_Intervention": "", + "Node_IDs_Of_Interest": [], + "Parasitemia_Bins": [ + 0, + 50, + 500, + 4000, + 6000, + 8000, + 10000, + 50000, + 500000, + 5000000 + ], + "Pretty_Format": 0, + "Reporting_Interval": 30, + "Start_Day": 0, + "class": "MalariaSummaryReport" + }, + { + "Age_Bins": [ + 5.0, + 15.0, + 80.0 + ], + "Enabled": 1, + "End_Day": 730, + "Filename_Suffix": "Monthly_Report_1", + "Infectiousness_Bins": [ + 0, + 100 + ], + "Max_Number_Reports": 1000, + "Must_Have_IP_Key_Value": "", + "Must_Have_Intervention": "", + "Node_IDs_Of_Interest": [], + "Parasitemia_Bins": [ + 0, + 50, + 500, + 4000, + 6000, + 8000, + 10000, + 50000, + 500000, + 5000000 + ], + "Pretty_Format": 0, + "Reporting_Interval": 30, + "Start_Day": 365, + "class": "MalariaSummaryReport" + }, + { + "Age_Bins": [ + 5.0, + 15.0, + 80.0 + ], + "Enabled": 1, + "End_Day": 1095, + "Filename_Suffix": "Monthly_Report_2", + "Infectiousness_Bins": [ + 0, + 100 + ], + "Max_Number_Reports": 1000, + "Must_Have_IP_Key_Value": "", + "Must_Have_Intervention": "", + "Node_IDs_Of_Interest": [], + "Parasitemia_Bins": [ + 0, + 50, + 500, + 4000, + 6000, + 8000, + 10000, + 50000, + 500000, + 5000000 + ], + "Pretty_Format": 0, + "Reporting_Interval": 30, + "Start_Day": 730, + "class": "MalariaSummaryReport" + }, + { + "Age_Bins": [ + 5.0, + 15.0, + 80.0 + ], + "Enabled": 1, + "End_Day": 1460, + "Filename_Suffix": "Monthly_Report_3", + "Infectiousness_Bins": [ + 0, + 100 + ], + "Max_Number_Reports": 1000, + "Must_Have_IP_Key_Value": "", + "Must_Have_Intervention": "", + "Node_IDs_Of_Interest": [], + "Parasitemia_Bins": [ + 0, + 50, + 500, + 4000, + 6000, + 8000, + 10000, + 50000, + 500000, + 5000000 + ], + "Pretty_Format": 0, + "Reporting_Interval": 30, + "Start_Day": 1095, + "class": "MalariaSummaryReport" + }, + { + "Age_Bins": [ + 5.0, + 15.0, + 80.0 + ], + "Enabled": 1, + "End_Day": 1825, + "Filename_Suffix": "Monthly_Report_4", + "Infectiousness_Bins": [ + 0, + 100 + ], + "Max_Number_Reports": 1000, + "Must_Have_IP_Key_Value": "", + "Must_Have_Intervention": "", + "Node_IDs_Of_Interest": [], + "Parasitemia_Bins": [ + 0, + 50, + 500, + 4000, + 6000, + 8000, + 10000, + 50000, + 500000, + 5000000 + ], + "Pretty_Format": 0, + "Reporting_Interval": 30, + "Start_Day": 1460, + "class": "MalariaSummaryReport" + }, + { + "Age_Bins": [ + 5.0, + 15.0, + 80.0 + ], + "Enabled": 1, + "End_Day": 365, + "Filename_Suffix": "Infectiousness_Monthly_Report_0", + "Infectiousness_Bins": [ + 0, + 5, + 20, + 50, + 80, + 100 + ], + "Max_Number_Reports": 1000, + "Must_Have_IP_Key_Value": "", + "Must_Have_Intervention": "", + "Node_IDs_Of_Interest": [], + "Parasitemia_Bins": [ + 0, + 50, + 500, + 4000, + 6000, + 8000, + 10000, + 50000, + 500000, + 5000000 + ], + "Pretty_Format": 0, + "Reporting_Interval": 30, + "Start_Day": 0, + "class": "MalariaSummaryReport" + }, + { + "Age_Bins": [ + 5.0, + 15.0, + 80.0 + ], + "Enabled": 1, + "End_Day": 730, + "Filename_Suffix": "Infectiousness_Monthly_Report_1", + "Infectiousness_Bins": [ + 0, + 5, + 20, + 50, + 80, + 100 + ], + "Max_Number_Reports": 1000, + "Must_Have_IP_Key_Value": "", + "Must_Have_Intervention": "", + "Node_IDs_Of_Interest": [], + "Parasitemia_Bins": [ + 0, + 50, + 500, + 4000, + 6000, + 8000, + 10000, + 50000, + 500000, + 5000000 + ], + "Pretty_Format": 0, + "Reporting_Interval": 30, + "Start_Day": 365, + "class": "MalariaSummaryReport" + }, + { + "Age_Bins": [ + 5.0, + 15.0, + 80.0 + ], + "Enabled": 1, + "End_Day": 1095, + "Filename_Suffix": "Infectiousness_Monthly_Report_2", + "Infectiousness_Bins": [ + 0, + 5, + 20, + 50, + 80, + 100 + ], + "Max_Number_Reports": 1000, + "Must_Have_IP_Key_Value": "", + "Must_Have_Intervention": "", + "Node_IDs_Of_Interest": [], + "Parasitemia_Bins": [ + 0, + 50, + 500, + 4000, + 6000, + 8000, + 10000, + 50000, + 500000, + 5000000 + ], + "Pretty_Format": 0, + "Reporting_Interval": 30, + "Start_Day": 730, + "class": "MalariaSummaryReport" + }, + { + "Age_Bins": [ + 5.0, + 15.0, + 80.0 + ], + "Enabled": 1, + "End_Day": 1460, + "Filename_Suffix": "Infectiousness_Monthly_Report_3", + "Infectiousness_Bins": [ + 0, + 5, + 20, + 50, + 80, + 100 + ], + "Max_Number_Reports": 1000, + "Must_Have_IP_Key_Value": "", + "Must_Have_Intervention": "", + "Node_IDs_Of_Interest": [], + "Parasitemia_Bins": [ + 0, + 50, + 500, + 4000, + 6000, + 8000, + 10000, + 50000, + 500000, + 5000000 + ], + "Pretty_Format": 0, + "Reporting_Interval": 30, + "Start_Day": 1095, + "class": "MalariaSummaryReport" + }, + { + "Age_Bins": [ + 5.0, + 15.0, + 80.0 + ], + "Enabled": 1, + "End_Day": 1825, + "Filename_Suffix": "Infectiousness_Monthly_Report_4", + "Infectiousness_Bins": [ + 0, + 5, + 20, + 50, + 80, + 100 + ], + "Max_Number_Reports": 1000, + "Must_Have_IP_Key_Value": "", + "Must_Have_Intervention": "", + "Node_IDs_Of_Interest": [], + "Parasitemia_Bins": [ + 0, + 50, + 500, + 4000, + 6000, + 8000, + 10000, + 50000, + 500000, + 5000000 + ], + "Pretty_Format": 0, + "Reporting_Interval": 30, + "Start_Day": 1460, + "class": "MalariaSummaryReport" + } + ] +} \ No newline at end of file diff --git a/tests/inputs/2.20.5522.0_old_demog.json b/tests/inputs/2.20.5522.0_old_demog.json new file mode 100644 index 0000000..b54051f --- /dev/null +++ b/tests/inputs/2.20.5522.0_old_demog.json @@ -0,0 +1,82 @@ +{ + "Metadata": { + "DateCreated": "Fri Aug 8 18:30:00 2021", + "Tool": "", + "Author": "pselvaraj", + "IdReference": "", + "Resolution": 150, + "NodeCount": 1 + }, + "Nodes": [ + { + "IndividualAttributes": { + "AgeDistribution1": 0, + "AgeDistribution2": 0, + "AgeDistributionFlag": 0, + "ImmunityDistribution1": 1, + "ImmunityDistribution2": 0, + "ImmunityDistributionFlag": 0, + "MigrationHeterogeneityDistribution1": 1, + "MigrationHeterogeneityDistribution2": 0, + "MigrationHeterogeneityDistributionFlag": 0, + "MortalityDistribution": { + "AxisNames": [ + "gender", + "age" + ], + "AxisScaleFactors": [ + 1, + 365 + ], + "AxisUnits": [ + "male=0,female=1", + "years" + ], + "NumDistributionAxes": 2, + "NumPopulationGroups": [ + 2, + 1 + ], + "PopulationGroups": [ + [ + 0, + 1 + ], + [ + 0 + ] + ], + "ResultScaleFactor": 2.74e-06, + "ResultUnits": "annual deaths per 1000 individuals", + "ResultValues": [ + [ + 45 + ], + [ + 45 + ] + ] + }, + "PrevalenceDistribution1": 0, + "PrevalenceDistribution2": 0, + "PrevalenceDistributionFlag": 0, + "RiskDistribution1": 1, + "RiskDistribution2": 0, + "RiskDistributionFlag": 0 + }, + "NodeAttributes": { + "AbovePoverty": 0.5, + "Airport": 0, + "Altitude": 0, + "BirthRate": 0.0274, + "InitialPopulation": 1000, + "Latitude": -8.5, + "Longitude": 36.5, + "Region": 1, + "Seaport": 0, + "Urban": 0 + }, + "NodeID": 340461476 + } + ] +} \ No newline at end of file diff --git a/tests/inputs/2.20.5522.0_old_my_config.json b/tests/inputs/2.20.5522.0_old_my_config.json new file mode 100644 index 0000000..de52756 --- /dev/null +++ b/tests/inputs/2.20.5522.0_old_my_config.json @@ -0,0 +1,581 @@ +{ + "parameters": { + "Age_Dependent_Biting_Risk_Type": "SURFACE_AREA_DEPENDENT", + "Age_Initialization_Distribution_Type": "DISTRIBUTION_SIMPLE", + "Anemia_Mortality_Inverse_Width": 1, + "Anemia_Mortality_Threshold": 0.654726662830038, + "Anemia_Severe_Inverse_Width": 10, + "Anemia_Severe_Threshold": 4.50775824973078, + "Antibody_CSP_Decay_Days": 90, + "Antibody_CSP_Killing_Inverse_Width": 1.5, + "Antibody_CSP_Killing_Threshold": 20, + "Antibody_Capacity_Growth_Rate": 0.09, + "Antibody_IRBC_Kill_Rate": 1.596, + "Antibody_Memory_Level": 0.34, + "Antibody_Stimulation_C50": 30, + "Antigen_Switch_Rate": 7.645570124964182e-10, + "Base_Air_Temperature": 27, + "Base_Gametocyte_Fraction_Male": 0.2, + "Base_Gametocyte_Mosquito_Survival_Rate": 0.002011099, + "Base_Gametocyte_Production_Rate": 0.06150582, + "Base_Land_Temperature": 27, + "Base_Rainfall": 150, + "Base_Relative_Humidity": 0.75, + "Base_Sporozoite_Survival_Fraction": 0.25, + "Climate_Model": "CLIMATE_CONSTANT", + "Climate_Update_Resolution": "CLIMATE_UPDATE_DAY", + "Clinical_Fever_Threshold_High": 1.5, + "Clinical_Fever_Threshold_Low": 0.5, + "Config_Name": "", + "Custom_Coordinator_Events": [], + "Custom_Individual_Events": [ + "ReceivedTreatment" + ], + "Custom_Node_Events": [], + "Custom_Reports_Filename": "", + "Cytokine_Gametocyte_Inactivation": 0.01667, + "Demographics_Filenames": [ + "demographics_cohort_1000.json" + ], + "Egg_Hatch_Delay_Distribution": "NO_DELAY", + "Egg_Hatch_Density_Dependence": "NO_DENSITY_DEPENDENCE", + "Egg_Saturation_At_Oviposition": "SATURATION_AT_OVIPOSITION", + "Enable_Climate_Stochasticity": 0, + "Enable_Default_Reporting": 1, + "Enable_Demographics_Builtin": 0, + "Enable_Demographics_Reporting": 0, + "Enable_Demographics_Risk": 0, + "Enable_Disease_Mortality": 0, + "Enable_Drought_Egg_Hatch_Delay": 0, + "Enable_Egg_Mortality": 0, + "Enable_Infectivity_Reservoir": 0, + "Enable_Initial_Prevalence": 1, + "Enable_Interventions": 0, + "Enable_Maternal_Antibodies_Transmission": 1, + "Enable_Property_Output": 0, + "Enable_Skipping": 0, + "Enable_Spatial_Output": 0, + "Enable_Superinfection": 1, + "Enable_Susceptibility_Scaling": 0, + "Enable_Temperature_Dependent_Egg_Hatching": 0, + "Enable_Termination_On_Zero_Total_Infectivity": 0, + "Enable_Vector_Aging": 0, + "Enable_Vector_Migration": 1, + "Enable_Vector_Migration_Local": 0, + "Enable_Vector_Migration_Regional": 0, + "Enable_Vector_Mortality": 1, + "Enable_Vector_Species_Report": 0, + "Enable_Vital_Dynamics": 0, + "Erythropoiesis_Anemia_Effect": 3.5, + "Falciparum_MSP_Variants": 32, + "Falciparum_Nonspecific_Types": 76, + "Falciparum_PfEMP1_Variants": 1070, + "Fever_IRBC_Kill_Rate": 1.4, + "Fever_Mortality_Inverse_Width": 1895.51971624351, + "Fever_Mortality_Threshold": 3.4005008555391, + "Fever_Severe_Inverse_Width": 27.5653580403806, + "Fever_Severe_Threshold": 3.98354299722192, + "Gametocyte_Stage_Survival_Rate": 0.588569307, + "Human_Feeding_Mortality": 0.1, + "Incubation_Period_Constant": 7, + "Incubation_Period_Distribution": "CONSTANT_DISTRIBUTION", + "Individual_Sampling_Type": "TRACK_ALL", + "Infection_Updates_Per_Timestep": 8, + "Infectious_Period_Exponential": 6, + "Infectious_Period_Gaussian_Mean": 6, + "Infectious_Period_Gaussian_Std_Dev": 1, + "Infectious_Period_Kappa": 1, + "Infectious_Period_Lambda": 1, + "Infectious_Period_Log_Normal_Mu": 6, + "Infectious_Period_Log_Normal_Sigma": 1, + "Infectious_Period_Max": 1, + "Infectious_Period_Mean_1": 1, + "Infectious_Period_Mean_2": 1, + "Infectious_Period_Min": 0, + "Infectious_Period_Peak_2_Value": 1, + "Infectious_Period_Poisson_Mean": 6, + "Infectious_Period_Proportion_0": 1, + "Infectious_Period_Proportion_1": 1, + "Infectivity_Scale_Type": "CONSTANT_INFECTIVITY", + "Innate_Immune_Variation_Type": "NONE", + "Insecticides": [], + "Inset_Chart_Has_IP": [], + "Inset_Chart_Has_Interventions": [], + "Inset_Chart_Include_Pregnancies": 0, + "Inset_Chart_Reporting_Include_30Day_Avg_Infection_Duration": 1, + "Larval_Density_Dependence": "UNIFORM_WHEN_OVERPOPULATION", + "Load_Balance_Filename": "", + "MSP1_Merozoite_Kill_Fraction": 0.511735322, + "Malaria_Drug_Params": [ + { + "Bodyweight_Exponent": 1.0, + "Drug_Cmax": 114.0, + "Drug_Decay_T1": 0.12, + "Drug_Decay_T2": 0.12, + "Drug_Dose_Interval": 0.5, + "Drug_Fulltreatment_Doses": 6.0, + "Drug_Gametocyte02_Killrate": 2.5, + "Drug_Gametocyte34_Killrate": 1.5, + "Drug_GametocyteM_Killrate": 0.7, + "Drug_Hepatocyte_Killrate": 0, + "Drug_PKPD_C50": 0.6, + "Drug_Vd": 1.0, + "Fractional_Dose_By_Upper_Age": [ + { + "Fraction_Of_Adult_Dose": 0.25, + "Upper_Age_In_Years": 3.0 + }, + { + "Fraction_Of_Adult_Dose": 0.5, + "Upper_Age_In_Years": 6.0 + }, + { + "Fraction_Of_Adult_Dose": 0.75, + "Upper_Age_In_Years": 10.0 + } + ], + "Max_Drug_IRBC_Kill": 8.9, + "Name": "Artemether", + "PKPD_Model": "CONCENTRATION_VERSUS_TIME", + "Resistances": [] + }, + { + "Bodyweight_Exponent": 0.35, + "Drug_Cmax": 1017.0, + "Drug_Decay_T1": 1.3, + "Drug_Decay_T2": 2.0, + "Drug_Dose_Interval": 0.5, + "Drug_Fulltreatment_Doses": 6.0, + "Drug_Gametocyte02_Killrate": 2.4, + "Drug_Gametocyte34_Killrate": 0, + "Drug_GametocyteM_Killrate": 0, + "Drug_Hepatocyte_Killrate": 0, + "Drug_PKPD_C50": 280.0, + "Drug_Vd": 1.2, + "Fractional_Dose_By_Upper_Age": [ + { + "Fraction_Of_Adult_Dose": 0.25, + "Upper_Age_In_Years": 3.0 + }, + { + "Fraction_Of_Adult_Dose": 0.5, + "Upper_Age_In_Years": 6.0 + }, + { + "Fraction_Of_Adult_Dose": 0.75, + "Upper_Age_In_Years": 10.0 + } + ], + "Max_Drug_IRBC_Kill": 4.8, + "Name": "Lumefantrine", + "PKPD_Model": "CONCENTRATION_VERSUS_TIME", + "Resistances": [] + }, + { + "Bodyweight_Exponent": 1.0, + "Drug_Cmax": 200.0, + "Drug_Decay_T1": 0.12, + "Drug_Decay_T2": 0.12, + "Drug_Dose_Interval": 1, + "Drug_Fulltreatment_Doses": 3, + "Drug_Gametocyte02_Killrate": 2.5, + "Drug_Gametocyte34_Killrate": 1.5, + "Drug_GametocyteM_Killrate": 0.7, + "Drug_Hepatocyte_Killrate": 0, + "Drug_PKPD_C50": 0.6, + "Drug_Vd": 1.0, + "Fractional_Dose_By_Upper_Age": [ + { + "Fraction_Of_Adult_Dose": 0.375, + "Upper_Age_In_Years": 0.83 + }, + { + "Fraction_Of_Adult_Dose": 0.5, + "Upper_Age_In_Years": 2.83 + }, + { + "Fraction_Of_Adult_Dose": 0.625, + "Upper_Age_In_Years": 5.25 + }, + { + "Fraction_Of_Adult_Dose": 0.75, + "Upper_Age_In_Years": 7.33 + }, + { + "Fraction_Of_Adult_Dose": 0.875, + "Upper_Age_In_Years": 9.42 + } + ], + "Max_Drug_IRBC_Kill": 9.2, + "Name": "DHA", + "PKPD_Model": "CONCENTRATION_VERSUS_TIME", + "Resistances": [] + }, + { + "Bodyweight_Exponent": 0, + "Drug_Cmax": 30.0, + "Drug_Decay_T1": 0.17, + "Drug_Decay_T2": 41.0, + "Drug_Dose_Interval": 1, + "Drug_Fulltreatment_Doses": 3, + "Drug_Gametocyte02_Killrate": 2.3, + "Drug_Gametocyte34_Killrate": 0, + "Drug_GametocyteM_Killrate": 0, + "Drug_Hepatocyte_Killrate": 0, + "Drug_PKPD_C50": 5.0, + "Drug_Vd": 49.0, + "Fractional_Dose_By_Upper_Age": [ + { + "Fraction_Of_Adult_Dose": 0.375, + "Upper_Age_In_Years": 0.83 + }, + { + "Fraction_Of_Adult_Dose": 0.5, + "Upper_Age_In_Years": 2.83 + }, + { + "Fraction_Of_Adult_Dose": 0.625, + "Upper_Age_In_Years": 5.25 + }, + { + "Fraction_Of_Adult_Dose": 0.75, + "Upper_Age_In_Years": 7.33 + }, + { + "Fraction_Of_Adult_Dose": 0.875, + "Upper_Age_In_Years": 9.42 + } + ], + "Max_Drug_IRBC_Kill": 4.6, + "Name": "Piperaquine", + "PKPD_Model": "CONCENTRATION_VERSUS_TIME", + "Resistances": [] + }, + { + "Bodyweight_Exponent": 1.0, + "Drug_Cmax": 75.0, + "Drug_Decay_T1": 0.36, + "Drug_Decay_T2": 0.36, + "Drug_Dose_Interval": 1, + "Drug_Fulltreatment_Doses": 1.0, + "Drug_Gametocyte02_Killrate": 2.0, + "Drug_Gametocyte34_Killrate": 5.0, + "Drug_GametocyteM_Killrate": 50.0, + "Drug_Hepatocyte_Killrate": 0.1, + "Drug_PKPD_C50": 15.0, + "Drug_Vd": 1.0, + "Fractional_Dose_By_Upper_Age": [ + { + "Fraction_Of_Adult_Dose": 0.17, + "Upper_Age_In_Years": 5.0 + }, + { + "Fraction_Of_Adult_Dose": 0.33, + "Upper_Age_In_Years": 9.0 + }, + { + "Fraction_Of_Adult_Dose": 0.67, + "Upper_Age_In_Years": 14.0 + } + ], + "Max_Drug_IRBC_Kill": 0.0, + "Name": "Primaquine", + "PKPD_Model": "CONCENTRATION_VERSUS_TIME", + "Resistances": [] + }, + { + "Bodyweight_Exponent": 1.0, + "Drug_Cmax": 150.0, + "Drug_Decay_T1": 8.9, + "Drug_Decay_T2": 244.0, + "Drug_Dose_Interval": 1, + "Drug_Fulltreatment_Doses": 3, + "Drug_Gametocyte02_Killrate": 0, + "Drug_Gametocyte34_Killrate": 0, + "Drug_GametocyteM_Killrate": 0, + "Drug_Hepatocyte_Killrate": 0, + "Drug_PKPD_C50": 150.0, + "Drug_Vd": 3.9, + "Fractional_Dose_By_Upper_Age": [ + { + "Fraction_Of_Adult_Dose": 0.17, + "Upper_Age_In_Years": 5.0 + }, + { + "Fraction_Of_Adult_Dose": 0.33, + "Upper_Age_In_Years": 9.0 + }, + { + "Fraction_Of_Adult_Dose": 0.67, + "Upper_Age_In_Years": 14.0 + } + ], + "Max_Drug_IRBC_Kill": 4.8, + "Name": "Chloroquine", + "PKPD_Model": "CONCENTRATION_VERSUS_TIME", + "Resistances": [] + }, + { + "Bodyweight_Exponent": 1.0, + "Drug_Cmax": 200.0, + "Drug_Decay_T1": 0.12, + "Drug_Decay_T2": 0.12, + "Drug_Dose_Interval": 1, + "Drug_Fulltreatment_Doses": 3, + "Drug_Gametocyte02_Killrate": 2.5, + "Drug_Gametocyte34_Killrate": 1.5, + "Drug_GametocyteM_Killrate": 0.7, + "Drug_Hepatocyte_Killrate": 0, + "Drug_PKPD_C50": 0.03, + "Drug_Vd": 1.0, + "Fractional_Dose_By_Upper_Age": [ + { + "Fraction_Of_Adult_Dose": 0.167, + "Upper_Age_In_Years": 2.0 + }, + { + "Fraction_Of_Adult_Dose": 0.33, + "Upper_Age_In_Years": 5.0 + } + ], + "Max_Drug_IRBC_Kill": 4.2, + "Name": "Artesunate", + "PKPD_Model": "CONCENTRATION_VERSUS_TIME", + "Resistances": [] + }, + { + "Bodyweight_Exponent": 1.0, + "Drug_Cmax": 105.8, + "Drug_Decay_T1": 8.55, + "Drug_Decay_T2": 8.55, + "Drug_Dose_Interval": 1, + "Drug_Fulltreatment_Doses": 1.0, + "Drug_Gametocyte02_Killrate": 0, + "Drug_Gametocyte34_Killrate": 0, + "Drug_GametocyteM_Killrate": 0, + "Drug_Hepatocyte_Killrate": 0, + "Drug_PKPD_C50": 0.2, + "Drug_Vd": 1.0, + "Fractional_Dose_By_Upper_Age": [ + { + "Fraction_Of_Adult_Dose": 0.167, + "Upper_Age_In_Years": 2.0 + }, + { + "Fraction_Of_Adult_Dose": 0.33, + "Upper_Age_In_Years": 5.0 + } + ], + "Max_Drug_IRBC_Kill": 0.506, + "Name": "Sulfadoxine", + "PKPD_Model": "CONCENTRATION_VERSUS_TIME", + "Resistances": [] + }, + { + "Bodyweight_Exponent": 1.0, + "Drug_Cmax": 354.1, + "Drug_Decay_T1": 5.411, + "Drug_Decay_T2": 5.411, + "Drug_Dose_Interval": 1, + "Drug_Fulltreatment_Doses": 1.0, + "Drug_Gametocyte02_Killrate": 0, + "Drug_Gametocyte34_Killrate": 0, + "Drug_GametocyteM_Killrate": 0, + "Drug_Hepatocyte_Killrate": 0, + "Drug_PKPD_C50": 2.0, + "Drug_Vd": 1.0, + "Fractional_Dose_By_Upper_Age": [ + { + "Fraction_Of_Adult_Dose": 0.167, + "Upper_Age_In_Years": 2.0 + }, + { + "Fraction_Of_Adult_Dose": 0.33, + "Upper_Age_In_Years": 5.0 + } + ], + "Max_Drug_IRBC_Kill": 0.6, + "Name": "Pyrimethamine", + "PKPD_Model": "CONCENTRATION_VERSUS_TIME", + "Resistances": [] + }, + { + "Bodyweight_Exponent": 1.0, + "Drug_Cmax": 1185.0, + "Drug_Decay_T1": 0.12, + "Drug_Decay_T2": 6.25, + "Drug_Dose_Interval": 1, + "Drug_Fulltreatment_Doses": 3, + "Drug_Gametocyte02_Killrate": 0, + "Drug_Gametocyte34_Killrate": 0, + "Drug_GametocyteM_Killrate": 0, + "Drug_Hepatocyte_Killrate": 0, + "Drug_PKPD_C50": 35.5, + "Drug_Vd": 2.51, + "Fractional_Dose_By_Upper_Age": [ + { + "Fraction_Of_Adult_Dose": 0.22, + "Upper_Age_In_Years": 1.0 + }, + { + "Fraction_Of_Adult_Dose": 0.44, + "Upper_Age_In_Years": 5.0 + } + ], + "Max_Drug_IRBC_Kill": 0.67089, + "Name": "Amodiaquine", + "PKPD_Model": "CONCENTRATION_VERSUS_TIME", + "Resistances": [] + }, + { + "Bodyweight_Exponent": 1.0, + "Drug_Cmax": 537.0, + "Drug_Decay_T1": 0.12, + "Drug_Decay_T2": 6.25, + "Drug_Dose_Interval": 1, + "Drug_Fulltreatment_Doses": 3, + "Drug_Gametocyte02_Killrate": 0, + "Drug_Gametocyte34_Killrate": 0, + "Drug_GametocyteM_Killrate": 0, + "Drug_Hepatocyte_Killrate": 0, + "Drug_PKPD_C50": 80.0, + "Drug_Vd": 2.51, + "Fractional_Dose_By_Upper_Age": [ + { + "Fraction_Of_Adult_Dose": 0.22, + "Upper_Age_In_Years": 1.0 + }, + { + "Fraction_Of_Adult_Dose": 0.44, + "Upper_Age_In_Years": 5.0 + } + ], + "Max_Drug_IRBC_Kill": 0.7089, + "Name": "Amodiaquine_for_AS_combination", + "PKPD_Model": "CONCENTRATION_VERSUS_TIME", + "Resistances": [] + }, + { + "Bodyweight_Exponent": 1.0, + "Drug_Cmax": 100.0, + "Drug_Decay_T1": 10.0, + "Drug_Decay_T2": 10.0, + "Drug_Dose_Interval": 1, + "Drug_Fulltreatment_Doses": 3, + "Drug_Gametocyte02_Killrate": 0, + "Drug_Gametocyte34_Killrate": 0, + "Drug_GametocyteM_Killrate": 0, + "Drug_Hepatocyte_Killrate": 0, + "Drug_PKPD_C50": 10.0, + "Drug_Vd": 1.0, + "Fractional_Dose_By_Upper_Age": [ + { + "Fraction_Of_Adult_Dose": 0.25, + "Upper_Age_In_Years": 3.0 + }, + { + "Fraction_Of_Adult_Dose": 0.5, + "Upper_Age_In_Years": 6.0 + }, + { + "Fraction_Of_Adult_Dose": 0.75, + "Upper_Age_In_Years": 10.0 + } + ], + "Max_Drug_IRBC_Kill": 4.0, + "Name": "Abstract", + "PKPD_Model": "CONCENTRATION_VERSUS_TIME", + "Resistances": [] + }, + { + "Bodyweight_Exponent": 0, + "Drug_Cmax": 10.0, + "Drug_Decay_T1": 1, + "Drug_Decay_T2": 1, + "Drug_Dose_Interval": 1, + "Drug_Fulltreatment_Doses": 1.0, + "Drug_Gametocyte02_Killrate": 0, + "Drug_Gametocyte34_Killrate": 0, + "Drug_GametocyteM_Killrate": 0, + "Drug_Hepatocyte_Killrate": 0, + "Drug_PKPD_C50": 5.0, + "Drug_Vd": 10, + "Fractional_Dose_By_Upper_Age": [], + "Max_Drug_IRBC_Kill": 0.0, + "Name": "Vehicle", + "PKPD_Model": "CONCENTRATION_VERSUS_TIME", + "Resistances": [] + } + ], + "Malaria_Model": "MALARIA_MECHANISTIC_MODEL", + "Malaria_Strain_Model": "FALCIPARUM_RANDOM_STRAIN", + "Maternal_Antibodies_Type": "SIMPLE_WANING", + "Maternal_Antibody_Decay_Rate": 0.01, + "Maternal_Antibody_Protection": 0.12113742216538194, + "Max_Individual_Infections": 3, + "Max_MSP1_Antibody_Growthrate": 0.045, + "Mean_Egg_Hatch_Delay": 0, + "Mean_Sporozoites_Per_Bite": 11, + "Memory_Usage_Halting_Threshold_Working_Set_MB": 8000, + "Memory_Usage_Warning_Threshold_Working_Set_MB": 7000, + "Merozoites_Per_Hepatocyte": 15000, + "Merozoites_Per_Schizont": 16, + "Migration_Model": "NO_MIGRATION", + "Min_Adapted_Response": 0.05, + "Min_Days_Between_Clinical_Incidents": 14, + "Node_Grid_Size": 0.042, + "Nonspecific_Antibody_Growth_Rate_Factor": 0.5, + "Nonspecific_Antigenicity_Factor": 0.415111634, + "Number_Basestrains": 1, + "Number_Of_Asexual_Cycles_Without_Gametocytes": 1, + "Parasite_Mortality_Inverse_Width": 327.51594505874, + "Parasite_Mortality_Threshold": 851138.0382023759, + "Parasite_Severe_Inverse_Width": 56.5754896048744, + "Parasite_Severe_Threshold": 851031.2877445256, + "Parasite_Switch_Type": "RATE_PER_PARASITE_7VARS", + "PfHRP2_Boost_Rate": 0.018, + "PfHRP2_Decay_Rate": 0.167, + "Population_Density_Infectivity_Correction": "CONSTANT_INFECTIVITY", + "Population_Scale_Type": "FIXED_SCALING", + "Pyrogenic_Threshold": 15000.0, + "RBC_Destruction_Multiplier": 3.29, + "Rainfall_In_mm_To_Fill_Swamp": 1000, + "Random_Number_Generator_Policy": "ONE_PER_CORE", + "Random_Number_Generator_Type": "USE_PSEUDO_DES", + "Report_Coordinator_Event_Recorder": 0, + "Report_Detection_Threshold_Blood_Smear_Gametocytes": 0, + "Report_Detection_Threshold_Blood_Smear_Parasites": 0, + "Report_Detection_Threshold_Fever": 1, + "Report_Detection_Threshold_PCR_Gametocytes": 0.05, + "Report_Detection_Threshold_PCR_Parasites": 0.05, + "Report_Detection_Threshold_PfHRP2": 5, + "Report_Detection_Threshold_True_Parasite_Density": 0, + "Report_Event_Recorder": 0, + "Report_Event_Recorder_PropertyChange_IP_Key_Of_Interest": "", + "Report_Gametocyte_Smear_Sensitivity": 0.01, + "Report_Node_Event_Recorder": 0, + "Report_Parasite_Smear_Sensitivity": 0.01, + "Report_Surveillance_Event_Recorder": 0, + "Run_Number": 1, + "Semipermanent_Habitat_Decay_Rate": 0.01, + "Serialized_Population_Reading_Type": "NONE", + "Serialized_Population_Writing_Type": "NONE", + "Simulation_Duration": 1825, + "Simulation_Timestep": 1, + "Simulation_Type": "MALARIA_SIM", + "Start_Time": 0, + "Temporary_Habitat_Decay_Factor": 0.05, + "Vector_Larval_Rainfall_Mortality": "NONE", + "Vector_Migration_Food_Modifier": 0, + "Vector_Migration_Habitat_Modifier": 0, + "Vector_Migration_Modifier_Equation": "LINEAR", + "Vector_Migration_Stay_Put_Modifier": 0, + "Vector_Sampling_Type": "VECTOR_COMPARTMENTS_NUMBER", + "Vector_Species_Params": [], + "Wolbachia_Infection_Modification": 1, + "Wolbachia_Mortality_Modification": 1, + "x_Base_Population": 1, + "x_Temporary_Larval_Habitat": 1, + "x_Vector_Migration_Local": 1 + } +} \ No newline at end of file diff --git a/tests/test_run_sims.py b/tests/test_run_sims.py index 37e6941..865f1b6 100644 --- a/tests/test_run_sims.py +++ b/tests/test_run_sims.py @@ -8,7 +8,7 @@ import pathlib import json -latest_version = '2.20.5347.0' +latest_version = '2.20.5522.0' class RunSimsTest(BaseTest):