schrodinger.application.glide.ligand_designer module¶
This module provides the APIs behind the Ligand Designer panel and workflow. It combines binding site Phase hypothesis generation with R-group enumeration and Glide grid generation and docking. The docking uses a Glide HTTP server for speed.
-
class
schrodinger.application.glide.ligand_designer.
State
¶ Bases:
enum.Enum
An enumeration.
-
NEW
= 1¶
-
READY
= 4¶
-
RUNNING_GRIDGEN
= 2¶
-
STARTING_SERVER
= 3¶
-
STOPPED
= 5¶
-
-
class
schrodinger.application.glide.ligand_designer.
Pose
(structure, source_lig, task_id)¶ Bases:
tuple
-
__contains__
¶ Return key in self.
-
__init__
¶ Initialize self. See help(type(self)) for accurate signature.
-
__len__
¶ Return len(self).
-
count
(value) → integer -- return number of occurrences of value¶
-
index
(value[, start[, stop]]) → integer -- return first index of value.¶ Raises ValueError if the value is not present.
-
source_lig
¶ Alias for field number 1
-
structure
¶ Alias for field number 0
-
task_id
¶ Alias for field number 2
-
-
schrodinger.application.glide.ligand_designer.
get_rgroup_atoms_close_to_point
(st, xyz, distance)¶ Returns True if any atoms from st are found within the threshold distance of a point, which is defined by its xyz coordinates. Only R-group atoms that don’t have special LD_CORE_ATOM_PROP set are considered.
Parameters: - st (structure.Structure) – structure object
- xyz (list[float]) – xyz coordinates of point
- distance (float) – Distance threshold
Returns: True if atoms within distance are found and False otherwise
Return type: bool
-
exception
schrodinger.application.glide.ligand_designer.
ServerTimedOutError
¶ Bases:
RuntimeError
Exception raised if the Glide server times out
-
__init__
¶ Initialize self. See help(type(self)) for accurate signature.
-
args
¶
-
with_traceback
()¶ Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
-
-
class
schrodinger.application.glide.ligand_designer.
Site
¶ Bases:
object
Base class for a generic “hypothesis site”. A site is defined by a point in space (.xyz property) and has a method to check whether a pose satisfies the desired interaction.
Subclasses must override the .xyz property.
-
xyz
¶ Returns: Cartesian coordinates of this site Return type: iterable(float, float, float)
-
isSatisfied
(pose)¶ Check if a pose satisfies the interaction with the given site.
Return type: bool
-
__init__
¶ Initialize self. See help(type(self)) for accurate signature.
-
-
class
schrodinger.application.glide.ligand_designer.
PhaseSite
(site)¶ Bases:
schrodinger.application.glide.ligand_designer.Site
A site from a Phase hypothesis.
-
__init__
(site)¶ Parameters: site (schrodinger.infra.phase.PhpSite) – Phase site
-
xyz
¶ Returns: Cartesian coordinates of this site Return type: iterable(float, float, float)
-
isSatisfied
(pose)¶ Check if the ligand pose has any Phase sites that are close enough and have the right type to satisfy the interaction with this PhaseSite.
Return type: bool
-
-
class
schrodinger.application.glide.ligand_designer.
WatermapSite
(atom, wmap_eid)¶ Bases:
schrodinger.application.glide.ligand_designer.Site
A WaterMap site.
-
__init__
(atom, wmap_eid)¶ Parameters: - atom (schrodinger.structure._StructureAtom) – WaterMap site atom
- wmap_eid (str or NoneType) – WaterMap entry ID, used to identify the structure to which this site belongs
-
atom
¶
-
xyz
¶ Returns: Cartesian coordinates of this site Return type: iterable(float, float, float)
-
dg
¶ Returns: the WaterMap dG value, if available Return type: float or None
-
enthalpy
¶ Returns: the WaterMap enthalpy value, if available Return type: float or None
-
entropy
¶ Returns: the WaterMap entropy value, if available Return type: float or None
-
name
¶ Returns: the name of this WaterMap site Return type: str
-
wmap_eid
¶ Returns: the WaterMap entry ID Return type: str or NoneType
-
isSatisfied
(pose)¶ True if any ligand atoms are within WMAP_DISPLACEMENT_CUTOFF of the WaterMap site.
-
-
class
schrodinger.application.glide.ligand_designer.
SphereSite
(sphere_data)¶ Bases:
schrodinger.application.glide.ligand_designer.Site
A site for a growth space sphere.
-
__init__
(sphere_data)¶ Parameters: sphere_data (namedtuple(float, float, float, float)) – The sphere’s x, y, z coordinates and radius
-
xyz
¶ Returns: Cartesian coordinates of this site Return type: iterable(float, float, float)
-
isSatisfied
(pose)¶ True if any ligand atoms are within the sphere
-
-
class
schrodinger.application.glide.ligand_designer.
ReactionThread
(mol, frozen_atoms, depth=2, max_routes=20, libpath=None, **kwargs)¶ Bases:
PyQt5.QtCore.QThread
Thread to run reaction enumeration. All enumeration takes place in RDKit, which is thread-safe.
Variables: - MAX_PRODUCTS – Maximum number of products to enumerate.
- stop_requested – The calling code can set this to True to stop enumeration.
- productReady – Signal emitted with a new product.
-
MAX_PRODUCTS
= 10000¶
-
productReady
¶
-
__init__
(mol, frozen_atoms, depth=2, max_routes=20, libpath=None, **kwargs)¶ All arguments will be passed to
multiroute.generate_mols
.Parameters: - frozen_atoms (set of int) – frozen atom indices (1-based)
- depth (int or NoneType) – analysis depth (if None, increasing depths will be attempted until enough routes are found)
- max_routes (int) – maximum number of routes to sample
- libpath (list of str) – list of directories to prepend to the standard reagent library search path
-
setFilterObj
(filter_obj)¶ Filter the products by the given filter object.
-
run
()¶ Run reaction enumeration and emit a signal with each product.
-
HighPriority
= 4¶
-
HighestPriority
= 5¶
-
IdlePriority
= 0¶
-
InheritPriority
= 7¶
-
LowPriority
= 2¶
-
LowestPriority
= 1¶
-
NormalPriority
= 3¶
-
class
Priority
¶ Bases:
int
-
__init__
= <method-wrapper '__init__' of sip.enumtype object at 0x39caec8>¶
-
-
TimeCriticalPriority
= 6¶
-
blockSignals
(self, bool) → bool¶
-
childEvent
(self, QChildEvent)¶
-
children
(self) → List[QObject]¶
-
connectNotify
(self, QMetaMethod)¶
-
currentThread
() → QThread¶
-
currentThreadId
() → sip.voidptr¶
-
customEvent
(self, QEvent)¶
-
deleteLater
(self)¶
-
destroyed
¶ destroyed(self, object: QObject = None) [signal]
-
disconnect
(self)¶
-
disconnectNotify
(self, QMetaMethod)¶
-
dumpObjectInfo
(self)¶
-
dumpObjectTree
(self)¶
-
dynamicPropertyNames
(self) → List[QByteArray]¶
-
event
(self, QEvent) → bool¶
-
eventDispatcher
(self) → QAbstractEventDispatcher¶
-
eventFilter
(self, QObject, QEvent) → bool¶
-
exec
(self) → int¶
-
exec_
(self) → int¶
-
exit
(self, returnCode: int = 0)¶
-
findChild
(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → QObject¶ findChild(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> QObject
-
findChildren
(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → List[QObject]¶ findChildren(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject]
-
finished
¶ finished(self) [signal]
-
idealThreadCount
() → int¶
-
inherits
(self, str) → bool¶
-
installEventFilter
(self, QObject)¶
-
isFinished
(self) → bool¶
-
isInterruptionRequested
(self) → bool¶
-
isRunning
(self) → bool¶
-
isSignalConnected
(self, QMetaMethod) → bool¶
-
isWidgetType
(self) → bool¶
-
isWindowType
(self) → bool¶
-
killTimer
(self, int)¶
-
loopLevel
(self) → int¶
-
metaObject
(self) → QMetaObject¶
-
moveToThread
(self, QThread)¶
-
msleep
(int)¶
-
objectName
(self) → str¶
-
objectNameChanged
¶ objectNameChanged(self, str) [signal]
-
parent
(self) → QObject¶
-
priority
(self) → QThread.Priority¶
-
property
(self, str) → Any¶
-
pyqtConfigure
(...)¶ Each keyword argument is either the name of a Qt property or a Qt signal. For properties the property is set to the given value which should be of an appropriate type. For signals the signal is connected to the given value which should be a callable.
-
quit
(self)¶
-
receivers
(self, PYQT_SIGNAL) → int¶
-
removeEventFilter
(self, QObject)¶
-
requestInterruption
(self)¶
-
sender
(self) → QObject¶
-
senderSignalIndex
(self) → int¶
-
setEventDispatcher
(self, QAbstractEventDispatcher)¶
-
setObjectName
(self, str)¶
-
setParent
(self, QObject)¶
-
setPriority
(self, QThread.Priority)¶
-
setProperty
(self, str, Any) → bool¶
-
setStackSize
(self, int)¶
-
setTerminationEnabled
(enabled: bool = True)¶
-
signalsBlocked
(self) → bool¶
-
sleep
(int)¶
-
stackSize
(self) → int¶
-
start
(self, priority: QThread.Priority = QThread.InheritPriority)¶
-
startTimer
(self, int, timerType: Qt.TimerType = Qt.CoarseTimer) → int¶
-
started
¶ started(self) [signal]
-
staticMetaObject
= <PyQt5.QtCore.QMetaObject object>¶
-
terminate
(self)¶
-
thread
(self) → QThread¶
-
timerEvent
(self, QTimerEvent)¶
-
tr
(self, str, disambiguation: str = None, n: int = -1) → str¶
-
usleep
(int)¶
-
wait
(self, msecs: int = ULONG_MAX) → bool¶
-
yieldCurrentThread
()¶
-
class
schrodinger.application.glide.ligand_designer.
FilterWrapper
(filter_obj, descriptors=None)¶ Bases:
object
A wrapper for schrodinger.ui.qt.filter_dialog_dir.filter_core.Filter to filter an iterable of Structure while computing RDKit descriptors, modifying the structure in-place.
Variables: structures_checked – How many structures were passed to filterStructures
-
__init__
(filter_obj, descriptors=None)¶ Parameters: - filter_obj (schrodinger.ui.qt.filter_dialog_dir.filter_core.Filter) – Filter object to wrap
- descriptors (iterable of str) – names of descriptors to add to each structure, in addition to those that are required by the filters.
-
filterStructures
(structures)¶ Generator which filters an iterable of structures, yielding those that pass, after adding descriptor properties to them. The input structures are modified.
Parameters: structures (iterable of schrodinger.structure.Structure) – structures to filter Return type: generator of schrodinger.structure.Structure
-
-
class
schrodinger.application.glide.ligand_designer.
LigandDesignerTask
(*args, **kwargs)¶ Bases:
schrodinger.tasks.tasks.AbstractTask
A LigandDesignerTask stores a ligand, a receptor, and optionally a WaterMap, and provides methods for finding hypotheses and finding which bonds may be enumerated upon for a given hypothesis.
Variables: - GRIDGEN_RETRIES – Number of times to check whether gridgen is finished
- input – Task input
- output – Poses and statistics from enumeration task
- filter_obj (filter_core.Filter) – object responsible for storing filter settings for the enumerated poses
- posesDocked – Signal emitted when poses are docked
- noPosesDocked – Signal emitted when a ligand produces no valid poses
-
input
¶ Variables: - ligand_st (schrodinger.Structure.structure) – ligand structure
- original_ligand_st (schrodinger.Structure.structure) – original ligand before enumerations
- receptor_st (schrodinger.Structure.structure) – receptor structure
- wmap_sts (list(schrodinger.Structure.structure)) – watermap structures
- site (Site) – target site
- leaving_atom_index – this atom and others reachable from it in the direction “away” from the core will be replaced by the R-group
- staying_atom_index – The atom number of the core atom bonded to the leaving atom
- bond_is_breakable – whether the bond between the staying atom and leaving atom is part of a known reaction
- use_reaction – whether to use reaction-based enumeration if bond is breakable
- r_groups (iterable of schrodinger.structure.Structure) – R-group library
-
output
¶ Variables: - poses (list[Pose]) – List of poses resulting from enumeration job
- num_ligands – Number of ligands generated by R-group enumeration.
- ligands_matched – Number of ligands matched by the filter.
- num_poses – Number of poses returned from Glide.
-
posesDocked
¶
-
noPosesDocked
¶
-
GRIDGEN_RETRIES
= 300¶
-
initConcrete
(keywords=None, tmpdir=None, *args, **kwargs)¶ Parameters: - keywords – See
LigandDesigner
for documentation - tmpdir – See
LigandDesigner
for documentation
- keywords – See
-
filter_obj
¶
-
backend
¶
-
getHypo
()¶ Compute and cache a ligand pharmacophore hypothesis based on the receptor’s binding site atoms
-
getHypoCt
()¶ Get the Phase ligand hypothesis for the binding site as a Structure.
Return type: schrodinger.Structure
-
getBindingSiteAtoms
()¶ Returns: Atom indices of the receptor that are close to the ligand Return type: list[int]
-
getWmapSites
()¶ The WaterMap sites, as a dict by name, sorted by delta G.
-
getSite
(site_name)¶ Return a Site by name. It may be a WatermapSite (conventinally named W1, W2, etc.) or a Phase hypothesis site (with names such as D1, D2 for donors; A1, A2 for acceptors; R1, R2 for aromatic rings; etc.).
-
getBonds
(min_angle=90.0, bond_order=None)¶ Return a list of ligand bonds that could be broken to perform an R-group enumeration in an attempt to satisfy the interaction with a given site.
Parameters: - min_angle (float) – minimum angle, in degrees, between the site and the bond to be broken for R-group enumeration, with the leaving atom at the vertex
- bond_order (int or NoneType) – required bond order, or None to allow any bond order
Returns: list of (staying_atom_index, leaving_atom_index) tuples
Return type: list of (int, int)
-
resetPicks
()¶ Reset user picks
-
dockBatchLigands
(ligand_sts)¶
-
run
()¶ Start the real run method by connecting it to the _backendReady signal and getting the backend ready.
Implementation of abstract method of tasks.AbstractTask.
-
cancel
()¶
-
readyBackend
()¶ Gets the backend ready without blocking the GUI
self._backend_checker.wait()
blocks Python execution until the backend is ready or it times out. If the backend isn’t ready, causes the task to fail.Returns: Whether the backend is ready
-
AUTO_TASKDIR
= <object object>¶
-
CMDLINE
= 1¶
-
DEFAULT_TASKDIR_SETTING
= None¶
-
DONE
= 3¶
-
DataClass
¶ alias of
builtins.object
-
FAILED
= 2¶
-
GUI
= 2¶
-
INTERRUPT_ENABLED
= False¶
-
RUNNING
= 1¶
-
TEMP_TASKDIR
= <object object>¶
-
WAITING
= 0¶
-
__init__
(*args, **kwargs)¶ Initialize self. See help(type(self)) for accurate signature.
-
addFuncToGroup
(func, group=None, order=None)¶ Adds a function to the specified chain. Typically used for adding functions that are not methods of this object.
The function may optionally be decorated with a FuncGroupMarker. If so, the default group and order will be determined by the decorator. Any group or order explicitly passed in to addFuncToGroup will take precedence over the decorator settings.
Parameters: - func – the function to add
- group (FuncGroupMarker or None) – the group marker. If the function is decorated with a FuncGoupMarker, that group marker will be the default.
- order (float or None) – the sorting order. If the function is decorated with a FuncGoupMarker, the order specified in the decorator will be the default.
-
addPreprocessor
(func, order=-2000)¶ Adds a preproceessor function to this task instance. If the function has been decorated with @preprocessor, the order specified by the decorator will be used as the default.
Parameters: - func – the function to add
- order (float) – the sorting order for the function relative to all other preprocessors. Takes precedence over order specified by the preprocessor decorator.
-
classmethod
addSubParam
(name, param, update_owner=True)¶
-
blockSignals
(self, bool) → bool¶
-
block_signal_propagation
()¶
-
childEvent
(self, QChildEvent)¶
-
children
(self) → List[QObject]¶
-
classmethod
configureParam
()¶ Override this class method to set up the abstract param class (e.g. setParamReference on child params.)
-
connectNotify
(self, QMetaMethod)¶
-
customEvent
(self, QEvent)¶
-
classmethod
defaultValue
(*args, **kwargs)¶
-
deleteLater
(self)¶
-
destroyed
¶ destroyed(self, object: QObject = None) [signal]
-
disconnect
(self)¶
-
disconnectNotify
(self, QMetaMethod)¶
-
dumpObjectInfo
(self)¶
-
dumpObjectTree
(self)¶
-
dynamicPropertyNames
(self) → List[QByteArray]¶
-
event
(self, QEvent) → bool¶
-
eventFilter
(self, QObject, QEvent) → bool¶
-
findChild
(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → QObject¶ findChild(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> QObject
-
findChildren
(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → List[QObject]¶ findChildren(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject]
-
classmethod
fromJson
(json_obj)¶ A factory method which constructs a new object from a given dict loaded from a json string or file.
Parameters: json_obj (dict) – A json-loaded dictionary to create an object from. Returns: An instance of this class. :rtype : cls
-
classmethod
fromJsonFilename
(filename)¶
-
classmethod
fromJsonImplementation
(json_dict)¶ Sets the value of this compound param value object from a JSON dict.
-
getAbstractParam
(*args, **kwargs)¶
-
getAddedFuncs
(group=None)¶
-
getFuncGroup
(group=None)¶ Retrieve the functions belonging to the specified group.
Parameters: group (FuncGroupMarker) – the group marker Returns: the functions in the specified group, in order Return type: list
-
classmethod
getJsonBlacklist
()¶ Override to customize what params are serialized.
Implementations should return a list of abstract params that should be omitted from serialization.
- ..NOTE
- Returned abstract params must be direct child params of
cls
, e.g.cls.name
, notcls.coord.x
.
-
classmethod
getParamSignal
(*args, **kwargs)¶
-
classmethod
getParamValue
(*args, **kwargs)¶
-
classmethod
getSubParam
(name)¶ Get the value of a subparam using the string name:
c = Coord() assert c.getSubParam('x') == 0
Note
Using the string name to accss params is generally discouraged, but can be useful for serializing/deserializing param data.
Parameters: name (str) – The name of the subparam to get the value for.
-
classmethod
getSubParams
()¶ Return a dictionary mapping subparam names to their values.
-
getTaskDir
()¶ Returns the full path of the task directory. This is only available if the task directory exists (after creation of the taskdir or, if no task dir is specified, any time).
-
getTaskFilename
(fname)¶ Return the appropriate absolute path for an input or output file in the taskdir.
-
get_version
()¶ Method to get the version of a particular object. Defaults to the current version of mmshare. This class can be overridden for custom versioning behavior.
-
guard
()¶ Context manager that saves any Exception raised inside
-
inherits
(self, str) → bool¶
-
initAbstract
()¶
-
initializeValue
()¶ @overrides: parameters.CompoundParam
-
inputChanged
¶
-
inputReplaced
¶
-
installEventFilter
(self, QObject)¶
-
classmethod
isAbstract
()¶ Whether the param is an “abstract” param.
-
isDefault
(*args, **kwargs)¶
-
isInterruptionRequested
()¶
-
isRunning
()¶
-
isSignalConnected
(self, QMetaMethod) → bool¶
-
isStartable
()¶
-
isWidgetType
(self) → bool¶
-
isWindowType
(self) → bool¶
-
kill
()¶ Implementations are responsible for immediately stopping the task. No threads or processes should be running after this method is complete.
This method should be called sparingly since in many contexts the task will be forced to terminate without a chance to clean up or free resources.
-
killTimer
(self, int)¶
-
max_progress
¶
-
max_progressChanged
¶
-
max_progressReplaced
¶
-
metaObject
(self) → QMetaObject¶
-
moveToThread
(self, QThread)¶
-
name
¶
-
nameChanged
¶
-
nameReplaced
¶
-
objectName
(self) → str¶
-
objectNameChanged
¶ objectNameChanged(self, str) [signal]
-
outputChanged
¶
-
outputReplaced
¶
-
classmethod
owner
()¶ Get the owner of the param:
# Can be called on an abstract param: assert Coord.x.owner() == Coord # ...or on an instance of a CompoundParam a = Atom() assert a.coord.owner() == a
-
classmethod
ownerChain
()¶ Returns a list of param owners starting from the toplevel param and ending with self. Examples:
foo.bar.atom.coord.ownerChain()
will return[foo, bar, atom, coord]
where every item is a concrete param.Foo.bar.atom.coord.x.ownerChain()
will return[Foo, Foo.bar, Foo.atom.coord, Foo.atom.coord.x]
where every item is an abstract params.
-
classmethod
paramName
()¶ Get the name of the param:
# Can be called on an abstract param: print(Coord.x.paramName()) # 'x' # ...or on an instance of a CompoundParam a = Atom() a.coord.paramName() # 'coord'
-
parent
(self) → QObject¶
-
preprocessors
()¶ Returns: A list of preprocessors (both decorated methods on the task and external functions that have been added via addPreprocessor)
-
processFuncChain
(chain=None, result_callback=None)¶ Execute each function in the specified chain sequentially in order.
The result_callback is called after each function with the return value of that function. This can be used to respond to the return value (e.g. present information to the user, get user feedback, log the result, etc.)
The return value of the result_callback determines whether processing will proceeed to the next function.
Parameters: - chain (FuncChainDecorator) – which chain to process
- result_callback – the callback that will get called with the result of each function in the chain
Returns: a list of the results from the functions
-
progress
¶
-
progressChanged
¶
-
progressReplaced
¶
-
property
(self, str) → Any¶
-
pyqtConfigure
(...)¶ Each keyword argument is either the name of a Qt property or a Qt signal. For properties the property is set to the given value which should be of an appropriate type. For signals the signal is connected to the given value which should be a callable.
-
receivers
(self, PYQT_SIGNAL) → int¶
-
removeEventFilter
(self, QObject)¶
-
replicate
()¶ Create a new task with the same input and settings (but no output)
-
requestInterruption
()¶ Request the task to stop.
To enable this feature, subclasses should periodically check whether an interruption has been requested and terminate if it has been. If such logic has been included,
INTERRUPT_ENABLED
should be set toTrue
.
-
reset
(*args, **kwargs)¶
-
classmethod
runFromCmdLine
()¶
-
runPostprocessing
(callback=None)¶
-
runPreprocessing
(callback=None, calling_context=None)¶ Run the preprocessors one-by-one. By default, any failing preprocessor will raise a TaskFailure exception and terminate processing. This behavior may be customized by supplying a callback function which will be called after each preprocessor with the result of that preprocessor.
Parameters: - callback – a function that takes result and returns a bool that indicates whether to continue on to the next preprocessor
- calling_context – specify a value here to indicate the context in which this preprocessing is being called. This value will be stored in an instance variable, self.calling_context, which can be accessed from any preprocessor method on this task. Typically this value will be either self.GUI, self.CMDLINE, or None, but any value may be supplied here and checked for in the preprocessor methods. self.calling_context always reverts back to None at the end of runPreprocessing.
-
sender
(self) → QObject¶
-
senderSignalIndex
(self) → int¶
-
setObjectName
(self, str)¶
-
classmethod
setParamValue
(*args, **kwargs)¶
-
setParent
(self, QObject)¶
-
setProperty
(self, str, Any) → bool¶
-
classmethod
setReference
(param1, param2)¶ Call this class method from configureParam to indicate that two params should be kept in sync. The initial values will start with the default value of
param1
. Example:class Square(CompoundParam): width: float = 5 height: float = 10 @classmethod def configureParam(cls): super().configureParam() cls.setReference(cls.width, cls.height) square = Square() assert square.width == square.height == 5 # Default value of width # takes priority square.height = 7 assert square.width == square.height == 7 square.width = 6 assert square.width == square.height == 6
Parameters: - param1 – The first abstract param to keep synced
- param2 – The second abstract param. After instantiation, this param will take on the value of param1.
-
setValue
(*args, **kwargs)¶
-
signalsBlocked
(self) → bool¶
-
skip_eq_check
()¶
-
specifyTaskDir
(taskdir_spec)¶ Specify the taskdir creation behavior. Use one of the following options:
A directory name (string). This may be a relative or absolute path
None - no taskdir is requested. The task will use the CWD as its taskdir
AUTO_TASKDIR - a new subdirectory will be created in the CWD using the task name as the directory name.
TEMP_TASKDIR - a temporary directory will be created in the schrodinger temp dir. This directory is cleaned up when the task is deleted.
Parameters: taskdir_spec – one of the four options listed above
-
start
(skip_preprocessing=False)¶ This is the main method for starting a task. Start will check if a task is not already running, run preprocessing, and then run the task.
Failures in preprocessing will interrupt the task start, and the task will never enter the RUNNING state.
Parameters: skip_preprocessing (bool) – whether to skip preprocessing. This can be useful if preprocessing was already performed prior to calling start.
-
startTimer
(self, int, timerType: Qt.TimerType = Qt.CoarseTimer) → int¶
-
staticMetaObject
= <PyQt5.QtCore.QMetaObject object>¶
-
status
¶
-
statusChanged
¶
-
statusReplaced
¶
-
taskDirSetting
()¶ Returns the taskdir spec. See specifyTaskDir() for details.
-
taskDone
¶
-
taskFailed
¶
-
taskStarted
¶
-
thread
(self) → QThread¶
-
timerEvent
(self, QTimerEvent)¶
-
toDict
(*args, **kwargs)¶
-
toJson
(_mark_version=True)¶ Create and returns a data structure made up of jsonable items.
Return type: An instance of one the classes from NATIVE_JSON_DATATYPES
-
toJsonImplementation
(*args, **kwargs)¶
-
tr
(self, str, disambiguation: str = None, n: int = -1) → str¶
-
valueChanged
¶
-
wait
(timeout=None)¶ Block until the task is finished executing or
timeout
seconds have passed.Parameters: timeout (NoneType or int) – Amount of time in seconds to wait before timing out. If None or a negative number, this method will wait until the task is finished.
-
class
schrodinger.application.glide.ligand_designer.
NonBlockingBackendChecker
(*args, **kwargs)¶ Bases:
PyQt5.QtCore.QObject
Class to get a LigandDesigner object to the ready state without blocking the GUI.
Variables: ready – Whether the backend is ready -
__init__
(*args, **kwargs)¶ Initialize self. See help(type(self)) for accurate signature.
-
wait
(timeout=600)¶ Block python execution (but not the GUI) until the backend is ready or the timeout is reached.
Parameters: timeout (int or NoneType) – Timeout in seconds or None to not timeout. Returns: Whether the backend is ready
-
setBackend
(backend)¶ Set the backend object to call isReady on
-
stopChecking
()¶ Stop checking whether the backend is ready
-
setTimedOut
()¶
-
blockSignals
(self, bool) → bool¶
-
childEvent
(self, QChildEvent)¶
-
children
(self) → List[QObject]¶
-
connectNotify
(self, QMetaMethod)¶
-
customEvent
(self, QEvent)¶
-
deleteLater
(self)¶
-
destroyed
¶ destroyed(self, object: QObject = None) [signal]
-
disconnect
(self)¶
-
disconnectNotify
(self, QMetaMethod)¶
-
dumpObjectInfo
(self)¶
-
dumpObjectTree
(self)¶
-
dynamicPropertyNames
(self) → List[QByteArray]¶
-
event
(self, QEvent) → bool¶
-
eventFilter
(self, QObject, QEvent) → bool¶
-
findChild
(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → QObject¶ findChild(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> QObject
-
findChildren
(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → List[QObject]¶ findChildren(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject]
-
inherits
(self, str) → bool¶
-
installEventFilter
(self, QObject)¶
-
isSignalConnected
(self, QMetaMethod) → bool¶
-
isWidgetType
(self) → bool¶
-
isWindowType
(self) → bool¶
-
killTimer
(self, int)¶
-
metaObject
(self) → QMetaObject¶
-
moveToThread
(self, QThread)¶
-
objectName
(self) → str¶
-
objectNameChanged
¶ objectNameChanged(self, str) [signal]
-
parent
(self) → QObject¶
-
property
(self, str) → Any¶
-
pyqtConfigure
(...)¶ Each keyword argument is either the name of a Qt property or a Qt signal. For properties the property is set to the given value which should be of an appropriate type. For signals the signal is connected to the given value which should be a callable.
-
receivers
(self, PYQT_SIGNAL) → int¶
-
removeEventFilter
(self, QObject)¶
-
sender
(self) → QObject¶
-
senderSignalIndex
(self) → int¶
-
setObjectName
(self, str)¶
-
setParent
(self, QObject)¶
-
setProperty
(self, str, Any) → bool¶
-
signalsBlocked
(self) → bool¶
-
startTimer
(self, int, timerType: Qt.TimerType = Qt.CoarseTimer) → int¶
-
staticMetaObject
= <PyQt5.QtCore.QMetaObject object>¶
-
thread
(self) → QThread¶
-
timerEvent
(self, QTimerEvent)¶
-
tr
(self, str, disambiguation: str = None, n: int = -1) → str¶
-
-
class
schrodinger.application.glide.ligand_designer.
LigandDesigner
(ligand_st, receptor_st, keywords=None, tmpdir=None)¶ Bases:
PyQt5.QtCore.QObject
A LigandDesigner is set up with a ligand and a receptor. It provides methods for performing the enumeration job. This is an R-group enumeration on a single bond, followed by core-constrained Glide docking of each generated ligand and a filter to ensure that the poses satisfy the hypothesis.
A LigandDesigner keeps its state and intermediate files in a scratch directory. A unique subdirectory is created for each ligand-receptor complex; if another object is created for the same complex, it will share the same directory. This allows the reuse of existing grid files, for example. However, only one LigandDesigner at a time can be performing an enumeration because the underlying Glide server process is single-threaded.
The LigandDesigner implements a non-blocking workflow, so the caller needs to take action to drive it. This is done by calling the isReady() method until true. Example:
ld = LigandDesigner(lig, recep) while not ld.isReady():
time.sleep(1)# now we are ready!
The idea is that the caller is free to do other stuff while waiting; for example, interacting with the user.
-
__init__
(ligand_st, receptor_st, keywords=None, tmpdir=None)¶ Parameters: - ligand_st (schrodinger.Structure.structure) – ligand structure
- receptor_st (schrodinger.Structure.structure) – receptor structure
- keywords (dict) – docking keywords to use to override the defaults
- tmpdir (path-like object) – directory under which the job files will be written. Default is $SCHRODINGER_TMPDIR.
-
default_docking_keywords
¶
-
state
¶
-
start
()¶ Start the ligand designer workflow.
-
stop
()¶ Stop the ligand designer workflow.
-
isReady
()¶ Return True if the LigandDesigner is ready to enumerate. This method has the side effect of taking steps to advance towards the READY state.
Returns: server is ready? Return type: bool
-
startDockLigands
(ligands)¶ Start asynchronous docking. If there was a problem with the server, the method will raise an exception.
Parameters: ligands (collections.Iterable(structure.Structure)) – Ligand structures to dock
Raises: - RuntimeError – If called when
self.state
is not READY - socket.error – If the server encounters an error
- RuntimeError – If called when
-
addDockingStructures
(structures)¶
-
setDoneAddingStructures
()¶
-
cancelEnumeration
()¶
-
getRgroupEnumerator
(site, atom, rgroups)¶ Get structures produced by R-group enumeration
Parameters: - site (Site) – target site
- atom (int) – leaving atom index (this atom and others reachable from it in the direction “away” from the core will be replaced by the R-group).
- rgroups (iterable of schrodinger.structure.Structure) – R-group library
Returns: Structures produced by R-group enumeration
Return type: collections.Iterable(structure.Structure)
-
blockSignals
(self, bool) → bool¶
-
childEvent
(self, QChildEvent)¶
-
children
(self) → List[QObject]¶
-
connectNotify
(self, QMetaMethod)¶
-
customEvent
(self, QEvent)¶
-
deleteLater
(self)¶
-
destroyed
¶ destroyed(self, object: QObject = None) [signal]
-
disconnect
(self)¶
-
disconnectNotify
(self, QMetaMethod)¶
-
dumpObjectInfo
(self)¶
-
dumpObjectTree
(self)¶
-
dynamicPropertyNames
(self) → List[QByteArray]¶
-
event
(self, QEvent) → bool¶
-
eventFilter
(self, QObject, QEvent) → bool¶
-
findChild
(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → QObject¶ findChild(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> QObject
-
findChildren
(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → List[QObject]¶ findChildren(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject]
-
inherits
(self, str) → bool¶
-
installEventFilter
(self, QObject)¶
-
isSignalConnected
(self, QMetaMethod) → bool¶
-
isWidgetType
(self) → bool¶
-
isWindowType
(self) → bool¶
-
killTimer
(self, int)¶
-
metaObject
(self) → QMetaObject¶
-
moveToThread
(self, QThread)¶
-
objectName
(self) → str¶
-
objectNameChanged
¶ objectNameChanged(self, str) [signal]
-
parent
(self) → QObject¶
-
property
(self, str) → Any¶
-
pyqtConfigure
(...)¶ Each keyword argument is either the name of a Qt property or a Qt signal. For properties the property is set to the given value which should be of an appropriate type. For signals the signal is connected to the given value which should be a callable.
-
receivers
(self, PYQT_SIGNAL) → int¶
-
removeEventFilter
(self, QObject)¶
-
sender
(self) → QObject¶
-
senderSignalIndex
(self) → int¶
-
setObjectName
(self, str)¶
-
setParent
(self, QObject)¶
-
setProperty
(self, str, Any) → bool¶
-
signalsBlocked
(self) → bool¶
-
startTimer
(self, int, timerType: Qt.TimerType = Qt.CoarseTimer) → int¶
-
staticMetaObject
= <PyQt5.QtCore.QMetaObject object>¶
-
thread
(self) → QThread¶
-
timerEvent
(self, QTimerEvent)¶
-
tr
(self, str, disambiguation: str = None, n: int = -1) → str¶
-
-
class
schrodinger.application.glide.ligand_designer.
GridgenJob
(receptor_st, ligand_st, jobdir)¶ Bases:
object
-
__init__
(receptor_st, ligand_st, jobdir)¶ Parameters: - ligand_st (schrodinger.Structure.structure) – ligand structure
- receptor_st (schrodinger.Structure.structure) – receptor structure
- jobdir (path-like object) – job directory
-
writeInputs
()¶ Write the input files.
-
launch
()¶ Launch the gridgen job.
-
isDone
()¶ Return true if the gridgen job is done. This is based in the existence of the grid file and, if available, the job record.
-
-
schrodinger.application.glide.ligand_designer.
read_json_file
(filename)¶ Read a JSON file. If there are issues reading it (doesn’t exist, syntax errors…) quietly return an empty dict.
Return type: object
-
schrodinger.application.glide.ligand_designer.
md5sum
(input_str)¶ MD5 hex digest of a string.
Return type: str
-
schrodinger.application.glide.ligand_designer.
get_structure_digest
(st, length=8)¶ Return an abbreviated MD5 hex digest given a Structure, after stripping out the structure-level properties.
Parameters: - st (schrodinger.structure.Structure) – input structure (not modified)
- length (int) – digest length in hex digits
Returns: hex digest
Return type: str
-
schrodinger.application.glide.ligand_designer.
get_binding_site_atoms
(receptor_st, ligand_st)¶
-
schrodinger.application.glide.ligand_designer.
add_rdkit_descriptors
(st, property_names)¶ Add RDKit descriptors to the maestro structure
Parameters: property_names (list[str]) – Maestro properties corresponding to RDKit descriptors
-
schrodinger.application.glide.ligand_designer.
filter_r_groups
(st, staying_atom_idx, leaving_atom_idx, r_groups)¶ Given a structure and a bond to break, return only R-groups that are anticipated to be chemically compatible.
Returns: R groups compatible with the given bond Return type: collections.Iterable[schrodinger.structure.Structure]
-
schrodinger.application.glide.ligand_designer.
get_small_libpath
()¶ Return the small reagent library search path.
Return type: list[str]