Protocol Modules
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)
- 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
Protocol configuration parser for macular simulation.
This module handles loading and parsing protocol configuration files (YAML format) into structured Python objects. It provides validation and type conversion for:
Protocol definitions (treatment phases, visit types, decision criteria)
Parameter sets (vision, treatment response, disease progression parameters)
Simulation configurations (protocol selection, patient counts, duration)
Key Classes
ProtocolParser: Main class for loading and validating protocol configurations SimulationConfig: Container for complete simulation configuration
Examples
Load a simulation configuration: >>> parser = ProtocolParser() >>> config = parser.load_simulation_config(“test_simulation”) >>> print(config.protocol.protocol_name) “Test Protocol”
Validate a protocol definition: >>> protocol = parser._load_protocol_definition(“eylea”, “standard”) >>> protocol.validate() True
- class protocols.protocol_parser.SimulationConfig(**kwargs)[source]
Bases:
objectContainer for complete simulation configuration.
This class holds all configuration parameters needed to run a simulation, including protocol definitions, parameter sets, and simulation settings.
- Variables:
name (str) – Name of the simulation configuration
protocol_agent (str) – Name of the treatment agent (e.g. “eylea”)
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) – Simulation duration 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/connection string
plots (bool) – Whether to generate plots
verbose (bool) – Verbose output flag
start_date (str) – Simulation start date (YYYY-MM-DD)
description (str) – Description of simulation
protocol (Optional[TreatmentProtocol]) – Loaded protocol definition
parameters (Optional[Dict[str, Any]]) – Merged parameter set including: - vision parameters - treatment response parameters - disease progression parameters - resource 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
-
start_date:
str
-
description:
str
-
protocol:
Optional[TreatmentProtocol] = None
-
parameters:
Optional[Dict[str,Any]] = None
- class protocols.protocol_parser.ProtocolParser(base_path='protocols')[source]
Bases:
objectParser for protocol configurations that creates protocol objects.
This class handles loading and validating protocol configuration files, including: - Protocol definitions (phases, visit types, decision criteria) - Parameter sets (vision, treatment, disease parameters) - Simulation configurations
- Parameters:
base_path (str, optional) – Base path for protocol files (default: “protocols”)
- load_simulation_config(config_name)[source]
Load complete simulation configuration
- Parameters:
config_name (str)
- Return type:
- get_full_configuration(config_name)[source]
Get configuration with protocol objects and parameters
- Parameters:
config_name (str)
- Return type:
Dict[str, Any]
- load_simulation_config(config_name)[source]
Load and validate a simulation configuration from YAML file.
- Parameters:
config_name (str) – Name of configuration file (without .yaml extension)
- Returns:
Configured simulation settings with loaded protocol
- Return type:
- Raises:
ValueError – If configuration is invalid or validation fails
Examples
>>> parser = ProtocolParser() >>> config = parser.load_simulation_config("test_simulation") >>> print(config.protocol.protocol_name) "Test Protocol"
- get_full_configuration(config_name)[source]
Get complete validated configuration including protocol objects and parameters.
- Parameters:
config_name (str) – Name of configuration file (without .yaml extension)
- Returns:
Dictionary containing: - “config”: SimulationConfig object - “protocol”: TreatmentProtocol object - “parameters”: Merged parameter dictionary
- Return type:
Dict[str, Any]
- Raises:
ValueError – If configuration is invalid or validation fails
Examples
>>> parser = ProtocolParser() >>> full_config = parser.get_full_configuration("test_simulation") >>> print(full_config["protocol"].phases["loading"].duration_weeks) 12
- protocols.protocol_parser.load_protocol(config_name)[source]
Legacy function to load protocol configuration (deprecated).
- Parameters:
config_name (str) – Name of configuration file (without .yaml extension)
- Returns:
Same as get_full_configuration()
- Return type:
Dict[str, Any]
Note
This exists for backwards compatibility. New code should use ProtocolParser.get_full_configuration() directly.