schrodinger.application.canvas.topo_descriptors module

Module which computes constitutional and topological descriptors, walk and path counts, and connectivity indices.

Details of the descriptors implemented here are taken from: “Handbook of Molecular Descriptors” by Mannhols, Kubinyi and Timmerman “Molecular Descriptors for Chemoinformatics, Vol. I”, by Todeschini and Consonni

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.application.canvas.topo_descriptors.Descriptor(func, cast_type, label, key)

Bases: tuple

__add__

Return self+value.

__class__

alias of builtins.type

__contains__

Return key in self.

__delattr__

Implement delattr(self, name).

__dir__() → list

default dir() implementation

__eq__

Return self==value.

__format__()

default object formatter

__ge__

Return self>=value.

__getattribute__

Return getattr(self, name).

__getitem__

Return self[key].

__getnewargs__()

Return self as a plain tuple. Used by copy and pickle.

__gt__

Return self>value.

__hash__

Return hash(self).

__init__

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

__init_subclass__()

This method is called when a class is subclassed.

The default implementation does nothing. It may be overridden to extend subclasses.

__iter__

Implement iter(self).

__le__

Return self<=value.

__len__

Return len(self).

__lt__

Return self<value.

__module__ = 'schrodinger.application.canvas.topo_descriptors'
__mul__

Return self*value.n

__ne__

Return self!=value.

static __new__(_cls, func, cast_type, label, key)

Create new instance of Descriptor(func, cast_type, label, key)

__reduce__()

helper for pickle

__reduce_ex__()

helper for pickle

__repr__()

Return a nicely formatted representation string

__rmul__

Return self*value.

__setattr__

Implement setattr(self, name, value).

__sizeof__() → int

size of object in memory, in bytes

__slots__ = ()
__str__

Return str(self).

__subclasshook__()

Abstract classes can override this to customize issubclass().

This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).

cast_type

Alias for field number 1

count(value) → integer -- return number of occurrences of value
func

Alias for field number 0

index(value[, start[, stop]]) → integer -- return first index of value.

Raises ValueError if the value is not present.

key

Alias for field number 3

label

Alias for field number 2

exception schrodinger.application.canvas.topo_descriptors.TopoError

Bases: Exception

Error raised when unable to calculate topological descriptor

__cause__

exception cause

__class__

alias of builtins.type

__context__

exception context

__delattr__

Implement delattr(self, name).

__dict__ = mappingproxy({'__module__': 'schrodinger.application.canvas.topo_descriptors', '__doc__': '\n Error raised when unable to calculate topological descriptor\n ', '__weakref__': <attribute '__weakref__' of 'TopoError' objects>})
__dir__() → list

default dir() implementation

__eq__

Return self==value.

__format__()

default object formatter

__ge__

Return self>=value.

__getattribute__

Return getattr(self, name).

__gt__

Return self>value.

__hash__

Return hash(self).

__init__

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

__init_subclass__()

This method is called when a class is subclassed.

The default implementation does nothing. It may be overridden to extend subclasses.

__le__

Return self<=value.

__lt__

Return self<value.

__module__ = 'schrodinger.application.canvas.topo_descriptors'
__ne__

Return self!=value.

__new__()

Create and return a new object. See help(type) for accurate signature.

__reduce__()

helper for pickle

__reduce_ex__()

helper for pickle

__repr__

Return repr(self).

__setattr__

Implement setattr(self, name, value).

__setstate__()
__sizeof__() → int

size of object in memory, in bytes

__str__

Return str(self).

__subclasshook__()

Abstract classes can override this to customize issubclass().

This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).

__suppress_context__
__traceback__
__weakref__

list of weak references to the object (if defined)

args
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

schrodinger.application.canvas.topo_descriptors.cached_topo_descriptor(func, self, *args, **kwargs)

Decorator to extract previously calculated descriptor value from cached descriptors dictionary. If not available, the descriptor is calculated and stored for future reference.

class schrodinger.application.canvas.topo_descriptors.TopologicalDescriptors(default_descriptor_value=None)

Bases: object

__init__(default_descriptor_value=None)

Initializes valid topological descriptors, and creates an empty cached property dictionary.

allDescriptorFullLabels()

Returns all topological descriptor labels as label-key string

Returns:list of all descriptors as “Label (Key)” strings
Return type:list of str
calculateTopologicalDescriptors(st, descriptor_strings)

Calculates a set of topological descriptors for a given structure.

Parameters:
  • st (structure.Structure) – structure to consider
  • descriptor_strings (list of str) – list of descriptors to calculate
Returns:

Structure copy appended with successful descriptor properties

Return type:

structure.Structure

m2ioPropertyName(descriptor)

Create descriptor m2io property name for a Descriptor.

Parameters:descriptor (Descriptor) – descriptor entry
Returns:m2io formatted descriptor property name
Return type:str
__class__

alias of builtins.type

__delattr__

Implement delattr(self, name).

__dict__ = mappingproxy({'__module__': 'schrodinger.application.canvas.topo_descriptors', '__init__': <function TopologicalDescriptors.__init__>, 'allDescriptorFullLabels': <function TopologicalDescriptors.allDescriptorFullLabels>, 'calculateTopologicalDescriptors': <function TopologicalDescriptors.calculateTopologicalDescriptors>, 'm2ioPropertyName': <function TopologicalDescriptors.m2ioPropertyName>, '_extractSingleStructure': <function TopologicalDescriptors._extractSingleStructure>, '_findDescriptorEntry': <function TopologicalDescriptors._findDescriptorEntry>, '_makeFullLabel': <function TopologicalDescriptors._makeFullLabel>, '_evaluateDescriptor': <function TopologicalDescriptors._evaluateDescriptor>, '_getDescriptorEntries': <function TopologicalDescriptors._getDescriptorEntries>, '_assertMultipleHeavyAtoms': <function TopologicalDescriptors._assertMultipleHeavyAtoms>, '_assertPathLength': <function TopologicalDescriptors._assertPathLength>, '_getFirstZagrebIndex': <function TopologicalDescriptors._getFirstZagrebIndex>, '_getFirstZagrebValenceIndex': <function TopologicalDescriptors._getFirstZagrebValenceIndex>, '_getSecondZagrebIndex': <function TopologicalDescriptors._getSecondZagrebIndex>, '_getSecondZagrebValenceIndex': <function TopologicalDescriptors._getSecondZagrebValenceIndex>, '_getPolarityNumber': <function TopologicalDescriptors._getPolarityNumber>, '_getSimpleTopologicalIndex': <function TopologicalDescriptors._getSimpleTopologicalIndex>, '_getHarmonicTopologicalIndex': <function TopologicalDescriptors._getHarmonicTopologicalIndex>, '_getGeometricTopologicalIndex': <function TopologicalDescriptors._getGeometricTopologicalIndex>, '_getTotalStructureConnectivityIndex': <function TopologicalDescriptors._getTotalStructureConnectivityIndex>, '_wienerOperator': <function TopologicalDescriptors._wienerOperator>, '_getWienerIndex': <function TopologicalDescriptors._getWienerIndex>, '_getMeanWienerIndex': <function TopologicalDescriptors._getMeanWienerIndex>, '_getXuIndex': <function TopologicalDescriptors._getXuIndex>, '_getQuadraticIndex': <function TopologicalDescriptors._getQuadraticIndex>, '_getRadialCentricInformationIndex': <function TopologicalDescriptors._getRadialCentricInformationIndex>, '_getMeanSquareDistanceIndex': <function TopologicalDescriptors._getMeanSquareDistanceIndex>, '_getSuperpendenticIndex': <function TopologicalDescriptors._getSuperpendenticIndex>, '_getHararyIndex': <function TopologicalDescriptors._getHararyIndex>, '_getLogPRSIndex': <function TopologicalDescriptors._getLogPRSIndex>, '_getPoglianiIndex': <function TopologicalDescriptors._getPoglianiIndex>, '_baseSchultzIndex': <function TopologicalDescriptors._baseSchultzIndex>, '_getSchultzMolecularTopologicalIndex': <function TopologicalDescriptors._getSchultzMolecularTopologicalIndex>, '_getSchultzMolecularTopologicalValenceIndex': <function TopologicalDescriptors._getSchultzMolecularTopologicalValenceIndex>, '_getMeanDistanceDegreeDeviation': <function TopologicalDescriptors._getMeanDistanceDegreeDeviation>, '_getRamificationIndex': <function TopologicalDescriptors._getRamificationIndex>, '_baseGutmanIndex': <function TopologicalDescriptors._baseGutmanIndex>, '_getGutmanMolecularTopologicalIndex': <function TopologicalDescriptors._getGutmanMolecularTopologicalIndex>, '_getGutmanMolecularTopologicalValenceIndex': <function TopologicalDescriptors._getGutmanMolecularTopologicalValenceIndex>, '_getAverageDistanceDegree': <function TopologicalDescriptors._getAverageDistanceDegree>, '_getUnipolarity': <function TopologicalDescriptors._getUnipolarity>, '_getCentralization': <function TopologicalDescriptors._getCentralization>, '_getVariation': <function TopologicalDescriptors._getVariation>, '_getMolecularElectrotopologicalVariation': <function TopologicalDescriptors._getMolecularElectrotopologicalVariation>, '_getMaximalElectrotopologicalPositiveVariation': <function TopologicalDescriptors._getMaximalElectrotopologicalPositiveVariation>, '_getMaximalElectrotopologicalNegativeVariation': <function TopologicalDescriptors._getMaximalElectrotopologicalNegativeVariation>, '_getEccentricConnectivityIndex': <function TopologicalDescriptors._getEccentricConnectivityIndex>, '_getEccentricity': <function TopologicalDescriptors._getEccentricity>, '_getAverageEccentricity': <function TopologicalDescriptors._getAverageEccentricity>, '_getEccentric': <function TopologicalDescriptors._getEccentric>, '_getValenceConnectivityIndex': <function TopologicalDescriptors._getValenceConnectivityIndex>, '_getMeanValenceConnectivityIndex': <function TopologicalDescriptors._getMeanValenceConnectivityIndex>, '_getQuasiWienerIndex': <function TopologicalDescriptors._getQuasiWienerIndex>, '_getFirstMoharIndex': <function TopologicalDescriptors._getFirstMoharIndex>, '_getSecondMoharIndex': <function TopologicalDescriptors._getSecondMoharIndex>, '_getSpanningTreeNumber': <function TopologicalDescriptors._getSpanningTreeNumber>, '_getBenzeneLikelinessIndex': <function TopologicalDescriptors._getBenzeneLikelinessIndex>, '_getTopologicalChargeIndex': <function TopologicalDescriptors._getTopologicalChargeIndex>, '_getMeanTopologicalChargeIndex': <function TopologicalDescriptors._getMeanTopologicalChargeIndex>, '_getGlobalTopologicalChargeIndex': <function TopologicalDescriptors._getGlobalTopologicalChargeIndex>, '_getHyperDistancePathIndex': <function TopologicalDescriptors._getHyperDistancePathIndex>, '_getReciprocalHyperDistancePathIndex': <function TopologicalDescriptors._getReciprocalHyperDistancePathIndex>, '_getSquareReciprocalDistanceSumIndex': <function TopologicalDescriptors._getSquareReciprocalDistanceSumIndex>, '_getModifiedRandicIndex': <function TopologicalDescriptors._getModifiedRandicIndex>, '_getBalabanCentricIndex': <function TopologicalDescriptors._getBalabanCentricIndex>, '_getLoppingCentricInformationIndex': <function TopologicalDescriptors._getLoppingCentricInformationIndex>, '_getKierHallElectronegativitySum': <function TopologicalDescriptors._getKierHallElectronegativitySum>, '_getTopologicalDistanceSum': <function TopologicalDescriptors._getTopologicalDistanceSum>, '_getBaryszWeinerTypeIndex': <function TopologicalDescriptors._getBaryszWeinerTypeIndex>, '_getElectronegativityWienerTypeIndex': <function TopologicalDescriptors._getElectronegativityWienerTypeIndex>, '_getMassWienerTypeIndex': <function TopologicalDescriptors._getMassWienerTypeIndex>, '_getVDWVolumeWienerTypeIndex': <function TopologicalDescriptors._getVDWVolumeWienerTypeIndex>, '_getPolarizabilityWienerTypeIndex': <function TopologicalDescriptors._getPolarizabilityWienerTypeIndex>, '_getBaryszIndex': <function TopologicalDescriptors._getBaryszIndex>, '_getElectronegativityBalabanTypeIndex': <function TopologicalDescriptors._getElectronegativityBalabanTypeIndex>, '_getMassBalabanTypeIndex': <function TopologicalDescriptors._getMassBalabanTypeIndex>, '_getVDWVolumeBalabanTypeIndex': <function TopologicalDescriptors._getVDWVolumeBalabanTypeIndex>, '_getPolarizabilityBalabanTypeIndex': <function TopologicalDescriptors._getPolarizabilityBalabanTypeIndex>, '_getTopologicalDiameter': <function TopologicalDescriptors._getTopologicalDiameter>, '_getTopologicalRadius': <function TopologicalDescriptors._getTopologicalRadius>, '_getPetitjeanShapeIndex': <function TopologicalDescriptors._getPetitjeanShapeIndex>, '_getBalabanDistanceConnectivityIndex': <function TopologicalDescriptors._getBalabanDistanceConnectivityIndex>, '_getSolvationConnectivityIndex': <function TopologicalDescriptors._getSolvationConnectivityIndex>, '_getConnectivityIndex': <function TopologicalDescriptors._getConnectivityIndex>, '_getMeanConnectivityIndex': <function TopologicalDescriptors._getMeanConnectivityIndex>, '_getRDCHIIndex': <function TopologicalDescriptors._getRDCHIIndex>, '_getRDSQIndex': <function TopologicalDescriptors._getRDSQIndex>, '_getKierAlphaModifiedShapeIndex': <function TopologicalDescriptors._getKierAlphaModifiedShapeIndex>, '_getKierMolecularFlexibilityIndex': <function TopologicalDescriptors._getKierMolecularFlexibilityIndex>, '_getMolecularPathWalkIndex': <function TopologicalDescriptors._getMolecularPathWalkIndex>, '_getEStateIndex': <function TopologicalDescriptors._getEStateIndex>, '_getChiralAtomCount': <function TopologicalDescriptors._getChiralAtomCount>, '_getRingCount': <function TopologicalDescriptors._getRingCount>, '_getAtomCount': <function TopologicalDescriptors._getAtomCount>, '_getBondCount': <function TopologicalDescriptors._getBondCount>, '_getRingAtomCount': <function TopologicalDescriptors._getRingAtomCount>, '_getRingBondCount': <function TopologicalDescriptors._getRingBondCount>, '_getNumberRingSystems': <function TopologicalDescriptors._getNumberRingSystems>, '_getNormalizedNumberRingSystems': <function TopologicalDescriptors._getNormalizedNumberRingSystems>, '_getRingFusionDegree': <function TopologicalDescriptors._getRingFusionDegree>, '_getTotalRingSize': <function TopologicalDescriptors._getTotalRingSize>, '_getRingPerimeter': <function TopologicalDescriptors._getRingPerimeter>, '_getRingBridges': <function TopologicalDescriptors._getRingBridges>, '_getMolecularCyclizedDegree': <function TopologicalDescriptors._getMolecularCyclizedDegree>, '_getRingFusionDensity': <function TopologicalDescriptors._getRingFusionDensity>, '_getRingComplexityIndex': <function TopologicalDescriptors._getRingComplexityIndex>, '_getTotalVDWSurfaceArea': <function TopologicalDescriptors._getTotalVDWSurfaceArea>, '_getPVSAMolarRefractivity': <function TopologicalDescriptors._getPVSAMolarRefractivity>, '_getPVSAlogP': <function TopologicalDescriptors._getPVSAlogP>, '_getPVSAPartialCharges': <function TopologicalDescriptors._getPVSAPartialCharges>, '_getHeavyStructure': <function TopologicalDescriptors._getHeavyStructure>, '_getFullStructure': <function TopologicalDescriptors._getFullStructure>, '_getChmMol': <function TopologicalDescriptors._getChmMol>, '_getHydrogenCount': <function TopologicalDescriptors._getHydrogenCount>, '_getAtomIndices': <function TopologicalDescriptors._getAtomIndices>, '_getAtomPairs': <function TopologicalDescriptors._getAtomPairs>, '_getBondIndices': <function TopologicalDescriptors._getBondIndices>, '_getAdjacencyMatrix': <function TopologicalDescriptors._getAdjacencyMatrix>, '_getVertexDegree': <function TopologicalDescriptors._getVertexDegree>, '_getSimpleValenceVertexDegree': <function TopologicalDescriptors._getSimpleValenceVertexDegree>, '_getValenceVertexDegree': <function TopologicalDescriptors._getValenceVertexDegree>, '_getConnectivityGraph': <function TopologicalDescriptors._getConnectivityGraph>, '_getDistanceMatrix': <function TopologicalDescriptors._getDistanceMatrix>, '_getReciprocalDistanceMatrix': <function TopologicalDescriptors._getReciprocalDistanceMatrix>, '_getReciprocalSquareDistanceMatrix': <function TopologicalDescriptors._getReciprocalSquareDistanceMatrix>, '_getVertexDistanceDegree': <function TopologicalDescriptors._getVertexDistanceDegree>, '_getAtomEccentricity': <function TopologicalDescriptors._getAtomEccentricity>, '_getDistanceCount': <function TopologicalDescriptors._getDistanceCount>, '_getReciprocalDistanceSum': <function TopologicalDescriptors._getReciprocalDistanceSum>, '_getConnectivityPaths': <function TopologicalDescriptors._getConnectivityPaths>, '_getCyclomaticNumber': <function TopologicalDescriptors._getCyclomaticNumber>, '_getIntrinsicStates': <function TopologicalDescriptors._getIntrinsicStates>, '_getFieldEffects': <function TopologicalDescriptors._getFieldEffects>, '_getLaplacianEigenvalues': <function TopologicalDescriptors._getLaplacianEigenvalues>, '_getChargeTermMatrix': <function TopologicalDescriptors._getChargeTermMatrix>, '_getAromaticBonds': <function TopologicalDescriptors._getAromaticBonds>, '_getConventionalBondOrder': <function TopologicalDescriptors._getConventionalBondOrder>, '_getMultigraphDistanceMatrix': <function TopologicalDescriptors._getMultigraphDistanceMatrix>, '_getBaryszDistanceMatrix': <function TopologicalDescriptors._getBaryszDistanceMatrix>, '_getElectronegativityDistanceMatrix': <function TopologicalDescriptors._getElectronegativityDistanceMatrix>, '_getMassDistanceMatrix': <function TopologicalDescriptors._getMassDistanceMatrix>, '_getVDWVolumeDistanceMatrix': <function TopologicalDescriptors._getVDWVolumeDistanceMatrix>, '_getPolarizabilityDistanceMatrix': <function TopologicalDescriptors._getPolarizabilityDistanceMatrix>, '_getAtomicWalkCounts': <function TopologicalDescriptors._getAtomicWalkCounts>, '_getVDWSurfaceArea': <function TopologicalDescriptors._getVDWSurfaceArea>, '_balbanOperator': <function TopologicalDescriptors._balbanOperator>, '_centricIndexSum': <function TopologicalDescriptors._centricIndexSum>, '_generalizedConnectivityIndex': <function TopologicalDescriptors._generalizedConnectivityIndex>, '_propertyRangeVDWSurfaceArea': <function TopologicalDescriptors._propertyRangeVDWSurfaceArea>, '__dict__': <attribute '__dict__' of 'TopologicalDescriptors' objects>, '__weakref__': <attribute '__weakref__' of 'TopologicalDescriptors' objects>, '__doc__': None})
__dir__() → list

default dir() implementation

__eq__

Return self==value.

__format__()

default object formatter

__ge__

Return self>=value.

__getattribute__

Return getattr(self, name).

__gt__

Return self>value.

__hash__

Return hash(self).

__init_subclass__()

This method is called when a class is subclassed.

The default implementation does nothing. It may be overridden to extend subclasses.

__le__

Return self<=value.

__lt__

Return self<value.

__module__ = 'schrodinger.application.canvas.topo_descriptors'
__ne__

Return self!=value.

__new__()

Create and return a new object. See help(type) for accurate signature.

__reduce__()

helper for pickle

__reduce_ex__()

helper for pickle

__repr__

Return repr(self).

__setattr__

Implement setattr(self, name, value).

__sizeof__() → int

size of object in memory, in bytes

__str__

Return str(self).

__subclasshook__()

Abstract classes can override this to customize issubclass().

This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).

__weakref__

list of weak references to the object (if defined)

schrodinger.application.canvas.topo_descriptors.check_canvas_license()

Check that a CANVAS_FULL license is available to use

schrodinger.application.canvas.topo_descriptors.matrix_reciprocal(matrix)

Returns a matrix whose elements are the reciprocal of each of the elements of the original matrix. The diagonal of the matrix must be zeros, and the routine assumes that no other zeros exist in the matrix.