Source code for mordred.DistanceMatrix
from packaging.version import Version as StrictVersion
from ._base import Descriptor
from ._graph_matrix import DistanceMatrix as D
from ._matrix_attributes import SM1, methods, get_method
__all__ = ("DistanceMatrix",)
_version_remove_SM1_D = StrictVersion("1.1.0")
[docs]
class DistanceMatrix(Descriptor):
r"""distance matrix descriptor.
:type type: str
:param type: :ref:`matrix_aggregating_methods`
"""
since = "1.0.0"
__slots__ = ("_type",)
explicit_hydrogens = False
[docs]
def description(self):
return "{} from distance matrix".format(self._type.description())
@classmethod
def preset(cls, version):
if version >= _version_remove_SM1_D:
return (cls(m) for m in methods if m != SM1)
else:
return map(cls, methods)
def __str__(self):
return "{}_D".format(self._type.__name__)
def parameters(self):
return (self._type,)
def __init__(self, type="SpMax"):
self._type = get_method(type)
def dependencies(self):
return {
"result": self._type(
D(self.explicit_hydrogens), self.explicit_hydrogens, self.kekulize
)
}
def calculate(self, result):
return result
rtype = float