from ._base import Descriptor
from ._common import Eccentricity, Valence
[docs]class EccentricConnectivityIndex(Descriptor):
r"""eccentric connectivity index descriptor.
.. math::
I_{\rm EC} = \sum^A_i {\boldsymbol E}{\boldsymbol V}
where
:math:`E` is eccentricity of atoms,
:math:`V` is valences of atoms.
"""
__slots__ = ()
explicit_hydrogens = False
@classmethod
def preset(cls):
yield cls()
def __str__(self):
return 'ECIndex'
def __reduce_ex__(self, version):
return self.__class__, ()
def dependencies(self):
return dict(
E=Eccentricity(self.explicit_hydrogens),
V=Valence(self.explicit_hydrogens),
)
def calculate(self, mol, E, V):
return int((E.astype('int') * V).sum())
rtype = int