schrodinger.glide module

This module provides Python wrappers to the Glide backend C++ library, as well as some helper functions to make use of the library more Pythonic.

class schrodinger.glide.AtomPhob

schrodinger::glide::AtomPhob Phobic atom structure.

__init__(*args, **kwargs)
atom_id

0-based index of ligand atom.

atom_score

Product of angular and radial score.

class schrodinger.glide.Config(glide_job=None)

Glide job configuration; holds the values of all the keywords from the Glide input file (.in), and default values for unspecified keywords.

This class has a generic get() method that works for all types, but only for official keywords. For unofficial keywords, use the type-specific methods inherited from the parent class (getInt, getDouble, getString, getBool, getIntArray, getDoubleArray, getStringArray, getBoolArray), which also take an optional default value as a second argument (use of the second argument is strongly encouraged unless you can be certain that the keyword will be present in the input config).

__init__(glide_job=None)
Parameters:

glide_job (Union[schrodinger.application.glide.glide.GlideJob, dict,str,None]) – SIF input filename, keyword dict, GlideJob object, or None, where None means use default settings for docking.

Raises:

ValueError – job uses unsupported features

get(keyword: str)

Return the value of an official keyword (i.e., one listed in mmim_keywords.yaml).

Parameters:

keyword – keyword name

Return type:

Union[int, float, str, bool, list]

Throw:

KeyError if keyword is unknown. Note that this is unlike dict.get!

getUpdated(additional_keywords: dict)

Return a new Config object with the keywords updated according to the input dictionary. Note that this method does not validate the input keywords for potential keyword conflicts or unsupported features.

Parameters:

additional_keywords (Dict[str, Union[int, float, str, bool, list]]) – dictionary of keyword-value pairs

Return type:

Config

getInt(*args)
getBool(*args)
getDouble(*args)
getString(*args)
getIntArray(*args)
getBoolArray(*args)
getDoubleArray(*args)
getStringArray(*args)
getType(keyword)
class schrodinger.glide.Conformer

schrodinger::glide::Conformer A Conformer encodes the information needed to create the full XYZ coordinates of all atoms starting from a ConformerTemplate and a list of dihedral angles for the rotatable bonds. Each Conformer object actually represents a family of rotamers (conformers differing only in the state of the peripheral rotatable bonds); to get the different rotamer states associated with each peripheral bond, see getRotamers().

__init__(*args, **kwargs)
adjustTorsion(self, idx, value) Conformer

Create a new conformer that is a copy of this one, except for a change to one torsion.

calcScore(self, calc)

Calculate the score and store it in the Conformer object.

getDiameterAtomIndices(self) std::pair< int,int >

Get the indices of the two core atoms that are furthest apart.

getEnergy(self) double

Model energy based on adding up the local minima from each rotatable bond; used during confgen to discard high-energy conformers.

getId(self) int

Unique ID for this conformer.

getLigand(self) Ligand

Return a reference to the ligand on which the conformer was based.

getRotamerAngles(self) _TplDoubleListList

For each peripheral rotatable bond, the optimized minima in radians. NOTE: the angles are relative to the Conformer, not the ConformerTemplate.

getRotamerStructures(self) std::vector< schrodinger::Structure,std::allocator< schrodinger::Structure > >

Get the rotamers for this conformer as Structure objects. Unlike getRotamers(), this is a flat list instead of one list per rotamer group; also, duplicate occurrences of the parent Conformer are omitted. (The first state of each RotamerGroup is the parent Conformer, but it would be repetitive to have that in a flat list.)

getRotamers(self, std) _TplRotamerGroupList
getRotamers(self, std_conf_xyz) _TplRotamerGroupList

Return the rotamer group information for each peripheral bond. This includes XYZ coordinates for the peripheral atoms in each rotamer state, based on the coordinates from std_conf.

getScore(self) double

Score used to determine which conformers to keep.

getStandardOrientation(self) schrodinger::Structure
getStandardOrientation(self, xyz) None

Overload 1: Create a new Structure with the coordinates of this conformer in the standard orientation, meaning that the ligand center is at the origin and the ligand diameter is along the Z axis.


Overload 2: An overload of getStandardOrientation() that modifies the provided xyz array, for when speed is important and a Structure is not needed.

getStructure(self) schrodinger::Structure

Create a new Structure with the coordinates of this conformer.

getTemplate(self) std::shared_ptr< schrodinger::glide::ConformerTemplate >

Template used to create the conformer.

getTorsions(self) std::vector< double,std::allocator< double > >

Get a copy of the values of the dihedral angles for the rotatable bonds.

class schrodinger.glide.ConformerEnsemble

schrodinger::glide::ConformerEnsemble A ConformerEnsemble holds the overall output of the conformational search. It owns both the templates and the conformers.

__init__(*args, **kwargs)
getConformerStructures(self) std::vector< schrodinger::Structure,std::allocator< schrodinger::Structure > >

Return a vector of all conformer structures

getConformers(self) _TplConformerList

Return a vector to the conformer shared pointers constituting the ensemble.

getLigand(self) std::shared_ptr< schrodinger::glide::Ligand const >

Ligand used to construct the ensemble.

getRotamerStructures(self) std::vector< schrodinger::Structure,std::allocator< schrodinger::Structure > >

Return a vector of all conformers rotamer structures

getTemplateStructures(self) std::vector< schrodinger::Structure,std::allocator< schrodinger::Structure > >

Return a vector of all conformers template structures

getTemplates(self) _TplConformerTemplateList

Return a reference to the conformer templates.

static makeSingleConformer(lig, config) std::shared_ptr< schrodinger::glide::ConformerEnsemble const >

Generate an ensemble of size 1, where the only conformer has the ligand input structure. Used for rigid docking.

static readEnsemble(filename, lig, config) std::shared_ptr< schrodinger::glide::ConformerEnsemble const >

Read a JSON file containing a serialized ConformerEnsemble.

static runConfgen()

schrodinger::glide::ConformerEnsemble::runConfgen(lig, config) -> std::shared_ptr< schrodinger::glide::ConformerEnsemble const > runConfgen(lig, config, constraints) -> std::shared_ptr< schrodinger::glide::ConformerEnsemble const >

Generate the conformers for a ligand. This is a compute-intensive call. Requires docking license.

static runConfgenFromTemplates(lig, templates, config, constraints) std::shared_ptr< schrodinger::glide::ConformerEnsemble const >

Like runConfgen(), but uses the provided templates and bypasses the usual ring sampling. Requires docking license.

class schrodinger.glide.ConformerTemplate

schrodinger::glide::ConformerTemplate A ConformerTemplate is the starting point for conformational sampling of rotatable bonds. It is the outcome of “non-rotatable-bond sampling”, such as ring sampling, nitrogen inversions, enhanced sampling perturbations, or core constraint snapping.

ConformerTemplates have full XYZ coordinates for all atoms, unlike Conformer which only needs to keep track of dihedral values for rotatable bonds.

__init__(*args, **kwargs)
calculateForceFieldEnergy(self, torsions, grad=None) double

Compute the full intramolecular energy using the OPLS force field. This is slower than calculateInternalEnergy(), but also more accurate.

calculateInternalEnergy(self, torsions, grad=None) double

Compute the “internal energy”, as defined by Glide, for a conformer. Adds up the contribution from each rotatable bond based on the precomputed torsion potentials held by the conformer template, and also adds the contact penalties.

calculateTorsionEnergy(self, torsions, grad=None) double

Calculate the torsion energy of a conformer by adding up the contribution from each rotatable bond, interpolating in the table of energies for the template.

getCentralAtoms(self) boost::dynamic_bitset< > const &

Flags central atoms (atoms that are not moved by any peripheral bond). These used to be called “core atoms”, but were renamed to avoid ambiguity with the CORE_ATOMS keyword use for core constraints and RMSD measurement.

getCentralInteractingAtomIndices(self) std::vector< int,std::allocator< int > >

Atom indices of the central atoms that can form hydrogen bonds or coordinate with metals.

getCoreRestraintIndex(self) std::optional< int >

If using core constraints, which core match produced this template.

getCoreRotbondIndices(self) std::vector< int,std::allocator< int > >

Return the indices of the core rotatable bonds (for lookup into the rotatable_bonds array).

getEnergies(self) _TplDoubleListList

Approximate energy, in kcal/mol, tabulated for each rotatable bond.

getGroundStateEnergy(self) double

Return the torsional energy, in kcal/mol, of the conformer for which every rotatable bond is at its global minimum.

getId(self) int

Unique template identifier (confgen uses sequential numbering from 1).

getLigand(self) std::shared_ptr< schrodinger::glide::Ligand const >

Ligand for which this template applies.

getMinima(self) _TplMinimaList

Minima for each rotatable bond obtained by scanning the torsional angle of the rotatable bond using a simplified energy function. The minima are sorted by increasing energy.

getNumPeripheralRotbonds(self) int

Return the number of peripheral rotatable bonds.

getRingEnergy(self) double

Return the energy of the template structure, in kcal/mol, as reported by the underlying ring sampling library (e.g., mmconf or fast3d).

getRotamerGroupIndices(self) std::vector< int,std::allocator< int > >

For each atom (by 1-based index), the index of the rotamer group where it belongs. For central (i.e., non-rotamer) atoms, -1.

getRotatableBonds(self) std::shared_ptr< schrodinger::glide::RotatableBonds const >

A copy of the Ligand::rotatable_bonds, possibly modified due to core constraints.

getStructure(self) schrodinger::Structure

Return a new Structure with the coordinates of this template.

getXYZ(self) std::vector< Eigen::Vector3d,std::allocator< Eigen::Vector3d > > const &

Coordinates of all ligand atoms.

class schrodinger.glide.ConstraintWithAtom
schrodinger::glide::ConstraintWithAtom

Used by RefinedPose to keep track of which atom should be used during minimization, for computing the restraining potential to try to satisfy a given Constraint.

__init__(*args, **kwargs)
atom_idx
constraint
class schrodinger.glide.CoreDefinition

schrodinger::glide::CoreDefinition Core constraints configuration for the current ligand.

__init__(*args, **kwargs)
addProperties(self, st, pose)

Add core-related properties to the structure, such as r_i_glide_rmsd.

getBestMatchAndRmsd(self, xyz) std::pair< int,double >

Like measureRmsd, but return the best match index as well as the RMSD.

getCoreAtoms(self) std::vector< int,std::allocator< int > > const &

Return the indices of the core atoms in the reference ligand.

getCoreIndices(self) std::vector< int,std::allocator< int > > const &

Get an array paralleling CORE_ATOMS, where each item is the zero-based core index (only possible values are 0 and 1, because we only support up to two cores) of the corresponding core atom. For example, if CORE_ATOMS = {1,2,3,4,5,11,12,13,14,15,16}, for a two-core system, the return value might be {0,0,0,0,0,1,1,1,1,1,1}.

getCoreRestraintIndex(self, pose) std::optional< int >

Return the index of the core constraint match applicable to the pose. When using tight core constraints, the match was determined during confgen when setting up the ConformerTemplate; otherwise the index that results in the lowest RMSD is used.

getCoreSmarts(self) std::string

Get the SMARTS string used for the core of the current ligand. Will be empty for “CORE_DEFINITION atomlist” or when there was no match. (In which case the core is not in a valid state for measuring RMSD.)

getMatches(self) _TplIntListList

SMARTS matches, but selected and reordered to correspond to CORE_ATOMS.

getNumCores(self) int

Return the number of cores, meaning contiguous subgraphs consisting only of core atoms. Only 1 or 2 cores are supported; a different number results in an exception in the constructor.

getRefCoords(self) std::vector< Eigen::Vector3d,std::allocator< Eigen::Vector3d > > const &

XYZ coordinates for each of the CORE_ATOMS.

getTolerance(self) double

Core RMSD tolerance (from CORE_POS_MAX_RMSD keyword).

hasMatch(self) bool

Return true if the object is in a valid state for measuring RMSD or applying core constraints.

measureRmsd(self, xyz) double
measureRmsd(self, pose) double
measureRmsd(self, pose) double
measureRmsd(self, conf) double

Return the RMSD of the best match held by the CoreDefinition.

class schrodinger.glide.DataFiles

schrodinger::glide::DataFiles A DataFiles object establishes a context that is valid for the duration of a Glide “job” (not necessarily a job in the job control sense, though). It contains the data from data files that only need to be read once per job. The files are read lazily and cached. Data files are normally read from the data directory in the installation, but may be overridden by the user by placing a file with the right name in the CWD or ~/.schrodinger/glide.

__init__(*args, **kwargs)
getDirections(self, ndir) std::vector< Eigen::Vector3d,std::allocator< Eigen::Vector3d > > const &

Get a geodesic polyhedron of unit vectors to use as initial directions for docking with at least ndir directions. Comes from the grid.pts data file.

class schrodinger.glide.Docker

schrodinger::glide::Docker A Docker keeps track of the state needed during the rough docking stage. The class is centered on a capped priority queue that keeps the best MAXKEEP poses seen so far, and it also aggregates the data needed by the various docking predictates and the greedy scoring function.

An instance of this class can be reused for docking different conformer ensembles (e.g., different ligands) because it doesn’t keep any ligand state.

__init__(*args, **kwargs)
dockConformerEnsemble(self, confs, ligandConstraintData) std::shared_ptr< schrodinger::glide::RefinedPoseEnsemble >

Dock and refine all the conformers in an ensemble. Wraps roughDockConformerEnsemble and refine_rough_poses.

Raises:

SkipLigand if no poses were kept.

roughDockConformerEnsemble(self, confs, ligand_constraint_data) std::shared_ptr< schrodinger::glide::RoughPoseEnsemble >

Dock all the conformers in an ensemble. Will return an empty RoughPoseEnsemble if using tight core constraints.

schrodinger.glide.DockingLicense(config=None)

Context manager to check out a docking license, and checking it in on exit. :raise schrodinger.infra.licensing.LicenseCheckoutError: can’t check out

class schrodinger.glide.EnergyComponents

schrodinger::glide::EnergyComponents Breakdown of the energy components computed by get_intermolecular_energy(). The += operator is provided for use by functions that need to accumulate energy components. For example, get_intermolecular_energy() itself accumulates over atoms; other functions might accumulate corrections from different sources.

__init__(*args, **kwargs)
coul
e_xvol
isValid(self) bool
restraint
total(self) double
vdw
class schrodinger.glide.EnergyOptions

schrodinger::glide::EnergyOptions Options controlling the energy evaluation.

__init__(*args, **kwargs)
charge_correction

Charge correction is only used for scoring.

core_restraint_index

If using core constraints, which core match to use.

coul_weight

Scale Coulmb energy by this factor (used by nucleic acid mode)

denscore_gaussian_resolution

Resolution (in Å) of the simulated density that is created to calculate the cross-correlation.

denscore_radius

Consider density points within this distance in Å of each atom when computing denscore.

density_weight

Scale self-density term by this factor (FACEDEN kwd, used by FITDEN)

dielco

Dielectric constant.

hard

Hard potential (true) is used for scoring and for the latter stages of minimization; soft potential (false) is used for initial minimization.

ligand_constraint_data

Per-ligand and per-job constraint data needed to apply restraining potentials. Only used for minimizations.

out_of_box_treatment

What to do in the energy function when an atom is outside the box?

use_electron_density_forces

Use denscore function (typically during PDM only, since it’s expensive)

use_shape_constraints

Use shape constraints typically during PDM only

use_smooth_scaling

Logarithmically scales coloumb and vdw energy (used by peptide mode)

vdw_weight

Scale van der Waals energy by this factor (used by nucleic acid mode)

class schrodinger.glide.FullMinimizer

schrodinger::glide::FullMinimizer Class to do a full minimization of the Cartesian coordinates of each atom in the field of the receptor. Used for post-docking minimization.

__init__(*args, **kwargs)
minimize(self, pose) MinimizerResult

Minimize the pose in-place.

class schrodinger.glide.GridArchive

schrodinger::glide::GridArchive A Grid archive bundles together all of the grid information and has high-level functions for generating the grids and reading or writing grid files.

__init__(*args, **kwargs)
cloneWithNewCoords(self, new_coords, datafiles=schrodinger::glide::DataFiles()) std::shared_ptr< schrodinger::glide::GridArchive const >

Create a new GridArchive by going through the whole gridgen workflow, reusing the configuration and receptor from the original call to runGridgen(), but with new receptor coordinates. The use case is when only a relatively small fraction of atoms have moved; in one test where 3% out of 5K atoms moved, this was almost 4 times faster than runGridgen(). Requires gridgen license.

getInfo(self) std::string

Get a human-readable description of the gridgen output.

getNumDirections(self) size_t
getReceptor(self) Receptor
getStructure(self) schrodinger::Structure

Get a copy of the receptor structure.

getWaterStructure(self) schrodinger::Structure

Get a Structure where each water in the box is represented by a helium atom with its display radius set to the water sphere radius. Atoms have the i_glide_water_layer property set to the value of Water::layer.

hasConstraints(self) bool
hasXvolGrids(self) bool
isEqual(self, archive, tolerance=1e-6) bool

Function to compare 2 archives.

static readArchive(gridfile) std::shared_ptr< schrodinger::glide::GridArchive const >

Create a new GridArchive by reading existing grid files.

Raises:

InputError

static runGridgen(recep, config, datafiles=schrodinger::glide::DataFiles()) std::shared_ptr< schrodinger::glide::GridArchive const >

Create a new GridArchive by going through the whole gridgen workflow. Requires gridgen license.

write(self, gridpath) std::vector< std::string,std::allocator< std::string > >

Convenience function that dispatches to writeZip() when the filename extension is .zip, or to writeMembers() otherwise.

writeMembers(self, basepath) std::vector< std::string,std::allocator< std::string > >

Write the dozen or so uncompressed grid files. Returns the filenames.

writeZip(self, gridpath) std::string

Write the .zip grid archive. Returns the filename.

schrodinger.glide.GridgenLicense()

Context manager to check in a docking license, and checking it in on exit. :raise schrodinger.infra.licensing.LicenseCheckoutError: can’t check out

class schrodinger.glide.GroupPhobscorePacking

schrodinger::glide::GroupPhobscorePacking Group Phobic score packing. Contains all the atoms in the group, the residues they interact with, and the group score.

__init__(*args, **kwargs)
atoms_phob
group_score
residue_nums
class schrodinger.glide.HBond

schrodinger::glide::HBond An intermolecular hydrogen bond defined by ligand and receptor heavy atoms, its geometry, charge type, geometry_score [0.0, 1.0], and a weighed score which also depends on formal charges.

__init__(*args, **kwargs)
angle

D-H…A angle in degrees.

donor_atom

The donor atom may belong either to the pose or the receptor.

geometry_score

A score in the range [0.0, 1.0] based on how close to an “ideal” hydrogen bond the distance and angle are.

getLigDonorOrAcceptor(self) PoseAtom

Return a reference to the ligand atom that is directly involved in the hydrogen bond, whether it is a donor or an acceptor.

getRecepDonorOrAcceptor(self) ReceptorAtom

Return a reference to the receptor atom that is directly involved in the hydrogen bond, whether it is a donor or an acceptor.

lig_atom

Ligand heavy atom; it may be the acceptor or the donor’s parent, depending on the “direction” of the hydrogen bond.

recep_atom

Acceptor heavy atom; it may be the acceptor or the donor’s parent, depending on the “direction” of the hydrogen bond.

type
weighed_score

The geometry_score scaled by a factor that depends on type and charges; see weigh_score().

class schrodinger.glide.HBondData

schrodinger::glide::HBondData Contains the data for a hbond score. The atoms are the ones directly involved in the bond (can be hydrogens).

__init__(*args, **kwargs)
ligand_atom

1-base index

receptor_atom
score
class schrodinger.glide.HBondType
NEUTRAL_NEUTRAL = 0
NEUTRAL_CHARGED = 1
CHARGED_CHARGED = 2
class schrodinger.glide.HBonds

schrodinger::glide::HBonds Hydrogen bond scoring information: holds the list of H-bonds as well as the aggregate score contributions.

__init__(*args, **kwargs)
charged_charged

Total hydrogen bond scoring descriptor for charged-charged hydrogen bonds.

hbonds
neutral_charged
neutral_neutral
class schrodinger.glide.Hybridization
FreeAtom = 0
sp1 = 1
sp2 = 2
sp3 = 3
exception schrodinger.glide.InputError

An input file or configuration setting is invalid and the job cannot proceed.

class schrodinger.glide.IntermolecularAtomPair

schrodinger::glide::IntermolecularAtomPair Contains the data for a special hbond pair.

__init__(*args, **kwargs)
ligand_atom

1-base index

receptor_atom
class schrodinger.glide.JobConstraintData

schrodinger::glide::JobConstraintData Constraint information that is dependent on the docking job configuration but is otherwise constant throughout a job.

__init__(*args, **kwargs)
getConfig(self) Config

Return the Config that was used when creating this object.

getCoreAtoms(self) std::vector< int,std::allocator< int > > const &

Gets core atoms with 1-based indexing.

getIonicRadii(self) std::vector< double,std::allocator< double > > const &

Gets element ionic radii indexed by atomic number.

getReferenceLigand(self) std::optional< schrodinger::Structure >

Get a copy of the reference ligand, if any.

getShapeReferenceLigand(self) std::optional< schrodinger::Structure >

Get a copy of the current shape reference ligand if it is set. If not, fall back on the reference ligand that was set using setReferenceLigand() or the REF_LIGAND_FILE keyword, if any.

setReferenceLigand(self, st)

Set the reference ligand. Normally this is unnecessary since the constructor already does this based on the job configuration, but some workflows may want to change reference ligands in the middle of a job. If CORE_ATOMS is empty, CORE_DEFINITION is “smarts”, and the SMARTS pattern has a single match to the reference ligand (not counting permutations), the match is used to determine the default CORE_ATOMS.

setShapeReferenceLigand(self, st)

Sets the shape reference ligand. Is called during JobConstraintData creation.

class schrodinger.glide.LicenseManager

schrodinger::glide::LicenseManager Weak singleton class that keeps tracks of license checkouts and checkins. By “weak”, we mean that only one instance can exist at a time, but if no one is holding a shared pointer to the instance, the instance gets destroyed and the licenses are checked in. If the instance() function gets called after that, a new instance is created.

Licenses can also be checked in explicitly if desired.

A typical pattern is for a high-level function (e.g., main()) to get an instance and use it to check out licenses; lower level functions get the instance just to confirm that the licenses have been checked out.

__init__(*args, **kwargs)
checkInLicenses(self)

Check in all currently checked out licenses.

checkOutDocking(self, config=schrodinger::glide::Config(), auto_retry=True)

Check out the GLIDE_MAIN and GLIDE_SP_DOCKING licenses needed for scoring or docking jobs. If a license is already checked out, it won’t be checked out again.

NOTE: this is not an atomic transaction! If the GLIDE_MAIN checkout succeeds but the GLIDE_SP_DOCKING checkout fails, the former remains checked out.

Depending on the Config and various environment variables, alternative licenses may be checked out. This is used when Glide runs as part of a workflow such as IFD, ePharmacophors, or PrimeX.

If the checkout attempt fails because the license is temporarily unavailable, the licensing infrastructure retries automatically for a while. These retries can be disabled by setting auto_retry=false.

Raises:

schrodinger::licensing::LicenseCheckoutError on failure.

checkOutGridgen(self)

Check out the GLIDE_MAIN license needed for grid generation. If the license is already checked out, this is a no-op. :raises: schrodinger::licensing::LicenseCheckoutError on failure.

hasDocking(self) bool

Are the licenses needed for docking checked out?

hasFitden(self) bool

Are the licenses needed for FITDEN checked out?

hasGridgen(self) bool

Are the licenses needed for gridgen checked out?

static instance()
schrodinger::glide::LicenseManager::instance() -> std::shared_ptr< schrodinger::glide::LicenseManager >

Return a shared pointer to the existing instance, or create one if needed.

class schrodinger.glide.Ligand

schrodinger::glide::Ligand A Ligand represents the input structure for a docking job, and unlike Pose, it is immutable. It extends GlideStructure by holding relevant information about the ligand that is independent of the atom coordinates (i.e., the pose). For example, rings, rotatable bonds, and other graph-related data structures which may be reused by many different poses of the same ligand.

__init__(*args, **kwargs)
static fromSmiles(smiles, config=schrodinger::glide::Config(), datafiles=schrodinger::glide::DataFiles()) std::shared_ptr< schrodinger::glide::Ligand const >

Create a ligand from SMILES (for tests that don’t require coordinates).)

static fromStructure()
schrodinger::glide::Ligand::fromStructure(st, config=schrodinger::glide::Config(), datafiles=schrodinger::glide::DataFiles()) -> std::shared_ptr< schrodinger::glide::Ligand const >

Create a ligand from a Structure.

getNumCoreRotbonds(self) int

Return the number of core rotatable bonds.

getNumRotbondsBetween(self, atom1, atom2) int

Return the number of rotatable bonds in the path connecting two atoms. Only paths up to length 9 are considered.

getRotatableBonds(self) _TplRotBondList

Return a copy of the rotatable bonds.

class schrodinger.glide.LigandAtom

schrodinger::glide::LigandAtom Extends GlideAtom by adding ring-related features.

__init__(*args, **kwargs)
getRing(self) Ring

Get the ring system to which the atom belongs, if any.

getRingSystemIndex(self) int

The index of the ring system the atom belongs to. Zero means none.

getSigmaScaled(self) double

Half the Lennard-Jones sigma parameter, after applying user-defined scaling criteria (e.g., LIG_VSCALE, LIG_CCUT keywords) following the “per-type” convention.

class schrodinger.glide.LigandConstraintData

schrodinger::glide::LigandConstraintData Constraint information that is preprocessed for each ligand.

__init__(*args, **kwargs)
addProperties(self, st, pose, score_info)

Add constraint-related properties to the structure.

canRestrainCore(self) bool

Return true if the ligand can and should be subject to core constraints. This depends on the job config but also on whether the ligand had a match to the reference ligand core.

canSnapCore(self) bool

Return true if the ligand can and should be subject to tight core constraints. This depends on the job config but also on whether the ligand had a match to the reference ligand core.

getConfig(self) Config

Gets config.

getCoreDefinition(self) std::shared_ptr< schrodinger::glide::CoreDefinition const >

Return the CoreDefinition that defines core constraints or core RMSD measurements, if any. May be nullptr if the job config does not use a reference ligand.

getIonicRadii(self) std::vector< double,std::allocator< double > > const &

Gets element ionic radii indexed by atomic number.

getJobConstraintData(self) std::shared_ptr< schrodinger::glide::JobConstraintData const >

Return the JobConstraintData that was used to instatiate the LigandConstraintData.

getLigand(self) std::shared_ptr< schrodinger::glide::Ligand const >

Get ligand used to create this object.

getTorsionalConstraints(self) std::shared_ptr< schrodinger::glide::TorsionalRestraintCalculator const >

Get the torsional constraint calculator. May be null.

hasCore(self) bool

Return true if the ligand has a core that can be used for core constraints or for core RMSD measurements.

hasLigandDensity(self) bool
hasReceptorBasedConstraints(self) bool

Return true if the job has receptor-based constraints.

hasReceptorBasedFiltersAndRestraints(self) bool

Return true if the job should apply docking filters and minimization restraints. This means that the job has receptor-based constraints and does not have the GLIDE_CONS_FINALONLY keyword.

hasReferenceShape(self) bool

Return true if the ligand has reference shape defined.

hasShapeConstraints(self) bool

Return true if SHAPE_RESTRAIN is true and the ligand has a reference shape defined.

hasTorsionalConstraints(self) bool

Return true if the ligand has torsional constraints defined.

satisfiesReceptorBasedConstraints(self, pose) bool

Return true if the receptor-based constraints for the job are satisfied by the pose.

class schrodinger.glide.LoggerConfig

schrodinger::glide::LoggerConfig

__init__(*args, **kwargs)
configure(self, config_str)

Parse a logger configuration string and set the config state. Syntax is described at the top of logger.h.

disableCapture(self)

Stop capturing log messages in a string buffer; future messages will go to the default logging stream (std::cout).

enableCapture(self)

Capture future log messages in a string buffer instead of printing them out.

static getCurrentConfig() LoggerConfig

Get a reference to the current global logger configuration.

getMessages(self) std::string

Return the captured messages and clear the message buffer.

setDefaultMain(self, level)

Set the main logging level, but only if it’s not already set; can be overriden for specific functions.

setDefaultNonRecursive(self, name, level)

Set level for a nonrecursive logger, but only if it’s not already set.

setDefaultRecursive(self, name, level)

Set level for a recursive logger, but only if it’s not already set.

setMain(self, level)

Set the main logging level; can be overriden for specific functions.

setNonRecursive(self, name, level)

Set level for a nonrecursive logger.

setRecursive(self, name, level)

Set level for a recursive logger.

schrodinger.glide.LoggerContext(levels: Optional[Dict[str, int]] = None, capture: Optional[bool] = None, main_level: Optional[int] = None, default_main_level: Optional[int] = None) ContextManager

Context manager to set default logging levels and capturing for a given scope. Returns the new LoggerConfig, which can be used for further configuration or to fetch the captured messages.

Parameters:
  • levels – dict of {name: level} to set the logging level for specific loggers. If a name has a “+” suffix, the setting will be recursive (apply to the logger’s children).

  • capture – If True, enable capture; if False, disable capture; if None, keep the current capture setting.

  • main_level – change the main logging level, with applies to functions that are not covered by any of the keys in levels.

  • default_main_level – change the default for the main level, but only if the global default level is not already set, for example by the SCHRODINGER_GLIDE_LOG environment variable or by an enclosing LoggerContext.

Yield:

LoggerConfig

class schrodinger.glide.LoggerManager

schrodinger::glide::LoggerManager The logging manager singleton. The manager holds a stack of LoggerConfig, where each config defines what to log and where. The configuration states can be saved and restored by calling saveConfig() and restoreConfig().

__init__(*args, **kwargs)
getConfig(self) LoggerConfig

Return the current logger configuration state.

static instance() std::shared_ptr< schrodinger::glide::LoggerManager >

Get the logger manager singleton.

restoreConfig(self)

Restore the last saved configuration. Does nothing if there are no saved configuration.

saveConfig(self) LoggerConfig

Save the current logger configuration and return a reference to the new configuration, which starts as a copy of the previous one.

class schrodinger.glide.MinimizerResult
schrodinger::glide::MinimizerResult

Result of a energy minimization.

__init__(*args, **kwargs)
energy

Final energy (kcal/mol)

num_evals

Number of energy function evaluations

status

Did the optimization succeed, or why not?

class schrodinger.glide.MinimizerStatus
OK = 0
OutOfBox = 1
Exception = 2
class schrodinger.glide.Minimum

schrodinger::glide::Minimum An angle and its corresponding energy for a local minimum in the torsion energy scan of a rotatable bond.

__init__(*args, **kwargs)
angle

radians

energy

kcal/mol

class schrodinger.glide.OutOfBoxTreatment
strict = 0
restrain = 1
class schrodinger.glide.PhobscoreData

schrodinger::glide::PhobscoreData Phobic score contributions. Contains all the groups that contribute to the phobscore.

__init__(*args, **kwargs)
groups
phobscore
class schrodinger.glide.Placement

schrodinger::glide::Placement The “six degrees of freedom” for a rigid ligand: position and orientation.

__init__(*args, **kwargs)
ijk
phi
psi
theta
xyz

Coordinates of ligand center

class schrodinger.glide.Pose

schrodinger::glide::Pose A Pose is a Ligand that has been docked and optionally scored. It keeps a reference to the Ligand that was used to create it, but has its own coordinates, because unlike Ligands, Poses are generally mutable.

__init__(*args, **kwargs)
computeScore(self, archive, config, datafiles=schrodinger::glide::DataFiles()) std::shared_ptr< schrodinger::glide::ScoreInfo >

Compute the score and return it as a shared pointer.

copy(self) Pose

Get a copy of the pose.

getAtom(self, index) PoseAtom
getAtom(self, index) PoseAtom

Overload 1: Get an atom by index.


Overload 2: Get an atom by index.

getAtomicNumber(self, atom_index) int

Get atomic number by atom index.

getAtoms(self, _from, to) schrodinger::glide::GlideAtomRange< schrodinger::glide::Pose,schrodinger::glide::PoseAtom >
getAtoms(self) schrodinger::glide::GlideAtomRange< schrodinger::glide::Pose,schrodinger::glide::PoseAtom >
getAtoms(self, _from, to) schrodinger::glide::GlideAtomRange< schrodinger::glide::Pose const,schrodinger::glide::PoseAtom const >
getAtoms(self) schrodinger::glide::GlideAtomRange< schrodinger::glide::Pose const,schrodinger::glide::PoseAtom const >

Overload 1: Return a range to iterate over a range of atoms [from, to).


Overload 2: Return a range to iterate over all atoms.


Overload 3: Return a range to iterate over a range of atoms [from, to).


Overload 4: Return a range to iterate over all atoms.

getConformer(self) std::shared_ptr< schrodinger::glide::Conformer const >

Return a pointer to the Conformer upon which this Pose was based. It may be null, for example if the Pose came directly from a Ligand, as is the case in score-in-place jobs.

getInternalEnergy(self) double

Return the confgen model energy relative to the ground-state conformer; this is what goes into the r_i_glide_einternal property. Note that this energy does _not_ change when doing post-docking minimization, and it is nonzero only when the Pose was constructed from a RefinedPose, which comes from a Conformer. In score-in-place jobs, which create a Pose directly from a Ligand, the internal energy is always zero.

getLigand(self) Ligand
getNumAtoms(self) unsigned int
getRefinedPose(self) RefinedPose

Return a non-owning pointer to the RefinedPose used to construct the Pose, if any; otherwise nullptr.

getScoredStructure(self, archive, config, constraints=schrodinger::glide::LigandConstraintData(), datafiles=schrodinger::glide::DataFiles()) schrodinger::Structure

Return a new Structure with its coordinates and properties updated. Computes the score and emodel. If the optional constraints argument is provided, constraint-related properties are added as well.

getStructure(self) schrodinger::Structure

Return a new Structure with the pose coordinates.

getXyzRef(self) std::vector< Eigen::Vector3d,std::allocator< Eigen::Vector3d > > const &
getXyzRef(self) std::vector< Eigen::Vector3d,std::allocator< Eigen::Vector3d > >
class schrodinger.glide.PoseAtom

schrodinger::glide::PoseAtom A PoseAtom is like a LigandAtom but has mutable XYZ coordinates.

__init__(*args, **kwargs)
getNeighbors(self) _TplPoseAtomList
getPose(self) Pose
getXyzRef(self) Eigen::Vector3d const &
getXyzRef(self) Eigen::Vector3d
isSpecialHydroxyl(self) bool
class schrodinger.glide.Ptype
DSC_PHOBHYD = 0
DSC_PHOBHVY = 1
DSC_DONOR = 2
DSC_ACCEP = 3
DSC_POLAR = 4
DSC_METAL = 5
DSC_MAX_BASE = 5
DSC_HALO_DONOR = 12
DSC_HALO_ACCEP = 13
DSC_DEFAULT = 0
class schrodinger.glide.Receptor

schrodinger::glide::Receptor A Receptor extends GlideStructure by adding receptor-specific data and functions for reading and writing grid member files holding receptor data (_recep.mae, .csc, .gsc).

__init__(*args, **kwargs)
countMetalsInBox(self, archive) int

Count the metal atoms in the receptor active site

static fromStructure()

schrodinger::glide::Receptor::fromStructure(st, config, datafiles=schrodinger::glide::DataFiles()) -> std::shared_ptr< schrodinger::glide::Receptor const > Construct a Receptor. The config determines things such as force field and movable atoms.

getDistanceCell(self, distance) schrodinger::DistanceCell const &

Return a distance cell for the given distance, creating it if needed NOTE*: this function is recommended for a limited number of the most

commonly used distances, because the distance cells are cached for the life of the Receptor. Memory used for each distance cell is roughly 1 MB per 25 K atoms.

isEqual(self, recep, tolerance) bool
class schrodinger.glide.ReceptorAtom

schrodinger::glide::ReceptorAtom A ReceptorAtom extends GlideAtom by adding receptor-specific functions related to things such as PDB info, residue order, movable atoms, and constraints.

__init__(*args, **kwargs)
getHBondEquivalentAtoms(self) _TplReceptorAtomList

If the atom is an H-bond donor or acceptor, return the list of equivalent atoms, if any, from the same functional group; for example, the other H in an NH2, or the other O in a CO2-.

getIndexResOrder(self) int

The index that the atom would have if the atoms in the structure were sorted in residue order.

getLongSaltBridge(self) int

Return the index of the receptor atom forming a long salt bridge with this atom, or zero if none.

getMungedPdbName(self) std::string

Get the PDB atom name, after applying some Glide-specific conventions.

getMungedResidueName(self) resname_t

Get the PDB residue name, after applying some Glide-specific conventions.

getPDBAtomName(self) std::string
getResidueNum(self) int

Get the PDB residue number.

getShortSaltBridge(self) int

Return the index of the receptor atom forming a short salt bridge with this atom, or zero if none.

isMovable(self) bool

Is this a movable atom from a “flexible hydroxyl” group?

class schrodinger.glide.RefinedPose

schrodinger::glide::RefinedPose A refined pose is the output of docking after refinement, where the ligand center has a particular set of coordinates and has a particular set of torsional angles for each of its rotatable bonds.

__init__(*args, **kwargs)
center_xyz

The coordinates of the ligand center

conf

The conformer

constraint_tuple

If docking used receptor-based constraints, this will be non-empty and map each constraint to the atom that will be used to restrain it during minimization.

emodel

Used for pose selection

euler_angles

The angles defining the ligand orientation

static fromConformer(conf) RefinedPose

Create a RefinedPose so that it will have exactly the same coordinates as the Conformer. The use case is when the ConformerTemplate is already docked, either because it was based on the input structure (for example for a refinement job, or for the SCORE_INPUT_POSE feature), or has been snapped into place for core constraints.

static fromRoughPose(rough_pose) RefinedPose

Create a RefinedPose so that it will have exactly the same coordinates as the Rough Pose. The use case is for debugging scenarios where you want to bypass refinement.

getInternalEnergy(self) double

Compute the confgen model energy relative to the ground-state conformer; this is what goes into the r_i_glide_einternal property.

getLigand(self) Ligand

Return a reference to the ligand on which the pose was based.

getStructure(self) schrodinger::Structure

Return the structure of this pose after applying relative bond rotations, the 3d Euler rotation, and center translation.

minimized_energy

Coul-vdW; used for Emodel

minimum_ensemble_energy

Lowest intermolecular energy in the ensemble of refined poses

posenum

For i_i_glide_posenum property

rot_bonds_torsions

The torsional angles (in radians) for each rotatable bond relative to the torsional angles of the conformer

score

The refined score

class schrodinger.glide.RefinedPoseEnsemble
schrodinger::glide::RefinedPoseEnsemble

A RefinedPoseEnsemble holds the output of refinement and supports minimizing the poses and ranking them by Emodel.

__init__(*args, **kwargs)
assignPosenums(self)

Assign each pose in the ensemble a sequential index starting from 1; this ultimately goes into the i_i_glide_posenum property.

calculateSelfDensity(self, archive, jcd)

Calculate ligand density to replace the pose score. Sorts the poses in the ensemble by the new score. Requires fitden license.

clusterSelection(self, archive, ligand_constraint_data)

Uses a clustering algorithm to select which poses to keep. Modifies the number of poses in the ensemble.

computeEmodels(self, archive, config, datafiles, constraints=schrodinger::glide::LigandConstraintData())

Compute the Emodel for each pose in the ensemble and sort the poses by Emodel. :raises: std::runtime_error if ensemble has not been minimized.

copy(self) RefinedPoseEnsemble

Return a copy of the RefinedPoseEnsemble. The original ensemble is untouched.

copyAndCalculateSelfDensity(self, archive, jcd) RefinedPoseEnsemble

Return a copy of the RefinedPoseEnsemble with ligand densities replacing the pose score. Sorts poses in the ensemble by the new score. The original ensemble is untouched.

copyAndClusterSelection(self, archive, ligand_constraint_data) RefinedPoseEnsemble

Return a copy of the RefinedPoseEnsemble after clustering the poses. The original ensemble is untouched.

copyAndComputeEmodels(self, archive, config, datafiles, constraints=schrodinger::glide::LigandConstraintData()) RefinedPoseEnsemble

Return a copy of the RefinedPoseEnsemble with emodels calculated. The original ensemble is untouched.

copyAndCreateConstraintCopies(self, maxref, ligand_constraint_data) RefinedPoseEnsemble

Return a copy of the RefinedPoseEnsemble constraint copies to the maxref. The original ensemble is untouched.

copyAndFilterByCoreRmsd(self, core) RefinedPoseEnsemble

Return a copy of the RefinedPoseEnsemble filtered by Core RMSD. The original ensemble is untouched.

copyAndMinimizePoses(self, archive, config, ligand_constraint_data) RefinedPoseEnsemble

Return a copy of the RefinedPoseEnsemble with minimized energies. The original ensemble is untouched.

copyAndResampleConformers(self, archive, config, ligand_constraint_data, datafiles) RefinedPoseEnsemble

Return a copy of the RefinedPoseEnsemble resampled conformers. The original ensemble is untouched.

copyAndTruncate(self, new_size) RefinedPoseEnsemble

Return a copy of the RefinedPoseEnsemble truncated to the new size. The original ensemble is untouched.

createConstraintCopies(self, maxref, ligand_constraint_data)

Filter the ensemble by discarding poses that do not come close enough to satisfy the receptor-based constraints, but also create copies of each pose, where each copy gets assigned a different tuple of ligand atoms that can satisfy the constraint. Later during minimization, these atoms will be used for defining the restraining potential that helps ensure that the constraint remains satisfied.

The number of poses to keep will be determined by maxref, but scaled up to try to compensate the loss of pose diversity due to the pose copies.

filterByCoreRmsd(self, core)

Filter the ensemble by discarding poses that do not come close enough to satisfying the core constraints. (The value of CORE_POS_MAX_RMSD is scaled up because the poses have not been minimized yet.) :raises: SkipLigand if not poses passed.

static fromConformerEnsemble(confs) RefinedPoseEnsemble

Create a refined pose ensemble from a ConformerEnsemble.

getMinEnergy(self) double

Return the Coulomb-van der Waals energy of the lowest-energy ensemble member. :raises: std::runtime_error if ensemble has not been minimized.

getPoses(self) _TplRefinedPoseList

Return a reference to all the poses in the ensemble.

getRefinedStructures(self) std::vector< schrodinger::Structure,std::allocator< schrodinger::Structure > >

Return a vector of all refined poses structures.

minimizePoses(self, archive, config, ligand_constraint_data)

Minimize each pose in the ensemble, but don’t score them.

resampleConformers(self, archive, config, ligand_constraint_data, datafiles)

Add a few new poses to the ensemble by going through the post-docking conformational resampling protocol, simply called “sampling” in the user manual.

truncate(self, new_size)

Truncate the ensemble by discarding the “worst” poses. If the ensemble has not been minimized and scored yet, the poses are sorted by refinement score; otherwise the poses are sorted by Emodel. (Does nothing if new_size is not smaller than the current size.)

class schrodinger.glide.Ring
schrodinger::glide::Ring

A ring of ligand atoms.

__init__(*args, **kwargs)
atoms

Atom indices.

is_terminal

Is ring connected to at most one atom with degree > 1?

class schrodinger.glide.RotType
CORE = 0
PERIPHERAL = 1
class schrodinger.glide.RotamerGroup

schrodinger::glide::RotamerGroup A rotamer group is the rotatable bond around which some peripheral atoms are rotated and their rotated coordinates for each torsional minimum.

__init__(*args, **kwargs)
getCoords(self) std::vector< std::vector< Eigen::Vector3d,std::allocator< Eigen::Vector3d > >,std::allocator< std::vector< Eigen::Vector3d,std::allocator< Eigen::Vector3d > > > >

Getter added for SWIG, to get a copy of the coordinates, which is easier and safer to wrap.

num_rotamers

The number of rotamers for this rotamer group.

rotbond

The rotatable bond that generates this rotamer group

class schrodinger.glide.RotatableBond

schrodinger::glide::RotatableBond A rotatable bond, defined by two atoms and classified as core or peripheral.

__init__(*args, **kwargs)
atom1

1-based atom index

atom2

1-based atom index

moving_atoms

List of atom indices that are moved by this rotatable bond.

num_moving_rotbonds

How many other rotatable bonds are moved by this one?

type

Core/peripheral classification.

class schrodinger.glide.Rotation
schrodinger::glide::Rotation

A Rotation is a set of Euler angles that define the orientation of a ligand.

__init__(*args, **kwargs)
phi
psi
theta
class schrodinger.glide.RoughPose

schrodinger::glide::RoughPose A rough pose is the output of the initial docking, where the ligand center gets placed on a Site, the ligand axis gets placed on a Direction, and the ligand may be rotated by a discrete angle around the ligand axis.

__init__(*args, **kwargs)
conformer
getStructure(self) schrodinger::Structure

Return the structure of the rough pose.

interacting_greedy_score
placement
refinePose(self, archive, lig, ligand_constraint_data) RefinedPose

Refines the rough pose and returns it.

score
class schrodinger.glide.RoughPoseEnsemble
schrodinger::glide::RoughPoseEnsemble

A RoughPoseEnsemble holds the output of rough scoring.

__init__(*args, **kwargs)
getPoses(self) _TplRoughPoseList

Return a reference to all the poses in the ensemble. Can be empty if tight core constraints are used.

getRoughStructures(self) std::vector< schrodinger::Structure,std::allocator< schrodinger::Structure > >

Return a vector of all rough poses structures.

class schrodinger.glide.ScoreDescriptors

schrodinger::glide::ScoreDescriptors These are the basic descriptors that are used as inputs for the final scoring calculation. They need to be weighed, capped, etc., so unlike the ScoreTerms, they do not simply add up to the total score.

__init__(*args, **kwargs)
chemscore_clash
electrostatic_reward
energy_components
hbonds
hscore
intrahb_count
lipo_lipo
lipo_nonlipo
mass_reward
mass_weighted_rot_bond
metal
phobic_attractive
phobscore_data
pi_cation
polar_philic
polarscore
site_descs
special_charged_lig_atoms

charged ligand atoms involved in bifurcated salt bridges or special hydrogen bonds

special_hbond_pairs_data
special_hbonds_data
strain_energy
torsion_penalties
torsion_penalty
class schrodinger.glide.ScoreInfo

schrodinger::glide::ScoreInfo ScoreInfo bundles together the descriptor, terms, and final GlideScore.

__init__(*args, **kwargs)
descriptors
error_msg

Error message if pose was so bad that scoring failed; otherwise empty.

gscore
internal_energy
terms
viz_data
class schrodinger.glide.ScoreTerms

schrodinger::glide::ScoreTerms These terms offer a breakdown of GlideScore, and therefore add up to the total score.

__init__(*args, **kwargs)
ecoul
electrostatic_reward
evdw
hbond_charged_charged
hscore
intrahb_reward
lipo
mass_reward
mass_weighted_rot_bond
metal
phobscore
pi_cation
polar_philic
polarscore
special_hbond
special_hbond_pair
strain_energy
torsion_penalty
class schrodinger.glide.SiteGridDescriptors
schrodinger::glide::SiteGridDescriptors

Pose descriptors based on adding up the values of SiteGrid cells containing atoms, depending on each atom’s ptype.

__init__(*args, **kwargs)
donor_attractive

donor atoms in favorable environment

donor_repulsive

donor atoms in unfavorable environment

phobic_attractive

phobic heavy / halogen atoms

polar_philic

polar atoms in favorable environment

polar_phobic

polar atoms in unfavorable environment

polarscore

polar atoms in unfavorable environment meeting additional rules based on element or functional group; this descriptor is used for the SP scoring term of the same name.

exception schrodinger.glide.SkipLigand(reason, message)

Exception class for errors that mean that we cannot proceed with the current ligand, but are otherwise nonfatal. The expectation is that they will be caught and handled by the main ligand loop.

Variables:
  • message – specific error message

  • reason – general reason for skipping the ligand, as one of the members of the SkipReason enum (e.g., SkipReason.CONFGEN)

__init__(reason, message)
reason: SkipReason
message: str
toJSON()
classmethod fromJSON(json_str: str) SkipLigand
class schrodinger.glide.SkipReason
ATOMIC_NUMBER = 0
ATOM_OVERLAP = 1
BAD_ATOM = 2
CONFGEN = 3
EMPTY_MCS = 4
FORCE_FIELD = 5
LIGAND_DATA = 6
LIGAND_SIZE = 7
MINIMIZATION = 8
NO_ATOMS = 9
NO_GOOD_POSES = 10
NO_MATCH = 11
NO_POSES_STORED = 12
PHASE_DB = 13
PULL = 14
REFINE = 15
ROTBONDS = 16
ROUGH_SCORE = 17
EXCEPTION = 18
class schrodinger.glide.SpecialHBondPairData

schrodinger::glide::SpecialHBondPairData Contains the data for a special hbond pair.

__init__(*args, **kwargs)
all_charged

If all atoms involved have formal charges.

score
special_pair

Special hydrogen bond pair

class schrodinger.glide.SpecialHBondPairsData

schrodinger::glide::SpecialHBondPairsData Contains the total score for all special hbond pairs and each contributing hbond pair.

__init__(*args, **kwargs)
special_hbond_pairs_data
total_score
class schrodinger.glide.SpecialHBondsData

schrodinger::glide::SpecialHBondsData Contains the total score for all special hbonds and each contributing hbond.

__init__(*args, **kwargs)
special_hbonds_data
total_score
class schrodinger.glide.StrainCorrectionOptions
schrodinger::glide::StrainCorrectionOptions

Options that control the energy function used for computing the strain correction.

__init__(*args, **kwargs)
coul_weight

Weight of the Coulomb Energy term. Normally 0.0, unless STRAINELEC is true; then it’s 1.0.

dielco

Dielectric constant.

class schrodinger.glide.TorsionAndPlacementMinimizer
schrodinger::glide::TorsionAndPlacementMinimizer

A class implementing the “partial” or torsion-and-placement minimization stage of the Glide funnel. A TorsionAndPlacementMinimizer is specific to a given ConformerEnsemble, because the energy function uses the energy profiles that were generated during confgen.

__init__(*args, **kwargs)
minimize(self, refined_pose, maxeval, energy_options, rigid) MinimizerResult
minimize(self, refined_pose) MinimizerResult

Overload 1: Minimize the placement (center of mass), orientation (Euler angles), and torsions of a ligand in the field of the receptor.


Overload 2: Overload of the above that does a two-stage minimization, first using the soft potentials and then using the hard potentials.

class schrodinger.glide.TorsionPenalty
schrodinger::glide::TorsionPenalty

Information about a single torsional penalty.

__init__(*args, **kwargs)
atom1

1-based index of atom in rotatable bond

atom2

1-based index of atom in rotatable bond

name

Penalty name

value

Penalty in kcal/mol

class schrodinger.glide.VisualizationData

schrodinger::glide::VisualizationData Supporting information for Epharmacophore and visualization. Scores are already weighed by score parameters.

__init__(*args, **kwargs)
charged_ligand_atom_score

Epharmacophore: r_glide_XP_Electro

hbonds_data

Epharmacophore: m_glide_XPviz_hbonds

phobscore_data

Epharmacophore: m_glide_XPviz_phobpack

special_charged_lig_atoms

Epharmacophore: m_glide_XPviz_hexsp charged ligand atoms involved in bifurcated salt bridges or special hydrogen bonds

special_hbond_pairs_data

Epharmacophore: m_glide_XPviz_hexpairs

special_hbonds_data

Epharmacophore: m_glide_XPviz_phobcon_hb

class schrodinger.glide.WaterMap

schrodinger::glide::WaterMap

__init__(*args, **kwargs)
getCoords(self, index) Eigen::Vector3d const &

Get the coordinates of the water molecule at the given index.

Parameters:

index: – index of the water molecule. 0-based.

getDg(self, index) double

Get the dg value of the water molecule at the given index.

Parameters:

index: – index of the water molecule. 0-based.

getSize(self) size_t

Get the number of water molecules in the WaterMap.

getWmapWater(self, index) WmapWater

Get the WmapWater object at the given index.

Parameters:

index: – index of the WmapWater object. 0-based.

class schrodinger.glide.WmapWater

schrodinger::glide::WmapWater

__init__(*args, **kwargs)
getCoords(self) Eigen::Vector3d const &
getDg(self) double
schrodinger.glide.clear_glide_props(st)

Clear all Glide output properties. The following properties are not cleared because they are considered input properties: b_glide_receptor, i_i_glide_lignum, s_glide_core_smarts, s_glide_core_atoms, and i_glide_molID.

schrodinger.glide.clear_global_state_file()

Clear the global state filename.

schrodinger.glide.clear_group_properties(st)

Clear entry group info from structure.

schrodinger.glide.compute_strain_energy(pose, config) double

Does two minimizations of the pose in a vacuum and returns the difference between the resulting energies. One minimization is free and the other one has torsional constrains on all torsions.

schrodinger.glide.count_intramolecular_hbonds(pose) int

Count intramolecular hydrogen bonds using the default mmct criteria.

schrodinger.glide.create_constraint_supporting_info(constraints) schrodinger::glide::ConstraintSupportingInfo

Creates a ConstraintSupportingInfo

schrodinger.glide.create_directories(directory_path)

Creates the directories if they do not already exist. :raises: InputError if directory can’t be created.

schrodinger.glide.files_are_equal(stream_1, stream_2, skip=0) bool

Check if the files are identical. :type stream_1: std::istream :param stream_1: The istream from the first file. :type stream_2: std::istream :param stream_2: The istream from the second file. :type skip: int, optional :param skip: The number of lines to skip when comparing files. :rtype: boolean :return: bool.

schrodinger.glide.find_data_file(basename, cwd='') std::string

Find a data file in the CWD, the user data directory, or the internal data directory.

Parameters:
  • basename: – filename without directory.

  • cwd: – optionally start the search in the specified directory _instead_ of the CWD.

Raises:

InputError if not found.

schrodinger.glide.find_test_file(basename) std::string

Find file in test/testfiles/, for use in unit tests. :raises: std::runtime_error if not found.

schrodinger.glide.generate_templates(lig, starting_st, config) _TplConformerTemplateList
schrodinger.glide.generate_templates(lig, starting_st, config, constraints) _TplConformerTemplateList
schrodinger.glide.generate_templates(lig, structures, config, constraints) _TplConformerTemplateList

Overload 1:

Generate conformer templates for a ligand, using the XYZ coordinates from starting_st as a starting point.


Overload 2:

Generate conformer templates for a ligand, using the XYZ coordinates from starting_st as a starting point; this overload also supports core constraints.


Overload 3:

This overload uses caller-provided template structures as a starting point, bypassing the usual ring sampling. But the function can still generate additional templates when core constraints are used.

schrodinger.glide.get_core_idcs(reflig, core_atoms) std::pair< std::vector< int,std::allocator< int > >,int >

Group atoms according to which core they belong to, where a core is a connected subgraph of atoms listed in CORE_ATOMS. :return: a pair consisting of:

  • a list with the core index (0-based) for each atom in the reflig (1-based). Atoms not belonging to any core get assigned -1.

  • the total number of cores

schrodinger.glide.get_core_smarts_idcs(reflig, smarts, core_atoms) std::vector< int,std::allocator< int > >

Find the first match that includes all of the CORE_ATOMS, and return the SMARTS indices corresponding to the core atoms.

schrodinger.glide.get_corrected_energy(pose, archive, config) EnergyComponents

Convenience function for getting the corrected intermolecular energy (and no forces) in a single step. Calls get_intermolecular_energy_and_forces() followed by get_energy_charge_correction().

schrodinger.glide.get_energy_charge_correction(pose, recep, evdw_raw, dielco=DEFAULT_DIELCO) EnergyComponents

Compute the correction terms for formally charged atoms.

The raw vdW energy is needed because the vdW correction is a function of the uncorrected vdW energy (obtained from get_intermolecular_energy_and_forces().

Requires docking license.

schrodinger.glide.get_energy_for_strain_corrections(pose, options, calc) std::pair< double,std::vector< Eigen::Vector3d,std::allocator< Eigen::Vector3d > > >

Energy function for strain corrections. Applies torsional restrains when calc is not null.

schrodinger.glide.get_hbonds(pose, recep) HBonds

Find and score the ligand-receptor hydrogen bonds for a given pose.

schrodinger.glide.get_intermolecular_energy_and_forces(pose, archive, options={}) std::pair< schrodinger::glide::EnergyComponents,std::vector< Eigen::Vector3d,std::allocator< Eigen::Vector3d > > >
schrodinger.glide.get_intermolecular_energy_and_forces(pose, archive, options, total_forces) EnergyComponents

Overload 1:

Return the energy and forces of interaction between a pose and the fields. Requires docking license.


Overload 2:

An overload that takes the forces by mutable reference; used by callers who wish to avoid the allocation of a forces array with each call. Requires docking license.

schrodinger.glide.get_intramolecular_energy(pose, dielco=DEFAULT_DIELCO) double

Get the intramolecular energy of a ligand (stretching, bending, torsion, and intramolecular non-bonded force field terms). :rtype: float :return: energy in kcal/mol

schrodinger.glide.get_rotated_rotamers(euler, rotamer_groups) _TplRotamerGroupList

Get the rotated rotamers for each RotamerGroup

Parameters:
  • euler (Eigen::Matrix3d) – the euler matrix

  • rotamer_groups (std::vector< schrodinger::glide::RotamerGroup,std::allocator< schrodinger::glide::RotamerGroup > >) – the rotamer groups to rotate

Return type:

std::vector< schrodinger::glide::RotamerGroup,std::allocator< schrodinger::glide::RotamerGroup > >

Returns:

the rotated rotamer groups

schrodinger.glide.get_total_energy(pose, archive, options={}) double

Get the total energy of a pose. :rtype: float :return: energy in kcal/mol

schrodinger.glide.get_uncorrected_energy(pose, archive, config) EnergyComponents

Convenience function for getting the uncorrected intermolecular energy (and no forces) in a single step.

schrodinger.glide.get_unsupported_features(glide_job)

Check if the job is using any keyword not supported by Skate. (Developer keywords are ignored.)

Returns:

list of unsupported keyword names used by the job

Return type:

List(str)

schrodinger.glide.glide_ws_license_exists() bool

Return true if the license needed for running Glide WS exists.

schrodinger.glide.has_bad_contacts_for_sampling(pose, config) bool

Return true if a pose has bad intramolecular contacts: atoms more than 3 bonds apart that are closer than an element-dependent cutoff. This function uses fairly small (that is, very tolerant) cutoffs because it is meant to be used on structures that have not been minimized yet.

schrodinger.glide.has_bad_contacts_for_scoring(pose, config) bool

Return true if a pose has bad intramolecular contacts: atoms more than 3 bonds apart that are closer than an element-dependent cutoff. This function uses larger (that is, less tolerant) cutoffs than has_bad_contacts_for_sampling() because it is used for structures that have already been minimized.

schrodinger.glide.has_bad_contacts_for_scoring_relaxed(pose, config) bool

Return true if a pose has bad intramolecular contacts: atoms more than 3 bonds apart that are closer than an element-dependent cutoff. This function uses the vdW radii of each element to determine the cutoff and it is used when the keyword DOINTRA is supplied. DOINTRA_SCALE is used to manipulate the tolerance with a value between 0.0 and 1.0 increasing the tolerance, while values greater than 1.0 decreasing the tolerance.

schrodinger.glide.install_signal_handler()

Install handler for various fatal signals.

For SIGSEGV, SIGILL, SIGFPE, SIGABRT, and SIGBUS, print a traceback.

For SIGTERM, just print a message with the PID and UID of the sender, since the traceback is not that relevant.

Does not work on Windows (the function may be called but does nothing).

schrodinger.glide.log(level, message)

Log a message. This is meant as a helper function which is callable from Python; for efficiency in the C++ code use the LOG macro instead. The name of the logger used by this function is “log”.

schrodinger.glide.maybe_uncompress(file_name, file_stream) std::unique_ptr< std::istream >

Creates an istream for a file and uncompresses it if it is a .gz file.

schrodinger.glide.minimize_xyz(pose, archive, maxeval, energy_options) MinimizerResult

Minimize the Cartesian coordinates of all ligand atoms in the field of the receptor. Used for post-docking minimization.

For most uses, the FullMinimizer class is simpler because it figures out maxeval and energy_options from the job Config.

schrodinger.glide.read_and_combine_lines(stream, num_lines) std::string

Read the number of lines from the stream and combine them. :type stream: std::istream :param stream: The istream to read from. :type num_lines: int :param num_lines: The number of lines to read and combine. :rtype: string :return: std::string of the combined lines.

schrodinger.glide.refine_rough_poses(rough_poses, confs, archive, ligand_constraint_data) std::shared_ptr< schrodinger::glide::RefinedPoseEnsemble >

Refines the docked rough poses into a refined pose ensemble.

schrodinger.glide.require_docking_license()

Check if the licenses required for docking (GLIDE_MAIN, GLIDE_SP_DOCKING) are currently checked out. :raises: std::invalid_argument if license is not checked out.

schrodinger.glide.require_fitden_license()

Check if the licenses required for FITDEN (GLIDE_PRIMEX_LIGFIT, PRIMEX_MAIN) are currently checked out. :raises: std::invalid_argument if license is not checked out.

schrodinger.glide.require_gridgen_license()

Check if the license required for gridgen (GLIDE_MAIN) is currently checked out. :raises: std::invalid_argument if license is not checked out.

schrodinger.glide.set_global_lignum(new_lignum)

Set the current lignum. If there is a crash, and the state filename has been set, the lignum will be written to the state file.

schrodinger.glide.set_global_state_file(filename)

Set the name of a file to write the current state in the event of a crash. Since this is a global state, the filename can only be set once, unless it is cleared by calling clear_global_state_file().

The state file is a JSON file with a body such as:

{ “aborted”: true, “lignum”: 42, “cpu_user”: 3.14, “cpu_system”: 0.5 }

CPU times are relative to the time when set_global_state_file() was called.

Raises:

std::runtime_error if state file is already set.

Raises:

std::invalid_argument if filename is too long.

schrodinger.glide.skip_lines(stream, n)

Ignore everything until next nth EOL.

schrodinger.glide.validate_smarts_and_core_atoms(reflig, smarts, core_atoms)

Check that the SMARTS and CORE_ATOMS make sense for the reference ligand; otherwise throw an InputError.