Hi James,
some time ago I implemented a filter function during a pdb mining
campaign. The Idea was to exclude compounds to far away from drug like
chemical matter.
The function I wrote is not the prettiest one, but it is somehow
complementary to your substructure matching. The filter function uses
typical descriptors you might want to have in a filter routine, so
maybe this can give some inspiration. I added the import statement and
some print statements in order to make cut and paste play-arounds
easier:
----Snip------------------------
from Chem import Descriptors, Crippen, Lipinski, AvailDescriptors
#For more Descriptors try AvailDescriptors.descList
def DLfilter(mol):
try:
if Descriptors.MolWt(mol) <= 100 or Descriptors.MolWt(mol)
>=800:
print 'Failed in filter function
MolWt:',Descriptors.MolWt(mol)
return False
if Lipinski.NumHDonors(mol) >= 5:
print 'Failed in filter function
NumHDonors:',Lipinski.NumHDonors(mol)
return False
if Lipinski.NumHAcceptors(mol) >= 10:
print 'Failed in filter function
NumHAcceptors:',Lipinski.NumHAcceptors(mol)
return False
if Crippen.MolLogP(mol) <= -4 or Crippen.MolLogP(mol) >=
6:
print 'Failed in filter function LogP:',Crippen.MolLogP(mol)
return False
if Lipinski.NumRotatableBonds(mol) >= 15:
print 'Failed in filter function
NumRotatableBonds:',Lipinski.NumRotatableBonds(mol)
return False
else:
return True
except:
print "D'oh"
return False
----Snip------------------------
Kind regards,
Markus
James Davidson wrote:
Hi Greg,
Thanks for the reply.
1. In RDKit, has the 'cleaning / washing / salt-stripping' of
molecules already been formalised based on a set of rules, etc?
Not that I'm aware of on the open-source side of things. All
of the functionality required to do this is, I believe,
present in the RDKit though.
Great - I certainly found all the functionality I was looking for, but just wanted to make sure I wasn't missing any short-cuts!
2. When identifying compounds that contain a non-allowed
atom-type,
why do I find the SMARTS def [!H;!C;!N;!O;!F;!S;!Cl;!Br;!I] gives
unexpected results, but [!#1;!#6;!#7;!#8;!#9;!#16;!#17;!#35;!#53]
works as I would expect?
This is a fairly common SMARTS "gotcha": in SMARTS the query "[C]"
means "aliphatic C". This leads to the following behavior:
[3]>>>
Chem.MolFromSmiles('c1ccccc1').GetSubstructMatches(Chem.MolFro
mSmarts('[!C]'))
Out[3] ((0,), (1,), (2,), (3,), (4,), (5,)) If you want to be
sure that your SMARTS will capture aliphatic or aromatic
atoms, you need to provide the atomic numbers, as in your
second query:
[4]>>>
Chem.MolFromSmiles('c1ccccc1').GetSubstructMatches(Chem.MolFro
mSmarts('[!#6]'))
Out[4] ()
Wow - I really was having some sort of mental block yesterday! (goes-off to look for some sort of embarrassed + dunce smiley...)
Kind regards
James
______________________________________________________________________
PLEASE READ: This email is confidential and may be privileged. It is intended for the named addressee(s) only and access to it by anyone else is unauthorised. If you are not an addressee, any disclosure or copying of the contents of this email or any action taken (or not taken) in reliance on it is unauthorised and may be unlawful. If you have received this email in error, please notify the sender or [email protected]. Email is not a secure method of communication and the Company cannot accept responsibility for the accuracy or completeness of this message or any attachment(s). Please check this email for virus infection for which the Company accepts no responsibility. If verification of this email is sought then please request a hard copy. Unless otherwise stated, any views or opinions presented are solely those of the author and do not represent those of the Company.
The Vernalis Group of Companies
Oakdene Court
613 Reading Road
Winnersh, Berkshire
RG41 5UA.
Tel: +44 118 977 3133
To access trading company registration and address details, please go to the Vernalis website at www.vernalis.com and click on the "Company address and registration details" link at the bottom of the page..
______________________________________________________________________
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
|