示例#1
0
def GetTopologicalTorsionFingerprintAsIds(mol, targetSize=4):
    iv = GetTopologicalTorsionFingerprint(mol, targetSize)
    res = []
    for k, v in iv.GetNonzeroElements().iteritems():
        res.extend([k] * v)
    res.sort()
    return res
示例#2
0
def GetTopologicalTorsionFingerprintAsIds(mol, targetSize=4):
    nonZeroElements = GetTopologicalTorsionFingerprint(
        mol, targetSize).GetNonzeroElements()
    frequencies = sorted(nonZeroElements.items())
    res = []
    for k, v in frequencies:
        res.extend([k] * v)
    return res
示例#3
0
    def _transform_mol(self, mol):
        """ Private method to transform a skchem molecule.
        Args:
            mol (skchem.Mol): Molecule to calculate fingerprint for.

        Returns:
            np.array or dict:
                Fingerprint as an array (or a dict if sparse).
        """

        if self.as_bits and self.n_feats > 0:

            fp = GetHashedTopologicalTorsionFingerprintAsBitVect(
                mol,
                nBits=self.n_feats,
                targetSize=self.target_size,
                includeChirality=self.use_chirality)

            res = np.array(0)
            ConvertToNumpyArray(fp, res)
            res = res.astype(np.uint8)

        else:

            if self.n_feats <= 0:

                res = GetTopologicalTorsionFingerprint(
                    mol,
                    nBits=self.n_feats,
                    targetSize=self.target_size,
                    includeChirality=self.use_chirality)

                res = res.GetNonzeroElements()
                if self.as_bits:
                    res = {k: int(v > 0) for k, v in res.items()}

            else:
                res = GetHashedTopologicalTorsionFingerprint(
                    mol,
                    nBits=self.n_feats,
                    targetSize=self.target_size,
                    includeChirality=self.use_chirality)

                res = np.array(list(res))

        return res
示例#4
0
def torsions(mol, **kwargs):
    return list(
        GetTopologicalTorsionFingerprint(mol, **kwargs).GetNonzeroElements())