schrodinger.application.transforms.scorers.hfe module

HFE (Hydration Free Energy) scorer for AL-Pareto active learning.

Submits ligand structures to the GraphDB solubility FEP workflow in hydration-only mode and collects predicted hydration dG values.

class schrodinger.application.transforms.scorers.hfe.HFEScoreProperties

Bases: StrEnum

Properties produced by HFEScorer.

PRED_DG = 'r_alpareto_hfe_pred_dg'
PRED_DG_UNCERTAINTY = 'r_alpareto_hfe_pred_dg_uncertainty'
class schrodinger.application.transforms.scorers.hfe.HFEScorerConfig(*, execution: WebServicesConfig, forcefield: Literal['OPLS4', 'OPLS5'] = 'OPLS4', hydration_simulation_time: int = 5000, num_windows: Optional[int] = None, seed: int | None = None, buffer_width: Optional[float] = None, opls_dir: pathlib.Path | None = None, use_ffbuilder: bool = False, mock: bool = False)

Bases: BaseModel

Configuration for HFEScorer.

Parameters:
  • execution – Web services execution settings.

  • forcefield – OPLS forcefield version.

  • hydration_simulation_time – Hydration FEP simulation time in picoseconds (max 25000).

  • num_windows – Number of lambda windows (4–24, multiple of 4). None uses the server default.

  • seed – Random seed for the simulation.

  • buffer_width – Minimum system buffer width in Angstroms (5–30).

  • opls_dir – Path to a custom OPLS forcefield directory or archive file. Passed directly to the GraphDB solubility API.

  • use_ffbuilder – Enable ffbuilder to automatically parameterize missing torsions before running the FEP simulation.

  • mock – Use mock scoring (random dG values) for testing.

execution: WebServicesConfig
forcefield: Literal['OPLS4', 'OPLS5']
hydration_simulation_time: int
num_windows: Optional[int]
seed: int | None
buffer_width: Optional[float]
opls_dir: pathlib.Path | None
use_ffbuilder: bool
mock: bool
model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod validate_num_windows_multiple_of_4(v)

Validate that num_windows is a multiple of 4.

classmethod validate_opls_dir_exists(v)

Validate that opls_dir exists (file or directory).

class schrodinger.application.transforms.scorers.hfe.HFEScorer(**kwargs)

Bases: AsyncScorer

Score structures using hydration free energy via web services.

SCORER_ID: str = 'hfe'
SCORER_PROPERTIES

alias of HFEScoreProperties

config_class

alias of HFEScorerConfig

__init__(**kwargs)

Initialize the transform with configuration.

All keyword arguments are passed to the config_class constructor to create a validated configuration instance stored as self.config.

Parameters:

kwargs – Configuration parameters for the config_class

Raises:
  • AttributeError – If config_class is not defined on the subclass

  • ValidationError – If the configuration parameters are invalid