Config Parser Module
Configuration management for ophthalmic treatment protocol simulations.
This module handles loading and merging configuration files for simulation runs, including protocol definitions, parameter sets, and simulation settings.
Key Components
SimulationConfig : Dataclass for storing simulation configuration ConfigurationManager : Main class for loading and merging configurations
Configuration Files
base_parameters.yaml : Common parameters for all protocols
protocol_definitions/ : Protocol-specific definitions
parameter_sets/ : Protocol-specific parameters
simulation_configs/ : Complete simulation configurations
Examples
>>> manager = ConfigurationManager()
>>> config = manager.load_simulation_config('test_simulation')
>>> full_config = manager.get_full_configuration('test_simulation')
- class protocols.config_parser.SimulationConfig(name, protocol_agent, protocol_type, parameter_set, simulation_type, duration_days, num_patients, random_seed, save_results, database, plots, verbose, resources=None)[source]
Bases:
objectConfiguration for a simulation run.
- Variables:
name (str) – Name of the simulation configuration
protocol_agent (str) – Name of the treatment agent (e.g., ‘Aflibercept’)
protocol_type (str) – Type of protocol (e.g., ‘standard’, ‘intensive’)
parameter_set (str) – Name of parameter set to use
simulation_type (str) – Type of simulation (‘abs’ or ‘des’)
duration_days (int) – Duration of simulation in days
num_patients (int) – Number of patients to simulate
random_seed (int) – Random seed for reproducibility
save_results (bool) – Whether to save results to database
database (str) – Database path/name for results
plots (bool) – Whether to generate plots
verbose (bool) – Enable verbose output
resources (Dict[str, Any], optional) – Additional resource definitions
- Parameters:
name (str)
protocol_agent (str)
protocol_type (str)
parameter_set (str)
simulation_type (str)
duration_days (int)
num_patients (int)
random_seed (int)
save_results (bool)
database (str)
plots (bool)
verbose (bool)
resources (Dict[str, Any])
-
name:
str
-
protocol_agent:
str
-
protocol_type:
str
-
parameter_set:
str
-
simulation_type:
str
-
duration_days:
int
-
num_patients:
int
-
random_seed:
int
-
save_results:
bool
-
database:
str
-
plots:
bool
-
verbose:
bool
-
resources:
Dict[str,Any] = None
- __init__(name, protocol_agent, protocol_type, parameter_set, simulation_type, duration_days, num_patients, random_seed, save_results, database, plots, verbose, resources=None)
- Parameters:
name (str)
protocol_agent (str)
protocol_type (str)
parameter_set (str)
simulation_type (str)
duration_days (int)
num_patients (int)
random_seed (int)
save_results (bool)
database (str)
plots (bool)
verbose (bool)
resources (Dict[str, Any])
- Return type:
None
- class protocols.config_parser.ConfigurationManager(base_path='protocols')[source]
Bases:
object- Parameters:
base_path (str)
- __init__(base_path='protocols')[source]
- Parameters:
base_path (str)
- load_simulation_config(config_name)[source]
Load a simulation configuration from YAML.
- Parameters:
config_name (str) – Name of configuration file (without .yaml extension)
- Returns:
Configuration dataclass instance
- Return type:
Examples
>>> manager = ConfigurationManager() >>> config = manager.load_simulation_config('test_simulation') >>> print(config.protocol_agent) 'Aflibercept'
- get_full_configuration(config_name)[source]
Get complete merged configuration for a simulation.
Combines: - Simulation configuration - Protocol definition - Parameter sets - Clinical model parameters (if present)
- Parameters:
config_name (str) – Name of configuration file (without .yaml extension)
- Returns:
Dictionary containing all configuration components with keys: - ‘config’: SimulationConfig - ‘protocol’: Protocol definition - ‘parameters’: Merged parameters
- Return type:
Dict[str, Any]
Examples
>>> manager = ConfigurationManager() >>> full_config = manager.get_full_configuration('test_simulation') >>> print(full_config['parameters']['injection_interval_weeks']) 4