1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
import re
splitExpr = re.compile('[\t\ ]')
from Chem import rdmol
def runit(fName):
inLines = open(fName,'r').readlines()
nFailed = 0
nPassed = 0
nTried = 0
for line in inLines:
if len(line):
smi = splitExpr.split(line)[1]
if smi[-1] == '\n': smi = smi[:-1]
if smi[-1] == '\r': smi = smi[:-1]
nTried += 1
try:
m = rdmol.MolFromSmiles(smi)
nPassed += 1
except:
print '\t%s failed'%repr(smi)
print '\tline: %s'%(repr(line))
nFailed += 1
m = None
print '%d of %d passed'%(nPassed,nTried)
if __name__ == '__main__':
import sys
fName = 'ntp_smiles.txt'
if len(sys.argv) > 1:
fName = sys.argv[1]
runit(fName)
|