OCDocker.OCScore.Optimization.Protocol module¶
Minimal staged protocol abstractions for OCScore optimization workflows.
It is imported as:
from OCDocker.OCScore.Optimization.Protocol import ProtocolContext
- class OCDocker.OCScore.Optimization.Protocol.ProtocolContext(pdbbind_df, dudez_df, selected_features, output_dir, random_seed=42, metadata=<factory>, artifacts=<factory>, stage_results=<factory>, protocol_log=<factory>)[source]¶
Bases:
objectShared state passed between staged protocol steps.
- Parameters:
pdbbind_df (pd.DataFrame) – Reduced PDBbind dataframe.
dudez_df (pd.DataFrame) – Reduced DUDEz dataframe.
selected_features (list[str]) – Descriptor columns selected by the feature-reduction protocol.
output_dir (str) – Directory where protocol artifacts are written.
random_seed (int, optional) – Random seed used by protocol stages, by default 42.
metadata (dict[str, Any], optional) – Optional dataset identifiers, paths, or caller metadata.
artifacts (dict[str, Any], optional) – Runtime artifacts passed between stages.
stage_results (dict[str, Any], optional) – JSON-serializable stage summaries.
protocol_log (dict[str, Any], optional) – Reproducibility log accumulated by the protocol.
- pdbbind_df: DataFrame¶
- dudez_df: DataFrame¶
- selected_features: list[str]¶
- output_dir: str¶
- random_seed: int = 42¶
- metadata: dict[str, Any]¶
- artifacts: dict[str, Any]¶
- stage_results: dict[str, Any]¶
- protocol_log: dict[str, Any]¶
- class OCDocker.OCScore.Optimization.Protocol.ProtocolStage(*args, **kwargs)[source]¶
Bases:
ProtocolProtocol implemented by executable protocol stages.
- name¶
Stable stage name used in logs and result dictionaries.
- Type:
str
- name: str¶
- run(context)[source]¶
Run the stage and return an updated context.
- Parameters:
context (ProtocolContext) – Current protocol context.
- Returns:
Updated protocol context.
- Return type:
- class OCDocker.OCScore.Optimization.Protocol.ReplicaResult(replica_index, replica_name, seed, output_dir, success, context=None, summary=<factory>, error=None, failed_stage=None, traceback=None)[source]¶
Bases:
objectResult for one replicated staged protocol execution.
- Parameters:
replica_index (int) – Zero-based replica index.
replica_name (str) – Stable replica name, for example
"replica_000".seed (int) – Random seed used by this replica.
output_dir (str) – Replica-specific output directory.
success (bool) – Whether the replica completed all stages.
context (ProtocolContext | None, optional) – Final replica context for successful replicas, by default None.
summary (dict[str, Any], optional) – Per-replica summary row used in aggregate reports.
error (str | None, optional) – Error message for failed replicas, by default None.
failed_stage (str | None, optional) – Stage name active when the replica failed, by default None.
traceback (str | None, optional) – Formatted traceback for failed replicas, by default None.
- replica_index: int¶
- replica_name: str¶
- seed: int¶
- output_dir: str¶
- success: bool¶
- context: ProtocolContext | None = None¶
- summary: dict[str, Any]¶
- error: str | None = None¶
- failed_stage: str | None = None¶
- traceback: str | None = None¶
- class OCDocker.OCScore.Optimization.Protocol.ReplicatedProtocolConfig(n_replicas=1, base_seed=None, replica_name_prefix='replica', continue_on_replica_failure=False, write_reports=True, write_protocol_log=True, replica_jobs=1, resume_completed=False)[source]¶
Bases:
objectConfiguration for replicated staged protocol execution.
A replica is one full staged Optuna/modeling execution. Replicas are not Optuna trials; each replica contains its own PDBbind Optuna study, transfer stage, and DUDEz Optuna study. Feature reduction is expected to run once before this protocol and is not repeated per replica.
- Parameters:
n_replicas (int, optional) – Number of independent staged protocol executions, by default 1.
base_seed (int | None, optional) – Base random seed. Replica
iusesbase_seed + i. If None, the input context random seed is used.replica_name_prefix (str, optional) – Prefix used to build replica names, by default
"replica".continue_on_replica_failure (bool, optional) – If True, failed replicas are recorded and later replicas continue. If False, the first failed replica raises an exception after reports are written, by default False.
write_reports (bool, optional) – If True, write
replicas_summary.csv,replicas_summary.json, andreplicas_protocol.jsonin the base output directory, by default True.write_protocol_log (bool, optional) – If True, each replica writes its own
protocol_log.json, by default True.replica_jobs (int, optional) – Number of replicas to execute concurrently. Values greater than one use concurrent worker threads, by default 1.
resume_completed (bool, optional) – If True, reuse completed replica directories with a valid protocol log instead of rerunning them, by default False.
- n_replicas: int = 1¶
- base_seed: int | None = None¶
- replica_name_prefix: str = 'replica'¶
- continue_on_replica_failure: bool = False¶
- write_reports: bool = True¶
- write_protocol_log: bool = True¶
- replica_jobs: int = 1¶
- resume_completed: bool = False¶
- class OCDocker.OCScore.Optimization.Protocol.ReplicatedProtocolResult(replica_results, summary_df, aggregate_summary, output_paths, failed_replicas=<factory>)[source]¶
Bases:
objectAggregated result returned by
ReplicatedStagedProtocol.- Parameters:
replica_results (list[ReplicaResult]) – Per-replica result objects.
summary_df (pd.DataFrame) – One-row-per-replica summary table.
aggregate_summary (dict[str, Any]) – Mean/std metrics and separate best PDBbind/DUDEz replica selections.
output_paths (dict[str, str]) – Top-level report paths written by the replicated protocol.
failed_replicas (list[ReplicaResult]) – Failed replica result objects. Empty if all replicas succeeded.
- replica_results: list[ReplicaResult]¶
- summary_df: DataFrame¶
- aggregate_summary: dict[str, Any]¶
- output_paths: dict[str, str]¶
- failed_replicas: list[ReplicaResult]¶
- class OCDocker.OCScore.Optimization.Protocol.ReplicatedStagedProtocol(stages, n_replicas=1, base_seed=None, replica_name_prefix='replica', continue_on_replica_failure=False, write_reports=True, write_protocol_log=True, replica_jobs=1, resume_completed=False, config=None)[source]¶
Bases:
objectRun a staged Optuna/modeling protocol across independent replicas.
Replica execution applies to the staged Optuna/modeling protocol only. The reduced datasets and selected features are reused from the input context; feature reduction is not repeated. Replica
ireceives seedbase_seed + iand output directoryPath(context.output_dir) / f"{replica_name_prefix}_{i:03d}".- Parameters:
stages (Iterable[ProtocolStage]) – Ordered stages for one full modeling protocol execution.
n_replicas (int, optional) – Number of independent protocol executions, by default 1.
base_seed (int | None, optional) – Base seed used for deterministic replica seeds. If None, use the input context random seed.
replica_name_prefix (str, optional) – Replica name prefix, by default
"replica".continue_on_replica_failure (bool, optional) – Continue after failed replicas and record the failures, by default False.
write_reports (bool, optional) – Write top-level replica summary reports, by default True.
write_protocol_log (bool, optional) – Write each replica
protocol_log.json, by default True.config (ReplicatedProtocolConfig | None, optional) – Optional configuration object. Explicit keyword arguments are used when config is None.
replica_jobs (int)
resume_completed (bool)
- __init__(stages, n_replicas=1, base_seed=None, replica_name_prefix='replica', continue_on_replica_failure=False, write_reports=True, write_protocol_log=True, replica_jobs=1, resume_completed=False, config=None)[source]¶
Initialize a replicated staged protocol runner.
- Parameters:
stages (Iterable[ProtocolStage]) – Ordered stages for one full modeling protocol execution.
n_replicas (int, optional) – Number of independent protocol executions, by default 1.
base_seed (int | None, optional) – Base seed for deterministic replica seeds, by default None.
replica_name_prefix (str, optional) – Replica name prefix, by default
"replica".continue_on_replica_failure (bool, optional) – Continue after failed replicas, by default False.
write_reports (bool, optional) – Write top-level replica reports, by default True.
write_protocol_log (bool, optional) – Write per-replica protocol logs, by default True.
replica_jobs (int, optional) – Number of replicas to execute concurrently, by default 1.
resume_completed (bool, optional) – Reuse completed replica outputs instead of rerunning them, by default False.
config (ReplicatedProtocolConfig | None, optional) – Optional config object, by default None.
- Return type:
None
- stages: list[ProtocolStage]¶
- config: ReplicatedProtocolConfig¶
- run(context)[source]¶
Run all replicas and aggregate their results.
- Parameters:
context (ProtocolContext) – Base context containing reduced datasets, selected features, output directory, seed, and feature-reduction metadata.
- Returns:
Per-replica contexts, summary table, aggregate metrics, output report paths, and failed replica records.
- Return type:
- class OCDocker.OCScore.Optimization.Protocol.StagedProtocol(stages, write_protocol_log=True)[source]¶
Bases:
objectSequential protocol runner with explicit stage ownership.
- Parameters:
stages (Iterable[ProtocolStage]) – Ordered protocol stages.
write_protocol_log (bool, optional) – If True, write
protocol_log.jsonafter the run, by default True.
- stages: Iterable[ProtocolStage]¶
- write_protocol_log: bool = True¶
- run(context)[source]¶
Run all stages in order.
- Parameters:
context (ProtocolContext) – Initial protocol context.
- Returns:
Updated context after all stages have completed.
- Return type: