mordred/surface_area/_sasa.py
def atomic_sa(self, i):
        r"""Calculate atomic surface area.

        :type i: int
        :param i: atom index

        :rtype: float
        """
        sa = 4.0 * np.pi * self.rads2[i]

        neighbors = self.neighbors.get(i)

        if neighbors is None:
            return sa

        XYZi = self.xyzs[i, np.newaxis].T

        sphere = self.sphere * self.rads[i] + XYZi
        N = sphere.shape[1]

        for j, _ in neighbors:
            XYZj = self.xyzs[j, np.newaxis].T

            d2 = (sphere - XYZj) ** 2
            mask = (d2[0] + d2[1] + d2[2]) > self.rads2[j]
            sphere = np.compress(mask, sphere, axis=1)

        return sa * sphere.shape[1] / N
def atomic_sa(self, i):
        r"""Calculate atomic surface area.

        :type i: int
        :param i: atom index

        :rtype: float
        """
        sa = 4.0 * np.pi * self.rads2[i]

        neighbors = self.neighbors.get(i)

        if neighbors is None:
            return sa

        XYZi = self.xyzs[i, np.newaxis].T

        sphere = self.sphere * self.rads[i] + XYZi
        N = sphere.shape[1]

        for j, _ in neighbors:
            XYZj = self.xyzs[j, np.newaxis].T

            d2 = (sphere - XYZj) ** 2
            mask = (d2[0] + d2[1] + d2[2]) > self.rads2[j]
            sphere = np.compress(mask, sphere, axis=1)

        return sa * sphere.shape[1] / N
def atomic_sa ( self , i ) : sa = 4.0 * np . pi * self . rads2 [ i ] neighbors = self . neighbors . get ( i ) if neighbors is None : return sa XYZi = self . xyzs [ i , np . newaxis ] . T sphere = self . sphere * self . rads [ i ] + XYZi N = sphere . shape [ 1 ] for j , _ in neighbors : XYZj = self . xyzs [ j , np . newaxis ] . T d2 = ( sphere - XYZj ) ** 2 mask = ( d2 [ 0 ] + d2 [ 1 ] + d2 [ 2 ] ) > self . rads2 [ j ] sphere = np . compress ( mask , sphere , axis = 1 ) return sa * sphere . shape [ 1 ] / N
r"""Calculate atomic surface area.

        :type i: int
        :param i: atom index

        :rtype: float
r Calculate atomic surface area .