rdkit.Chem.AtomPairs.Sheridan module — The RDKit 2025.09.6 documentation

# rdkit.Chem.AtomPairs.Sheridan module

Contains an implementation of Physicochemical property fingerprints, as described in: Kearsley, S. K. et al. “Chemical Similarity Using Physiochemical Property Descriptors.” J. Chem.Inf. Model. 36, 118-127 (1996)

The fingerprints can be accessed through the following functions: - GetBPFingerprint - GetBTFingerprint

rdkit.Chem.AtomPairs.Sheridan.AssignPattyTypes(mol, defns=None)

      >>> from rdkit import Chem
      >>> AssignPattyTypes(Chem.MolFromSmiles('OCC(=O)O'))
      ['POL', 'HYD', 'OTH', 'ANI', 'ANI']

rdkit.Chem.AtomPairs.Sheridan.GetBPFingerprint(mol, fpfn=<function _atomPairFingerprintFunc>)

      >>> from rdkit import Chem
      >>> fp = GetBPFingerprint(Chem.MolFromSmiles('OCC(=O)O'))
      >>> fp.GetTotalVal()
      10
      >>> nze = fp.GetNonzeroElements()
      >>> sorted([(k, v) for k, v in nze.items()])
      [(32834, 1), (49219, 2), (98370, 2), (98401, 1), (114753, 2), (114786, 1), (114881, 1)]

rdkit.Chem.AtomPairs.Sheridan.GetBTFingerprint(mol, fpfn=<function _topologicalTorsionsFingerprintFunc>)

      >>> from rdkit import Chem
      >>> mol = Chem.MolFromSmiles('OCC(N)O')
      >>> AssignPattyTypes(mol)
      ['POL', 'HYD', 'HYD', 'CAT', 'POL']
      >>> fp = GetBTFingerprint(mol)
      >>> fp.GetTotalVal()
      2
      >>> nze = fp.GetNonzeroElements()
      >>> sorted([(k, v) for k, v in nze.items()])
      [(538446850..., 1), (538446852..., 1)]