schrodinger.seam.yaml.transforms module

class schrodinger.seam.yaml.transforms.GlideDock(grid_file: str, reference_ligand_file: str, glide_in_file: str, structure_field: str = 'structure', poses_per_lig: int = 1)

Bases: PTransform

Generate 3d docked poses from a collection of structures using Glide.

Example usage:

type: GlideDock
config:
  structure_field: "structure"
  grid_file: "foo.grid"
  reference_ligand_file: "reference_ligand.maegz"
  glide_in_file: "settings.in"
  poses_per_lig: 1
__init__(grid_file: str, reference_ligand_file: str, glide_in_file: str, structure_field: str = 'structure', poses_per_lig: int = 1)
expand(pcoll)
class schrodinger.seam.yaml.transforms.QikProp(arg_string: str)

Bases: PTransform

Perform QikProp.

Example usage:

type: QikProp
config:
  arg_string: "TODO"
  input_field: "structure"
Args:

arg_string: (optional) The qikprop argstring to use.

__init__(arg_string: str)
expand(pcoll: PCollection)
class schrodinger.seam.yaml.transforms.LigFilter(label: Optional[str] = None)

Bases: PTransform

Filter ligands based on a series of criteria

Example usage:

type: LigFilter
config:
  ligfilter_file: ligfilter.txt
  input_field: "structure"
Args:

ligfilter_file: The ligfilter file to use. input_field: The field to filter.

class schrodinger.seam.yaml.transforms.AlignLigands(label: Optional[str] = None)

Bases: PTransform

Align ligands.

Example usage:

type: AlignLigands
config:
  arg_string: "TODO"
  method_type: FLEX/TUG/DEFAULT
  input_field: "structure"
  output_field: "aligned_structure"
class schrodinger.seam.yaml.transforms.FlexAlignLigands(label: Optional[str] = None)

Bases: PTransform

Flex align ligands.

Example usage:

type: FlexAlignLigands
config:
  arg_string: "TODO"
  input_field: "structure"
  output_field: "aligned_structure"
class schrodinger.seam.yaml.transforms.TugAlignLigands(label: Optional[str] = None)

Bases: PTransform

Tug align ligands.

Example usage:

type: TugAlignLigands
config:
  arg_string: "TODO"
  receptor_file: "receptor.maegz"
  input_field: "structure"
  output_field: "aligned_structure"
class schrodinger.seam.yaml.transforms.EpikClassicProtonateLigands(label: Optional[str] = None)

Bases: PTransform

Enumerate protonation states of ligands using Epik classic.

Example usage:

type: EpikClassicProtonateLigands
config:
  arg_string: "TODO"
  epik_classic_infile: "epik_classic.in"
  input_field: "structure"
  output_field: "protonated_structure"
class schrodinger.seam.yaml.transforms.EpikProtonateLigands(label: Optional[str] = None)

Bases: PTransform

Enumerate protonation states of ligands using Epik.

Example usage:

type: EpikProtonateLigands
config:
  arg_string: "TODO"
  mode: #TODO
  input_field: "structure"
  output_field: "protonated_structure"
class schrodinger.seam.yaml.transforms.LigPrep(arg_string: str = '-nt -epik -s 32', input_field: str = 'structure', output_field: str = 'structure')

Bases: PTransform

Perform LigPrep on a collection of molecules.

LigPrep works by expanding tautomeric and ionization states, ring conformations, and stereoisomers consistent with the input information to fully capture the relevant states of the molecule in 3D.

Example usage:

type: LigPrep
config:
  arg_string: "-nt -epik -s 32"
Args:
arg_string: (optional) The ligprep argstring to use. Defaults to "-nt -epik -s 32".
<details>

<summary>LigPrep Args</summary>

<code style=”display:block; white-space:pre-wrap”>
Ionization:
-epik

Use Epik Classic for ionization and tautomerization (Recommended, overrides -i).

-epikx

Use Epik for ionization and tautomerization (Recommended, overrides -i).

-emb, -epik_metal_binding

Run Epik with the metal_binding option so that states appropriate for interactions with metal ions in protein binding pockets are also generated.

-i {0,1,2} Ionization treatment: 0 - do not neutralize or ionize,

1 - neutralize only, 2 - neutralize and ionize (Default: 1). Note that -epik option overrides -i and always implies ionization and tautomerization.

-mg <number> Ionizer will skip over structures containing more than

this number of ionizable groups (Default: 10).

-no_refine

Disable the final refinement in EpikX.

-ph <number> Effective/target pH. (default = 7.0 for Ionizer/Epik

Classic, 7.4 for Epik)

-pht <number> pH tolerance for generated structures.

Tautomerization:
-nt

Disable tautomerizer (Default: enabled).

-t # Run tautomerizer and set the maximum number of

tautomers to generate to # (Default: 8).

-tp # Run tautomerizer and set the minimum probability for

retaining tautomers to # (Default: 0.01).

Stereoisomers:
-ac

Do not respect existing chirality properties and do not respect chiralities from the input geometry. Generate stereoisomers for all chiral centers up to the number permitted (specified using the -s option). This is equivalent to “Generate all combinations” in the Ligand Preparation user interface. Default behavior is to respect only explicitly indicated chiralities.

-g

Respect chiralities from input geometry when generating stereoisomers.

-ns

Do not use the stereoizer.

-s # Generate up to this many (#) stereoisomers per input

structure. (Default: 32).

-strict_v2000_stereo

For SD V2000 input, generate enantiomers if the chiral flag is 0.

Filtering:
-ng

Disable filtering out of exotic structures.

-lp

Pass -addprops to LigFilter.

-lab

Add an internal tracking label to the processed structures.

-lab_filter <options>

Use tracking labels to filter derived structures (this option turns on -lab). Currently supported: ionizer:# - select at most # output structures for each ionizer input structure such that the formal charge on each ionizable groups is minimized.

Force-field based geometry optimization:
-bff {14,16} Force-field to be used for the final geometry

optimization. Default: 14 (OPLS_2005). For S-OPLS specify 16.

-bvac

Set dielectric constant to 1.0 for the final force- field based geometry optimization.

-cgx_noopt

Skip final force-field based geometry optimization.

-no_cm1a

Skip CM1A charge assignment for S-OPLS.

-L <path>

CGX fragment library path. Overrides default location in the appdata directory if specified.

Meta options: (turn on a number of actual options)

-unt : Only run stereoizer and cgx to untangle structures. -adjust <itc> : Adjust to a suitable state. -vary <itc> : Generate different states. -expand <itc> : Aggressively generate different states. -retain <itc> : Retain characteristics of the input structures

(specifying ‘i’ also turns on retention of tautomers).

<itc> specify one or more of:

c chiralities i ionization and neutralization t tautomerization

</code>

</details>

input_field: (optional) The field to use as input. Must be a Structure field.

Defaults to structure.

output_field: (optional) The field to save the ligprepped structure to.

If it’s the same as input_field, the input field will be replaced. Defaults to structure.

__init__(arg_string: str = '-nt -epik -s 32', input_field: str = 'structure', output_field: str = 'structure')
expand(pcoll: PCollection)
class schrodinger.seam.yaml.transforms.SmilesToMol(input_field: str = 'smiles', output_field: str = 'mol')

Bases: PTransform

Convert a collection of SMILES strings to rdkit Mols

Example usage:

type: SmilesToMol
config:
  input_field: "smiles"
  output_field: "mol"
__init__(input_field: str = 'smiles', output_field: str = 'mol')
expand(pcoll: PCollection)
class schrodinger.seam.yaml.transforms.SmilesToStructure(input_field: str = 'smiles', output_field: str = 'structure')

Bases: PTransform

Convert a collection of SMILES strings to schrodinger Structure objects

Example usage:

type: SmilesToStructure
config:
  input_field: "smiles"
  output_field: "structure"
__init__(input_field: str = 'smiles', output_field: str = 'structure')
expand(pcoll: PCollection)
class schrodinger.seam.yaml.transforms.MolToSmiles(input_field: str = 'mol', output_field: str = 'smiles')

Bases: PTransform

Convert a collection of rdkit Mols to SMILES strings

Example usage:

type: MolToSmiles
config:
  input_field: "mol"
  output_field: "smiles"
__init__(input_field: str = 'mol', output_field: str = 'smiles')
expand(pcoll: PCollection)
class schrodinger.seam.yaml.transforms.MolToStructure(input_field: str = 'mol', output_field: str = 'structure')

Bases: PTransform

Convert a collection of rdkit Mols to schrodinger Structure objects

Example usage:

type: MolToStructure
config:
  input_field: "mol"
  output_field: "structure"
__init__(input_field: str = 'mol', output_field: str = 'structure')
expand(pcoll: PCollection)
class schrodinger.seam.yaml.transforms.StructureToMol(input_field: str = 'structure', output_field: str = 'mol')

Bases: PTransform

Convert a collection of schrodinger Structure objects to rdkit Mols

Example usage:

type: StructureToMol
config:
  input_field: "structure"
  output_field: "mol"
__init__(input_field: str = 'structure', output_field: str = 'mol')
expand(pcoll: PCollection)
class schrodinger.seam.yaml.transforms.CreateMols(mol_field: str = 'mol', smiles_field: str = 'smiles', elements: Iterable[Any] = None)

Bases: PTransform

Create a collection of rdkit Mols from a collection of SMILES strings or dictionaries containing SMILES strings.

Example usage:

type: CreateMols
config:
  mol_field: "mol"
  elements:
  - "CC(=O)C1=CC=C(C=C1)C(=O)O"
  - "Cn1cnc2c1c(=O)n(C)c(=O)n2C"
  - "CC(C)[C@H]1CCC(C)CC1O"

or

type: CreateMols
config:
  smiles_field: "smiles"
  mol_field: "mol"
  elements:
    - smiles: "CC(=O)C1=CC=C(C=C1)C(=O)O"
      name: "Aspirin"
    - smiles: "Cn1cnc2c1c(=O)n(C)c(=O)n2C"
      name: "Caffeine"
__init__(mol_field: str = 'mol', smiles_field: str = 'smiles', elements: Iterable[Any] = None)
expand(pbegin: PBegin)
class schrodinger.seam.yaml.transforms.CreateStructures(structure_field: str = 'structure', smiles_field: str = 'smiles', elements: Iterable[Any] = None)

Bases: PTransform

Create a collection of schrodinger Structure objects from a collection of SMILES strings or dictionaries containing SMILES strings.

Example usage:

type: CreateStructures
config:
  structure_field: "structure"
  elements:
  - "CC(=O)C1=CC=C(C=C1)C(=O)O"
  - "Cn1cnc2c1c(=O)n(C)c(=O)n2C"
  - "CC(C)[C@H]1CCC(C)CC1O"

or

type: CreateStructures
config:
  smiles_field: "smiles"
  structure_field: "structure"
  elements:
    - smiles: "CC(=O)C1=CC=C(C=C1)C(=O)O"
      name: "Aspirin"
    - smiles: "Cn1cnc2c1c(=O)n(C)c(=O)n2C"
      name: "Caffeine"
__init__(structure_field: str = 'structure', smiles_field: str = 'smiles', elements: Iterable[Any] = None)
expand(pbegin: PBegin)
class schrodinger.seam.yaml.transforms.ReadStructuresFromFile(input_file: str)

Bases: PTransform

Read a collection of schrodinger Structure objects from a file (or files).

Example usage:

type: ReadStructuresFromFile
config:
  input_file: "ligands.maegz"
__init__(input_file: str)
expand(pbegin: PBegin)
class schrodinger.seam.yaml.transforms.WriteStructuresToFile(output_file: str)

Bases: PTransform

Write a collection of schrodinger Structure objects to a file.

The transform expects input pcollection to contain schemad rows with field named structure containing schrodinger.Structure objects.

Example usage:

type: WriteStructuresToFile
config:
  output_file: "ligands.maegz"
__init__(output_file: str)
expand(pcoll: PCollection)
class schrodinger.seam.yaml.transforms.ReadMolsFromFile(input_file: str, silent: bool = False)

Bases: PTransform

Read a collection of rdkit Mols from a file (or files) containing a newline separated list of SMILES strings.

Invalid SMILES strings are skipped. A warning is printed if silent is set to False.

Example usage:

type: ReadMolsFromFile
config:
  input_file: "ligands.smi"
__init__(input_file: str, silent: bool = False)
expand(pbegin: PBegin)
class schrodinger.seam.yaml.transforms.WriteMolsToFile(output_file: str)

Bases: PTransform

Write a collection of rdkit Mols to a file.

The transform expects input pcollection to contain schemad rows with field named mol containing rdkit Mol objects.

Example usage:

type: WriteMolsToFile
config:
  output_file: "ligands.smi"
__init__(output_file: str)
expand(pcoll: PCollection)
class schrodinger.seam.yaml.transforms.PrettyPrintJson(expand: bool = False)

Bases: PTransform

Pretty-print Beam Rows as JSON strings.

The expand configuration option controls the formatting:
  • If expand is True, the JSON output is printed with indentation across multiple lines.

  • If expand is False (default), the JSON output is compact and printed on a single line.

Example usage:

type: PrettyPrintJson
config:
  expand: true
__init__(expand: bool = False)
expand(pcoll: PCollection)
class schrodinger.seam.yaml.transforms.ReadFromPDB(pdb_codes: list[str], preserve_caps: bool = False)

Bases: PTransform

Read a collection of [PDB](https://www.rcsb.org/) structures from a list of PDB codes. Returns a Beam PCollection of Rows with the PDB code and its structure.

Example usage:

type: ReadFromPDB
config:
    pdb_codes:
        - "1A2B"
        - "3C4D"
    preserve_caps: false
__init__(pdb_codes: list[str], preserve_caps: bool = False)
expand(pbegin: PBegin)