#!/usr/local2/bin/python import os, string from openeye.oechem import * nucleotides_list = ['nucleic_acids/5A3X.ism','nucleic_acids/5C3X.ism','nucleic_acids/5G3X.ism','nucleic_acids/5T3X.ism'] ifs = oemolistream() onaf = OEGraphMol() ofs_3 = oemolostream() ofs_3.open('na_create_oligos.ism') # Reaction 1: Substitution of Cl with Adenine/Guanine adenine = OEGraphMol() OEParseSmiles(adenine, 'c1nc2c(ncnc2[nH]1)N') guanine = OEGraphMol() OEParseSmiles(guanine, 'c1nc2c(=O)[nH]c(nc2[nH1]1)N') libgen1 = OELibraryGen("[nH1;r5:1][c:2][n;r6:3].[C:10][Cl:11]>>[*:10][n:1][*:2][*:3]") libgen1.SetExplicitHydrogens(False) libgen1.SetValenceCorrection(True) libgen2 = OELibraryGen("[nH1;r5:1][c:2][n;r6:3].[C:10][Cl:11]>>[*:10][n:1][*:2][*:3]") libgen2.SetExplicitHydrogens(False) libgen2.SetValenceCorrection(True) # Reaction 2: Substitution of Cl with Cytosine/Thymine cytosine = OEGraphMol() OEParseSmiles(cytosine, 'c1c[nH]c(=O)nc1N') thymine = OEGraphMol() OEParseSmiles(thymine, 'Cc1c[nH]c(=O)[nH]c1=O') libgen3 = OELibraryGen("[n;r6:1][cH1:2].[C:10][Cl:11]>>[*:10][n:1][c:2]") libgen3.SetExplicitHydrogens(False) libgen3.SetValenceCorrection(True) libgen4 = OELibraryGen("[n;r6:1][cH1:2].[C:10][Cl:11]>>[*:10][n:1][c:2]") libgen4.SetExplicitHydrogens(False) libgen4.SetValenceCorrection(True) for ona in nucleotides_list: ifs.open(ona) OEReadMolecule(ifs, onaf) ifs.close() libgen1.SetStartingMaterial(adenine, 0) libgen1.SetStartingMaterial(onaf, 1) for products in libgen1.GetProducts(): products.SetTitle(ona[-8:-5]+'A') OEWriteMolecule(ofs_3, products) libgen2.SetStartingMaterial(guanine, 0) libgen2.SetStartingMaterial(onaf, 1) for products in libgen2.GetProducts(): products.SetTitle(ona[-8:-5]+'G') OEWriteMolecule(ofs_3, products) libgen3.SetStartingMaterial(thymine, 0) libgen3.SetStartingMaterial(onaf, 1) for products in libgen3.GetProducts(): products.SetTitle(ona[-8:-5]+'T') OEWriteMolecule(ofs_3, products) libgen4.SetStartingMaterial(cytosine, 0) libgen4.SetStartingMaterial(onaf, 1) for products in libgen4.GetProducts(): products.SetTitle(ona[-8:-5]+'C') OEWriteMolecule(ofs_3, products) onaf.Clear() ofs_3.close()