From 75771be09093faf059b701b1a02755ec8ae02f3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20B=C3=A9renger?= Date: Tue, 17 Sep 2024 19:19:23 +0900 Subject: [PATCH] Update SA score to use FingerprintGenerators (#7795) * modernize Contrib/SA_Score/sascorer.py this is impacted by some new deprecation warning: we need to use rdFingerprintGenerator * we need to use the "legacy" Morgan fingerprint length to keep the obtained scores invariant * Update Contrib/SA_Score/sascorer.py Co-authored-by: Greg Landrum * Update Contrib/SA_Score/sascorer.py Co-authored-by: Greg Landrum --------- Co-authored-by: Francois Berenger Co-authored-by: Greg Landrum --- Contrib/SA_Score/sascorer.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Contrib/SA_Score/sascorer.py b/Contrib/SA_Score/sascorer.py index 88566f73d..2ade6f303 100644 --- a/Contrib/SA_Score/sascorer.py +++ b/Contrib/SA_Score/sascorer.py @@ -22,7 +22,7 @@ import pickle from collections import defaultdict from rdkit import Chem -from rdkit.Chem import rdMolDescriptors +from rdkit.Chem import rdMolDescriptors, rdFingerprintGenerator _fscores = None @@ -46,14 +46,14 @@ def numBridgeheadsAndSpiro(mol, ri=None): nBridgehead = rdMolDescriptors.CalcNumBridgeheadAtoms(mol) return nBridgehead, nSpiro +mfpgen = rdFingerprintGenerator.GetMorganGenerator(radius=2) def calculateScore(m): if _fscores is None: readFragmentScores() # fragment score - fp = rdMolDescriptors.GetMorganFingerprint(m, - 2) # <- 2 is the *radius* of the circular fingerprint + fp = mfpgen.GetSparseCountFingerprint(m) fps = fp.GetNonzeroElements() score1 = 0. nf = 0