#!/usr/local2/bin/python2.3 # Just replaces the marker atoms (one at a time, otherwise conformation will be screwed up from openeye.oechem import * import os, string, sys ifs = oemolistream() ofs_1 = oemolostream() ofs_1.open(sys.argv[1]+'_ln.sdf') ofs_2 = oemolostream() ofs_2.open(sys.argv[1]+'_lp.sdf') rxn_Mg = OEUniMolecularRxn("[*:41][Mg:1][P:2]([SH1:3])([Li:4])([Zn:5])[O-:6]>>[*:41][P:2]([SH1:3])([Li:4])([Zn:5])[O-:6]") rxn_Li_1 = OEUniMolecularRxn("[P:2]([SH1:3])([Li:4][O-,N-,S-:42])([Zn:5])[O-:6]>>[P:2]([SH1:3])([*-:42])([Zn:5])[O-:6]") rxn_Li_2 = OEUniMolecularRxn("[P:2]([SH1:3])([Li:4][Ov2,Nv3,Sv2,Cv4:42])([Zn:5])[O-:6]>>[P:2]([SH1:3])([*:42])([Zn:5])[O-:6]") rxn_Zn_1 = OEUniMolecularRxn("[P:2]([SH1:3])([Zn:5][O-,N-,S-:43])[O-:6]>>[P:2]([SH1:3])([*-:43])[O-:6]") rxn_Zn_2 = OEUniMolecularRxn("[P:2]([SH1:3])([Zn:5][Ov2,Nv3,Sv2,Cv4:43])[O-:6]>>[P:2]([SH1:3])([*:43])[O-:6]") li_minus = OESubSearch() li_minus.Init('[P][Li:4][N-,S-,O-]') zn_minus = OESubSearch() zn_minus.Init('[P][Zn:4][N-,S-,O-]') ifs.open(sys.argv[1]+'_parts_connect_1_ln_corina.sdf') for mol in ifs.GetOEMols(): rxn_Mg(mol) if li_minus.SingleMatch(mol) == 1: rxn_Li_1(mol) else: rxn_Li_2(mol) if zn_minus.SingleMatch(mol) == 1: rxn_Zn_1(mol) else: rxn_Zn_2(mol) OEWriteMolecule(ofs_1, mol) ofs_1.close() ifs.close() ifs.open(sys.argv[1]+'_parts_connect_1_lp_corina.sdf') for mol in ifs.GetOEMols(): rxn_Mg(mol) if li_minus.SingleMatch(mol) == 1: rxn_Li_1(mol) else: rxn_Li_2(mol) if zn_minus.SingleMatch(mol) == 1: rxn_Zn_1(mol) else: rxn_Zn_2(mol) OEWriteMolecule(ofs_2, mol) ofs_2.close() ifs.close() # Test - corina (quick) #os.system('corina.nirvana -d errorfile='sys.argv[1]+'_parts_connect_2_err.sdf,r2d,wh -t tracefile='sys.argv[1]+'_parts_connect_2_corina_trace.trc -i t=sdf -o t=sdf 'sys.argv[1]+'_parts_connect_2.sdf 'sys.argv[1]+'_parts_connect_2_corina.sdf') # corina for database (incl. ringconf + stereo) #os.system('corina.nirvana -d errorfile='sys.argv[1]+'_parts_connect_2_err.sdf,r2d,wh,stergen,msc=5,msi=13,names,preserve,rc,flapn,mc=15,sc -t tracefile='sys.argv[1]+'_parts_connect_2_corina_trace.trc -i t=sdf -o t=sdf 'sys.argv[1]+'_parts_connect_2.sdf 'sys.argv[1]+'_parts_connect_2_corina.sdf')