experiment.py¶
Overview¶
The LoadExperiment class is responsible for initializing and managing simulation settings for
different experimental runs based on user-defined arguments and a manifest configuration.
It facilitates the setup for various models including EMOD and OpenMalaria.
The constructor initializes the LoadExperiment object with basic settings, user configurations,
and manifest-related attributes.
It also configures the run mode and parameters to vary based on the provided arguments.
Import Statements¶
import manifest
from utility.helper import *
import warnings
Methods¶
-
configure_run_mode()
Configures settings based on the specified run mode (calibrun, test, productionrun, or simulation). -
configure_calibration() Configures calibration settings if the emod_calib_params attribute is enabled.
-
update(**kwargs)
Updates the attributes of the LoadExperiment instance with new values provided as keyword arguments.
Attributes¶
SUITEname: The name of the suite for the experiment.exp_name: Name of the experiment.emod_step: Specifies the EMOD step.models: List of models to run.intervention_list: List of interventions to be applied.run_mode: Specifies the run mode of the experiment.emod_calib_params: Calibration parameters for EMOD.malariasimulation_parameter_variation: Indicates whether parameter variation for malariasimulation is enabled.output_type: Type of output expected from the simulation.user: User-related settings.custom_subdir: Subdirectory for user-specific data.hpc: High-Performance Computing settings from the manifest.job_directory_manifest: Directory for job outputs as specified in the manifest.output_directory_manifest: Directory for experiment outputs as specified in the manifest.interp_path: Path for interpolation data.interp_csv: Interpolation CSV file name.burnin_directory: Directory for burn-in outputs (default is None).
Example¶
import argparse
from manifest import Manifest
from load_experiment import LoadExperiment
# Example of argument parsing
parser = argparse.ArgumentParser(description='Load Experiment Settings')
parser.add_argument('--suite', required=True, help='Suite name for the experiment')
parser.add_argument('--expname', required=True, help='Name of the experiment')
# Add additional arguments as necessary
args = parser.parse_args()
# Load manifest
manifest = Manifest() # Initialize the manifest with appropriate configurations
# Create LoadExperiment object
experiment = LoadExperiment(args, manifest)
# Accessing attributes
print(experiment.SUITEname)
print(experiment.output_type)