schrodinger.application.transforms.scorers.fep module¶
FEP+ scorer for AL-Pareto active learning.
- class schrodinger.application.transforms.scorers.fep.FEPScoreProperties¶
Bases:
StrEnumProperties produced by
FEPScorer.- PRED_DG = 'r_alpareto_fep_pred_dg'¶
- PRED_DG_UNCERTAINTY = 'r_alpareto_fep_pred_dg_uncertainty'¶
- PRED_LE = 'r_alpareto_fep_pred_le'¶
- PRED_LLE = 'r_alpareto_fep_pred_lle'¶
- PRED_AEI = 'r_alpareto_fep_pred_aei'¶
- class schrodinger.application.transforms.scorers.fep.FEPMapConfig(*, core_smarts: str | None = None, topology: Optional[Literal['star', 'normal']] = None, receptor_hotatoms_asl: str | None = None, ligand_hotatoms_rule_complex: str | None = None, ligand_hotatoms_rule_solvent: str | None = None, disable_supernodes: bool | None = None, generate_neutral_intermediates: bool | None = None)¶
Bases:
BaseModelFEP map generation settings.
All fields default to
None, meaning the FEP transform default is used.- core_smarts: str | None¶
- topology: Optional[Literal['star', 'normal']]¶
- receptor_hotatoms_asl: str | None¶
- ligand_hotatoms_rule_complex: str | None¶
- ligand_hotatoms_rule_solvent: str | None¶
- disable_supernodes: bool | None¶
- generate_neutral_intermediates: bool | None¶
- model_config: ClassVar[ConfigDict] = {'frozen': True}¶
Configuration for the model, should be a dictionary conforming to [
ConfigDict][pydantic.config.ConfigDict].
- class schrodinger.application.transforms.scorers.fep.FEPProtocolConfig(*, forcefield: Literal['OPLS4', 'OPLS5'] = 'OPLS4', simulation_time: int = 5000, equilibration_time: int = 20, opls_dir: Optional[Path] = None, restraints_file: Optional[Path] = None, ensemble: Optional[Literal['muVT', 'NPT', 'NVT', 'NVE', 'NPgT']] = None, water_model: Optional[Literal['SPC', 'SPCE', 'TIP3P', 'TIP3P_CHARMM', 'TIP4P', 'TIP4PEW', 'TIP4P2005', 'TIP5P', 'TIP4PD']] = None, salt_concentration: Optional[float] = None, membrane_relaxation: bool | None = None, torsion_scaling: bool | None = None, num_windows: Optional[int] = None, num_core_hopping_windows: Optional[int] = None, num_charged_windows: Optional[int] = None)¶
Bases:
BaseModelFEP simulation protocol settings.
All optional fields default to
None, meaning the FEP transform default is used.- forcefield: Literal['OPLS4', 'OPLS5']¶
- simulation_time: int¶
- equilibration_time: int¶
- opls_dir: Optional[Path]¶
- restraints_file: Optional[Path]¶
- ensemble: Optional[Literal['muVT', 'NPT', 'NVT', 'NVE', 'NPgT']]¶
- water_model: Optional[Literal['SPC', 'SPCE', 'TIP3P', 'TIP3P_CHARMM', 'TIP4P', 'TIP4PEW', 'TIP4P2005', 'TIP5P', 'TIP4PD']]¶
- salt_concentration: Optional[float]¶
- membrane_relaxation: bool | None¶
- torsion_scaling: bool | None¶
- num_windows: Optional[int]¶
- num_core_hopping_windows: Optional[int]¶
- num_charged_windows: Optional[int]¶
- model_config: ClassVar[ConfigDict] = {'frozen': True}¶
Configuration for the model, should be a dictionary conforming to [
ConfigDict][pydantic.config.ConfigDict].
- class schrodinger.application.transforms.scorers.fep.FEPOutputInclusionConfig(*, fmpdb: bool = True)¶
Bases:
BaseModelControls what additional information is included in FEP output.
- fmpdb: bool¶
- model_config: ClassVar[ConfigDict] = {'frozen': True}¶
Configuration for the model, should be a dictionary conforming to [
ConfigDict][pydantic.config.ConfigDict].
- class schrodinger.application.transforms.scorers.fep.FEPScorerConfig(*, receptor_file: Path, reference_ligands_file: Path, map_settings: FEPMapConfig = FEPMapConfig(core_smarts=None, topology=None, receptor_hotatoms_asl=None, ligand_hotatoms_rule_complex=None, ligand_hotatoms_rule_solvent=None, disable_supernodes=None, generate_neutral_intermediates=None), execution: WebServicesConfig, protocol: FEPProtocolConfig = FEPProtocolConfig(forcefield='OPLS4', simulation_time=5000, equilibration_time=20, opls_dir=None, restraints_file=None, ensemble=None, water_model=None, salt_concentration=None, membrane_relaxation=None, torsion_scaling=None, num_windows=None, num_core_hopping_windows=None, num_charged_windows=None), inclusion: FEPOutputInclusionConfig = FEPOutputInclusionConfig(fmpdb=True), batch_size: int = 100, mock: bool = False)¶
Bases:
BaseModelConfiguration for
FEPScorer.- Parameters:
receptor_file – Path to receptor/environment structures (.maegz).
reference_ligands_file – Path to reference ligands (.maegz).
map_settings – FEP map generation settings.
execution – Web services execution settings.
protocol – FEP simulation protocol settings.
inclusion – FEP output inclusion settings.
batch_size – Number of structures per FEP batch.
mock – Use mock FEP (random dG values) for testing.
- receptor_file: Path¶
- reference_ligands_file: Path¶
- map_settings: FEPMapConfig¶
- execution: WebServicesConfig¶
- protocol: FEPProtocolConfig¶
- inclusion: FEPOutputInclusionConfig¶
- batch_size: int¶
- mock: bool¶
- model_config: ClassVar[ConfigDict] = {'frozen': True}¶
Configuration for the model, should be a dictionary conforming to [
ConfigDict][pydantic.config.ConfigDict].
- class schrodinger.application.transforms.scorers.fep.FEPScorer(**kwargs)¶
Bases:
AsyncScorerScore structures using FEP+ via web services.
- SCORER_ID: str = 'fep'¶
- SCORER_PROPERTIES¶
alias of
FEPScoreProperties
- config_class¶
alias of
FEPScorerConfig
- __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