Dear Rdkit Community,
I am trying to generate 2D Pharmacophore Fingerprints, for now I using the
settings described in this example
https://www.rdkit.org/docs/GettingStartedInPython.html#d-pharmacophore-fingerprints
but with the feature definitions file being BaseFeatures.fdef.
I am able to generate the fingerprints for some of the molecules I am
interested in, but it fails for other molecules raising a IndexError.
Is it possible to fix this? Or is it the case that for some molecules it is not
possible to generate 2D pharmacophore fingerprints with this RDKit method?
Thank you in advance!
Best regards,
Fábio
Example:
.. code:: ipython3
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import ChemicalFeatures
from rdkit.RDPaths import RDDataDir
import os
import rdkit
rdkit.__version__
.. parsed-literal::
'2020.03.3'
.. code:: ipython3
fdefFile = os.path.join(RDDataDir,'BaseFeatures.fdef')
featFactory = ChemicalFeatures.BuildFeatureFactory(fdefFile)
.. code:: ipython3
from rdkit.Chem.Pharm2D.SigFactory import SigFactory
# I am using the settings used in the example below:
#
https://www.rdkit.org/docs/GettingStartedInPython.html#d-pharmacophore-fingerprints
sigFactory = SigFactory(featFactory,minPointCount=2,maxPointCount=3)
sigFactory.SetBins([(0,2),(2,5),(5,8)])
sigFactory.Init()
sigFactory.GetSigSize()
.. parsed-literal::
2988
**1st example:**
.. code:: ipython3
smiles_6ZU = 'Cc1c(Cc2ccccc2)c(=O)oc2cc(OS(C)(=O)=O)ccc12'
mol_6ZU = Chem.MolFromSmiles(smiles_6ZU)
mol_6ZU
.. code:: ipython3
from rdkit.Chem.Pharm2D import Generate
Generate.Gen2DFingerprint(mol_6ZU,sigFactory)
::
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
~/anaconda3/lib/python3.7/site-packages/rdkit/Chem/Pharm2D/SigFactory.py in
GetBitIdx(self, featIndices, dists, sortIndices)
248 print('\tbins:', repr(self._bins), type(self._bins))
--> 249 bin_ = self._findBinIdx(dists, self._bins,
self._scaffolds[len(dists)])
250 except ValueError:
~/anaconda3/lib/python3.7/site-packages/rdkit/Chem/Pharm2D/SigFactory.py in
_findBinIdx(self, dists, bins, scaffolds)
167 whichBins[i] = where
--> 168 res = scaffolds.index(tuple(whichBins))
169 if _verbose:
ValueError: (0, 2, 0) is not in list
During handling of the above exception, another exception occurred:
IndexError Traceback (most recent call last)
<ipython-input-6-faf364adc252> in <module>
1 from rdkit.Chem.Pharm2D import Generate
----> 2 Generate.Gen2DFingerprint(mol_6ZU,sigFactory)
~/anaconda3/lib/python3.7/site-packages/rdkit/Chem/Pharm2D/Generate.py in
Gen2DFingerprint(mol, sigFactory, perms, dMat, bitInfo)
160 for match in matchesToMap:
161 if sigFactory.shortestPathsOnly:
--> 162 idx = _ShortestPathsMatch(match, perm, sig, dMat,
sigFactory)
163 if idx is not None and bitInfo is not None:
164 l = bitInfo.get(idx, [])
~/anaconda3/lib/python3.7/site-packages/rdkit/Chem/Pharm2D/Generate.py in
_ShortestPathsMatch(match, featureSet, sig, dMat, sigFactory)
71 dist[i] = d
72
---> 73 idx = sigFactory.GetBitIdx(featureSet, dist, sortIndices=False)
74 if _verbose:
75 print('\t', dist, minD, maxD, idx)
~/anaconda3/lib/python3.7/site-packages/rdkit/Chem/Pharm2D/SigFactory.py in
GetBitIdx(self, featIndices, dists, sortIndices)
252 fams = [fams[x] for x in featIndices]
253 raise IndexError('distance bin not found: feats: %s;
dists=%s; bins=%s; scaffolds: %s' %
--> 254 (fams, dists, self._bins,
self._scaffolds))
255
256 return startIdx + offset + bin_
IndexError: distance bin not found: feats: ['Acceptor', 'Aromatic',
'Hydrophobe']; dists=[1, 5, 1]; bins=[(0, 2), (2, 5), (5, 8)]; scaffolds: [0,
[(0,), (1,), (2,)], 0, [(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (0, 1, 2),
(0, 2, 1), (0, 2, 2), (1, 0, 0), (1, 0, 1), (1, 0, 2), (1, 1, 0), (1, 1, 1),
(1, 1, 2), (1, 2, 0), (1, 2, 1), (1, 2, 2), (2, 0, 1), (2, 0, 2), (2, 1, 0),
(2, 1, 1), (2, 1, 2), (2, 2, 0), (2, 2, 1), (2, 2, 2)], 0]
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss