Align ligands.
Example usage
type: AlignLigands
config:
arg_string: "TODO"
method_type: FLEX/TUG/DEFAULT
input_field: "structure"
output_field: "aligned_structure"
? (Optional)type: AlignLigands
input: ...
config:
label: label
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"
mol_field string
smiles_field string
elements Array[?]
type: CreateMols
config:
mol_field: "mol_field"
smiles_field: "smiles_field"
elements:
- element
- element
- ...
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"
structure_field string
smiles_field string
elements Array[?]
type: CreateStructures
config:
structure_field: "structure_field"
smiles_field: "smiles_field"
elements:
- element
- element
- ...
Create Structure objects from a list of SMILES strings.
This is a source transform that creates structures from SMILES.
Example usage in YAML
pipeline:
- type: CreateStructuresFromSmiles
config:
elements:
- "c1ccccc1"
- "CCO"
:param elements: List of SMILES strings to convert to structures.
Array[string]type: CreateStructuresFromSmiles
config:
elements:
- "element"
- "element"
- ...
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"
? (Optional)type: EpikClassicProtonateLigands
input: ...
config:
label: label
Enumerate protonation states of ligands using Epik.
Example usage
type: EpikProtonateLigands
config:
arg_string: "--query -lowest_pka 1"
input_field: "structure"
arg_string string
input_field string
type: EpikProtonateLigands
input: ...
config:
arg_string: "arg_string"
input_field: "input_field"
Flex align ligands.
Example usage
type: FlexAlignLigands
config:
arg_string: "TODO"
input_field: "structure"
output_field: "aligned_structure"
? (Optional)type: FlexAlignLigands
input: ...
config:
label: label
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
grid_file string
reference_ligand_file string
glide_in_file string
structure_field string
poses_per_lig int64
type: GlideDock
input: ...
config:
grid_file: "grid_file"
reference_ligand_file: "reference_ligand_file"
glide_in_file: "glide_in_file"
structure_field: "structure_field"
poses_per_lig: poses_per_lig
A PTransform that filters molecules based on LigFilter criteria.
This is a wrapper transform that uses RunLigFilter internally and returns only the structures that pass the filter.
Example usage with standard args
>>> from schrodinger import adapter
>>> st1 = adapter.to_structure('c1ccccc1')
>>> st1.title = "benzene_fail"
>>> st2 = adapter.to_structure('CCO')
>>> st2.title = "ethanol_pass"
>>> with beam.Pipeline() as p:
... filtered_structures = (p
... | beam.Create([st1, st2])
... | FilterLigands(criteria=['Num_heavy_atoms==3'])
... | beam.Map(lambda st: st.title)
... | beam.LogElements())
ethanol_pass
Example usage with legacy arg string
>>> from schrodinger import adapter
>>> st1 = adapter.to_structure('c1ccccc1')
>>> st1.title = "benzene_pass"
>>> st2 = adapter.to_structure('CCO')
>>> st2.title = "ethanol_fail"
>>> with beam.Pipeline() as p:
... filtered_structures = (p
... | beam.Create([st1, st2])
... | FilterLigands(legacy_arg_string='-e Num_heavy_atoms>3')
... | beam.Map(lambda st: st.title)
... | beam.LogElements())
Filtering criteria:
Num_heavy_atoms>3
benzene_pass
:param match_any: If True, matches any of the criteria instead of all. :param invert_criteria: If True, inverts the filter (removes matching structures). :param criteria: A list of compiled LigFilter criteria. :param add_props: If True, adds properties to structures (not currently supported). :param legacy_arg_string: Legacy CLI argument string (mutually exclusive with other fields).
? (Optional)type: LigFilter
input: ...
config:
kwargs: kwargs
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"
arg_string string : (optional) The ligprep argstring to use. Defaults to "-nt -epik -s 32".
LigPrep Args
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
input_field string : (optional) The field to use as input. Must be a Structure field.
Defaults to structure.
output_field string : (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.
type: LigPrep
input: ...
config:
arg_string: "arg_string"
input_field: "input_field"
output_field: "output_field"
Convert a collection of rdkit Mols to SMILES strings
Example usage
type: MolToSmiles
config:
input_field: "mol"
output_field: "smiles"
input_field string
output_field string
type: MolToSmiles
input: ...
config:
input_field: "input_field"
output_field: "output_field"
Convert a collection of rdkit Mols to schrodinger Structure objects
Example usage
type: MolToStructure
config:
input_field: "mol"
output_field: "structure"
input_field string
output_field string
type: MolToStructure
input: ...
config:
input_field: "input_field"
output_field: "output_field"
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: PrettyPrint
config:
expand: true
booleantype: PrettyPrint
input: ...
config:
expand: true|false
Perform QikProp.
Example usage
type: QikProp
config:
arg_string: "TODO"
input_field: "structure"
string : (optional) The qikprop argstring to use.type: QikProp
input: ...
config:
arg_string: "arg_string"
Read Structure objects from a file.
This is a source transform that reads structures from a file.
Example usage in YAML
pipeline:
- type: ReadFileToStructures
config:
input_file: "ligands.maegz"
:param input_file: Path to the structure file to read.
stringtype: ReadFileToStructures
config:
input_file: "input_file"
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"
input_file string
silent boolean
type: ReadMolsFromFile
config:
input_file: "input_file"
silent: true|false
Read a collection of schrodinger Structure objects from a file (or files).
Example usage
type: ReadStructuresFromFile
config:
input_file: "ligands.maegz"
stringtype: ReadStructuresFromFile
config:
input_file: "input_file"
Convert a collection of SMILES strings to rdkit Mols
Example usage
type: SmilesToMol
config:
input_field: "smiles"
output_field: "mol"
input_field string
output_field string
type: SmilesToMol
input: ...
config:
input_field: "input_field"
output_field: "output_field"
Convert a collection of SMILES strings to schrodinger Structure objects
Example usage
type: SmilesToStructure
config:
input_field: "smiles"
output_field: "structure"
input_field string
output_field string
type: SmilesToStructure
input: ...
config:
input_field: "input_field"
output_field: "output_field"
Convert a collection of schrodinger Structure objects to rdkit Mols
Example usage
type: StructureToMol
config:
input_field: "structure"
output_field: "mol"
input_field string
output_field string
type: StructureToMol
input: ...
config:
input_field: "input_field"
output_field: "output_field"
Convert Structure objects to Beam Rows.
This transform wraps each Structure in a Row with a 'structure' field, enabling use of Row-based transforms like MapToFields.
Example usage in YAML
pipeline:
- type: CreateStructuresFromSmiles
config:
elements:
- "c1ccccc1"
- type: LigFilter
config:
criteria: ["Num_heavy_atoms > 3"]
- type: StructureToRow
- type: MapToFields
config:
fields:
title:
callable: "lambda row: row.structure.title"
? (Optional)type: StructureToRow
input: ...
config:
label: label
Tug align ligands.
Example usage
type: TugAlignLigands
config:
arg_string: "--nconfs 5 --max_tries 20000"
reference_file: "reference.maegz"
receptor_file: "receptor.maegz"
input_field: "structure"
reference_file string
receptor_file string
arg_string string
input_field string
type: TugAlignLigands
input: ...
config:
reference_file: "reference_file"
receptor_file: "receptor_file"
arg_string: "arg_string"
input_field: "input_field"
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"
stringtype: WriteMolsToFile
input: ...
config:
output_file: "output_file"
Write Structure objects to a file.
This is a sink transform that writes structures to a file. It passes through the input structures unchanged for chaining.
Example usage in YAML
pipeline:
- type: ReadFileToStructures
config:
input_file: "ligands.maegz"
- type: LigFilter
config:
criteria: ["Num_heavy_atoms > 5"]
- type: WriteStructures
config:
output_file: "filtered.maegz"
:param output_file: Path to the output structure file.
stringtype: WriteStructures
input: ...
config:
output_file: "output_file"
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"
stringtype: WriteStructuresToFile
input: ...
config:
output_file: "output_file"
Read a collection of molecules from the Chembl database.
Returns a Beam PCollection of Rows with mol and chembl_id fields.
int64 (Optional) : (optional) Specifies the maximum number of molecules to
fetch from Chembl. If not provided, all available molecules will
be fetched.type: ReadFromChembl
config:
sample_size: sample_size
Read a collection of PDB 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
pdb_codes Array[string]
preserve_caps boolean
type: ReadFromPDB
config:
pdb_codes:
- "pdb_codes"
- "pdb_codes"
- ...
preserve_caps: true|false
? (Optional)type: WriteToRowSink
input: ...
config:
label: label
? (Optional)type: ReadFromRowSource
config:
label: label