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
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
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
def torsions(mol, **kwargs): return list( GetTopologicalTorsionFingerprint(mol, **kwargs).GetNonzeroElements())