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: object

Configuration 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:

SimulationConfig

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