schrodinger.application.bioluminate.patch_utils.patch_finder module

schrodinger.application.bioluminate.patch_utils.patch_finder.read_asl_file(basename)
schrodinger.application.bioluminate.patch_utils.patch_finder.write_asl_file(basename, asl)
schrodinger.application.bioluminate.patch_utils.patch_finder.get_connected_components(st)

Determine all covalently connected components of st (i.e. unbroken chain segments).

Returns:A tuple of: - A list of list of residue names (str). Each list of residue names
represents a single covalently connected component.
schrodinger.application.bioluminate.patch_utils.patch_finder.calc_agg_scores(patches, res_lists)

Calculate Aggregation propensity scores for each residue.

Parameters:
  • patches (list of Patch objects) – List of patches from which to read the residues.
  • res_lists (list of lists of str) – Each list of residues represents a single covalently connected component/sequence. Each residue is in format “A:123i”.
schrodinger.application.bioluminate.patch_utils.patch_finder.triangle_area(coords)

Calculate the area of a triangle defined by three vertices

Parameters:coords (list) – A list of (x, y, z) coordinates for each vertex of the triangle, where each coordinate is a numpy array.
Returns:The area of the specified triangle
Return type:float
Note:The formula used here is taken from http://mathworld.wolfram.com/TriangleArea.html
class schrodinger.application.bioluminate.patch_utils.patch_finder.Patch(vertices, patch_type, vertex_coords, all_smoothed, neighboring_triangles, neighboring_vertices, nearest_atom_indices, patch_color)

Bases: object

Data about a single patch.

RES_TYPES = {'Arginine': 'ARG', 'Cysteine': 'CYS', 'Tryptophan': 'TRP', 'Tyrosine': 'TYR'}
__init__(vertices, patch_type, vertex_coords, all_smoothed, neighboring_triangles, neighboring_vertices, nearest_atom_indices, patch_color)
Parameters:
  • vertices (set) – A set of all vertices that belong to this patch
  • patch_type (settings.PatchType) – The type of patch this is
  • vertex_coords (list) – The (x, y, z) coordinates for each surface vertex
  • all_smoothed (list) – The smoothed value for each vertex
  • neighboring_triangles (list) – A list of neighboring triangles for each vertex, where each triangle is represented as a frozenset of three vertex indices.
  • neighboring_vertices (list) – A list of neighboring vertices for each vertex. Neighbors are given as a set.
  • nearest_atom_indices (list) – A list of the nearest atom index for each vertex.

@patch_color: color of the patch (r,g,b)

detailsData()

Generate a list describing the details of this patch

Returns:A list of details for the patch, where each detail is a list of [group, category, patch details for that category]
Return type:list
class schrodinger.application.bioluminate.patch_utils.patch_finder.ResInfo(res, zyggregator=None, aggrescan=None, aggscore=0.0)

Bases: object

Data about a single residue. Includes aggregation, surface area, and reactive residue grouping data.

__init__(res, zyggregator=None, aggrescan=None, aggscore=0.0)
Parameters:
  • res (schrodinger.structure._Residue) – The residue that this aggregation data describes
  • zyggregator (float) – The Zyggregator score for the residue
  • aggrescan (float) – The Aggrescan score for the residue
fullname

The full residue name, formatted similar to A:TYR100.

getIdStr()

Return a string ID for this residue, e.g. “A:2b” - same format as structure._Residue.___str__() return value.

getAsl()

Return the ASL for finding this residue by chain/resnum/inscode.

schrodinger.application.bioluminate.patch_utils.patch_finder.ResData

alias of schrodinger.application.bioluminate.patch_utils.patch_finder.ResInfo

class schrodinger.application.bioluminate.patch_utils.patch_finder.ResPatchData(patch, res_info, contribution)

Bases: object

This class represents a residue’s contribution to a patch.

__init__(patch, res_info, contribution)

Initialize self. See help(type(self)) for accurate signature.

getAsl()

Return the ASL for finding this patch’s residue by chain/resnum/inscode.

class schrodinger.application.bioluminate.patch_utils.patch_finder.ProteinProperties(struc, asa_by_atom)

Bases: object

Calculates protein-level properties. Properties will be stored at the ct-level and returned for display on the Properties tab

Variables:KYTE_DOOLITTLE_SCALE (dict) – A hydrophobicity scale taken from A simple method for displaying the hydropathic character of a protein. J. Kyte, R.F. Doolittle, J Mol Biol. 1982 May 5;157(1):105-32.
KYTE_DOOLITTLE_SCALE = {'ALA': 1.8, 'ARG': -4.5, 'ASN': -3.5, 'ASP': -3.5, 'CYS': 2.5, 'GLN': -3.5, 'GLU': -3.5, 'GLY': -0.4, 'HID': -3.2, 'HIE': -3.2, 'HIP': -3.2, 'HIS': -3.2, 'ILE': 4.5, 'LEU': 3.8, 'LYS': -3.9, 'MET': 1.9, 'PHE': 2.8, 'PRO': -1.6, 'SER': -0.8, 'THR': -0.7, 'TRP': -0.9, 'TYR': -1.3, 'VAL': 4.2}
__init__(struc, asa_by_atom)
Parameters:
  • struc (schrodinger.structure.Structure) – The structure to calculate the properties of
  • asa_by_atom (OneIndexedList) – The accessible surface area of each atom
class schrodinger.application.bioluminate.patch_utils.patch_finder.PatchAnalysis(st, surf, asl, clogp_smoothed, partial_charge_smoothed, neighboring_vertices, neighboring_triangles, res_data_by_vertex, prot_properties)

Bases: object

Object representing a pre-analysis instance, which is saved by the backend and loaded into the GUI. It is also saved/restored when panel state is saved and restored.

__init__(st, surf, asl, clogp_smoothed, partial_charge_smoothed, neighboring_vertices, neighboring_triangles, res_data_by_vertex, prot_properties)
Parameters:
  • st (structure.Structure) – Analyzed structure.
  • surf (schrodinger.surface.Surface) – The surface to find patches on
  • asl (str) – Asl for atoms that were analyzed
  • clogp_smoothed (list) – The cLogP (hydrophobicity) values smoothed over the surface. This list contains the smoothed value at each surface vertex.
  • partial_charge_smoothed (list) – The partial charge values smoothed over the surface. This list contains the smoothed value at each surface vertex.
  • neighboring_vertices (list) – A list of neighboring vertices for each vertex.
  • neighboring_triangles (list) – A list of neighboring triangles for each vertex, where each triangle is represented as a frozenset of three vertex indices.
  • res_data_by_vertex (list) – A list of residue data for each vertex. The ResInfo object is given for the residue closest to the vertex.
  • prot_properties (ProteinProperties) – The protein properties to be loaded into the Properties tab.
write(basename)
classmethod read(basename)

Read the PreAnalyzer data from the specified basename and use it to create a PatchFinder object.

Parameters:basename (str) – The basename for the PreAnalyzer output files
class schrodinger.application.bioluminate.patch_utils.patch_finder.PreAnalyzer(struc, asl)

Bases: object

Perform patch finding calculations that only need to be done once per structure. This class is intended to be run under job control.

__init__(struc, asl)
Parameters:
  • struc (schrodinger.structure.Structure) – The structure to analyze
  • asl (str) – An ASL describing atoms of struc to analyze
classmethod readAndRun(basename)

Read a structure and ASL from the specified files and run the analysis.

Parameters:basename (str) – The full path to the file to analyzes except the “.maegz” and “.txt” extensions
Returns:The completed pre-analysis
Return type:PreAnalyzer
run()

Perform the pre-analysis. The results will be stored in instance attributes and can be written to a pickle file using write.

write(basename)

Write out the surface and all calculated values

Parameters:basename (str) – The filename to write the output to. The surface will be written to basename.vis and the calculated values will be written to basename.pkl.
getAnalysis()
class schrodinger.application.bioluminate.patch_utils.patch_finder.PatchFinder(analysis)

Bases: object

Find surface patches using the output of PreAnalyzer. This object is intended to run in a separate thread and therefore must not use mmlibs after initialization.

__init__(analysis)

Class for grouping patches from a PatchAnalysis object based on specific settings.

Parameters:analysis (PatchAnalysis) – Pre-analysis object
classmethod read(basename)

Read the PreAnalyzer data from the specified basename and use it to create a PatchFinder object.

Parameters:basename (str) – The basename for the PreAnalyzer output files
write(basename)
calculate(settings)

Calculate patches and residue aggregation data using the specified settings. # NOTE: This method runs from within a thread, so it should not access # any mmlibs code.

Parameters:settings (settings.PatchSettings) – The settings to use for the patch calculations
Returns:A tuple of: - the calculated patches as a list of Patch objects - the residue aggregation data as a list of {ResidueAggData} objects
Return type:tuple
getColorsForPatchVertices(patch, psettings)

Return colors for all vertices of the given patch.

Parameters:patch (patch_finder.Patch) – Patch to get colors for.
Returns:Colors for each vertex of the patch
Return type:list of (float, float, float)
colorSurfByPatches(surf, patches, psettings)
class schrodinger.application.bioluminate.patch_utils.patch_finder.PatchFinderRunner(finder, settings)

Bases: PyQt5.QtCore.QObject

An object used to run the PatchFinder analysis in a separate thread.

Variables:patchesFound (QtCore.pyqtSignal) – A signal emitted when the PatchFinder analysis completes. Emits all return values of PatchFinder.calculate.
patchesFound
__init__(finder, settings)

Initialize self. See help(type(self)) for accurate signature.

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)
run()

Run the PatchFinder analysis and emit patchesFound when complete.

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