#!/usr/local2/bin/python2.3 import os, sys from openeye.oechem import * if sys.argv[1][-4:] != '.sdf': print 'INPUT ERROR: works only with sdf-files' raise SystemExit() prefix = sys.argv[1][:-4] # create 3d coordinates from ring_confs and stereoisomers # recommended mc=10, but in study used mc=25 -> typing error? os.system('corina.nirvana -d errorfile='+prefix+'_corina_error.sdf,r2d,wh,stergen,msc=5,msi=13,names,preserve,rc,flapn,mc=25,sc -t tracefile='+prefix+'_corina_trace.trc -i t=sdf -o t=sdf -o mdlcompact '+prefix+'.sdf c_'+prefix[2:]+'_corina.sdf') # Just run ionizer os.system('sdconvert -st -isd c_'+prefix[2:]+'_corina.sdf -omae c_'+prefix[2:]+'_corina.mae') os.system('ionizer -i 2 -ph 7 -s ionizer_reduced_ti.ini -i c_'+prefix[2:]+'_corina.mae -l c_'+prefix[2:]+'_corina.log -b c_'+prefix[2:]+'_corina.mae -o c_'+prefix[2:]+'_corina.mae') os.system('sdconvert -imae c_'+prefix[2:]+'_ionizer.mae -osd c_'+prefix[2:]+'_ionizer.sdf') raise SystemExit() titles = [] ifs = oemolistream() ofs = oemolostream() ifs.open(prefix+'_ionizer_out.sdf') ofs.open(prefix+'_corina_ionizer_out.sdf') for mol in ifs.GetOEMols(): num = 1 title = mol.GetTitle()+'_lp'+str(num) while title in titles: num+=1 title = mol.GetTitle()+'_lp'+str(num) mol.SetTitle(title) titles.append(title) OEWriteMolecule(ofs, mol) ofs.close() ifs.close() os.system('rm -rf '+prefix+'_corina_out.mae '+prefix+'_ionizer_out.mae '+prefix+'_ionizer_out.sdf')