schrodinger.application.transforms.ligprep.stereoizer module

Apache Beam transform for stereoisomer enumeration.

Thin Beam adapter around the legacy ligprep3 Stereoizer class (schrodinger.application.macromodel.packages.ligprep3.stereoizer.Stereoizer), which is reused verbatim.

class schrodinger.application.transforms.ligprep.stereoizer.StereoizerConfig(*, max_isomers: int = 32, label_specified_chiralities: bool = True, ignore_existing_stereo: bool = False, use_geometry: bool = False, retain_original: bool = False, pat_class: int = 2, pat_keep_orig_off: bool = False, skip_bad: bool = False, verbosity: int = 1)

Bases: BaseModel

Configuration for the stereoizer transform.

Defaults match the legacy ligprep workflow’s invocation of the stereoizer.

max_isomers: int
label_specified_chiralities: bool
ignore_existing_stereo: bool
use_geometry: bool
retain_original: bool
pat_class: int
pat_keep_orig_off: bool
skip_bad: bool
verbosity: int
to_arg_list() → list

Build the legacy stereoizer command-line argument list.

model_config: ClassVar[ConfigDict] = {}

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

class schrodinger.application.transforms.ligprep.stereoizer.Stereoizer(*, _config: pydantic.main.BaseModel | None = None, **kwargs)

Bases: PTransformWithConfig

Enumerate stereoisomers for structures using the legacy ligprep3 stereoizer. Structures that fail are dropped.

Example usage:

>>> from schrodinger import adapter
>>> import apache_beam as beam
>>> st = adapter.to_structure('CC(C)C')
>>> with beam.Pipeline() as p:
...     isomers = (p
...         | beam.Create([st])
...         | Stereoizer(max_isomers=4))

See StereoizerConfig for the available parameters.

config_class

alias of StereoizerConfig

expand(pcoll) → OutcomePCollections