rdkit.Chem.AtomPairs.Pairs module¶
Contains an implementation of Atom-pair fingerprints, as described in:
R.E. Carhart, D.H. Smith, R. Venkataraghavan; “Atom Pairs as Molecular Features in Structure-Activity Studies: Definition and Applications” JCICS 25, 64-73 (1985).
The fingerprints can be accessed through the following functions:
- GetAtomPairFingerprint
- GetHashedAtomPairFingerprint (identical to GetAtomPairFingerprint)
- GetAtomPairFingerprintAsIntVect
- GetAtomPairFingerprintAsBitVect
-
rdkit.Chem.AtomPairs.Pairs.ExplainPairScore(score)¶ >>> from rdkit import Chem >>> m = Chem.MolFromSmiles('C=CC') >>> score = pyScorePair(m.GetAtomWithIdx(0),m.GetAtomWithIdx(1),1) >>> ExplainPairScore(score) (('C', 1, 1), 1, ('C', 2, 1)) >>> score = pyScorePair(m.GetAtomWithIdx(0),m.GetAtomWithIdx(2),2) >>> ExplainPairScore(score) (('C', 1, 0), 2, ('C', 1, 1)) >>> score = pyScorePair(m.GetAtomWithIdx(1),m.GetAtomWithIdx(2),1) >>> ExplainPairScore(score) (('C', 1, 0), 1, ('C', 2, 1)) >>> score = pyScorePair(m.GetAtomWithIdx(2),m.GetAtomWithIdx(1),1) >>> ExplainPairScore(score) (('C', 1, 0), 1, ('C', 2, 1))
-
rdkit.Chem.AtomPairs.Pairs.GetAtomPairFingerprintAsBitVect(mol)¶ Returns the Atom-pair fingerprint for a molecule as a SparseBitVect. Note that this doesn’t match the standard definition of atom pairs, which uses counts of the pairs, not just their presence.
Arguments:
- mol: a molecule
Returns: a SparseBitVect
>>> from rdkit import Chem >>> m = Chem.MolFromSmiles('CCC') >>> v = [ pyScorePair(m.GetAtomWithIdx(0),m.GetAtomWithIdx(1),1), ... pyScorePair(m.GetAtomWithIdx(0),m.GetAtomWithIdx(2),2), ... ] >>> v.sort() >>> fp = GetAtomPairFingerprintAsBitVect(m) >>> list(fp.GetOnBits())==v True
-
rdkit.Chem.AtomPairs.Pairs.pyScorePair(at1, at2, dist, atomCodes=None)¶ Returns a score for an individual atom pair.
>>> from rdkit import Chem >>> m = Chem.MolFromSmiles('CCCCC') >>> c1 = Utils.GetAtomCode(m.GetAtomWithIdx(0)) >>> c2 = Utils.GetAtomCode(m.GetAtomWithIdx(1)) >>> c3 = Utils.GetAtomCode(m.GetAtomWithIdx(2)) >>> t = 1 | min(c1,c2)<<numPathBits | max(c1,c2)<<(rdMolDescriptors.AtomPairsParameters.codeSize+numPathBits) >>> pyScorePair(m.GetAtomWithIdx(0),m.GetAtomWithIdx(1),1)==t 1 >>> pyScorePair(m.GetAtomWithIdx(1),m.GetAtomWithIdx(0),1)==t 1 >>> t = 2 | min(c1,c3)<<numPathBits | max(c1,c3)<<(rdMolDescriptors.AtomPairsParameters.codeSize+numPathBits) >>> pyScorePair(m.GetAtomWithIdx(0),m.GetAtomWithIdx(2),2)==t 1 >>> pyScorePair(m.GetAtomWithIdx(0),m.GetAtomWithIdx(2),2, ... atomCodes=(Utils.GetAtomCode(m.GetAtomWithIdx(0)),Utils.GetAtomCode(m.GetAtomWithIdx(2))))==t 1