Package rdkit :: Package Chem :: Package ChemUtils :: Module BulkTester
[hide private]
[frames] | no frames]

Source Code for Module rdkit.Chem.ChemUtils.BulkTester

 1  # $Id: BulkTester.py 1528 2010-09-26 17:04:37Z glandrum $ 
 2  # 
 3  #  Copyright (C) 2005-2006 Rational Discovery LLC 
 4  # 
 5  #   @@ All Rights Reserved @@ 
 6  #  This file is part of the RDKit. 
 7  #  The contents are covered by the terms of the BSD license 
 8  #  which is included in the file license.txt, found at the root 
 9  #  of the RDKit source tree. 
10  # 
11  from rdkit import Chem 
12  import sys 
13  from rdkit.Chem import Randomize 
14   
15 -def TestMolecule(mol):
16 try: 17 Chem.SanitizeMol(mol) 18 mol = Chem.RemoveHs(mol) 19 except ValueError,msg: 20 return -1 21 except: 22 import traceback 23 traceback.print_exc() 24 return -2 25 if mol.GetNumAtoms(): 26 try: 27 Randomize.CheckCanonicalization(mol,10) 28 except: 29 import traceback 30 traceback.print_exc() 31 return -3 32 return 0
33 34
35 -def TestSupplier(suppl,stopAfter=-1,reportInterval=100,reportTo=sys.stderr, 36 nameProp='_Name'):
37 nDone = 0 38 nFailed = 0 39 while 1: 40 try: 41 mol = suppl.next() 42 except StopIteration: 43 break 44 except: 45 import traceback 46 traceback.print_exc() 47 nFailed += 1 48 reportTo.flush() 49 print >>reportTo,'Failure at mol %d'%nDone 50 else: 51 if mol: 52 ok = TestMolecule(mol) 53 else: 54 ok = -3 55 if ok<0: 56 nFailed += 1 57 reportTo.flush() 58 if ok==-3: 59 print >>reportTo,'Canonicalization', 60 print >>reportTo,'Failure at mol %d'%nDone, 61 if mol: 62 print >>reportTo,mol.GetProp(nameProp), 63 print >>reportTo,'' 64 65 66 nDone += 1 67 if nDone==stopAfter: 68 break 69 if not nDone%reportInterval: 70 print 'Done %d molecules, %d failures'%(nDone,nFailed) 71 return nDone,nFailed
72 if __name__=='__main__': 73 suppl = Chem.SDMolSupplier(sys.argv[1],False) 74 if len(sys.argv)>2: 75 nameProp = sys.argv[2] 76 else: 77 nameProp = '_Name' 78 79 nDone,nFailed = TestSupplier(suppl,nameProp=nameProp) 80 print '%d failures in %d mols'%(nFailed,nDone) 81