Esempio n. 1
0
def readSmiles(file):
    """
    lit un fichier SMILES et renvoi les infos (liste des molecules, listes des noms, listes des id)
    """
    f = open(file)
    lines = f.readlines(
    )  # lit le contenu du fichier, chaque ligne est une chaine de caractere
    f.close()
    smilesError = "error.smi"
    sdfError = "error.sdf"
    mol = []
    for line in lines:  # pour chacune des lignes du fichier
        data = line.split(
        )  # decoupe la ligne en plusieurs chaines de caracteres pr pouvoir acceder a chacune des informations conenues ds la ligne
        if len(data) > 1:
            try:
                mol.append(iMolecule(smiles=data[0], id=data[1]))
            except:
                ferror = open(smilesError, "w")
                ferror.write(data[0] + "\t" + data[1] + "\n")
                ferror.close()
                os.system("babel -ismi " + smilesError + " -osdf " + sdfError)
                mol.extend(readSDF(sdfError))
        else:
            try:
                mol.append(iMolecule(smiles=data[0]))
            except:
                ferror = open(smilesError, "w")
                ferror.write(data[0] + "\n")
                ferror.close()
                os.system("babel -ismi " + smilesError + " -osdf " + sdfError)
                mol.extend(readSDF(sdfError))
    return mol
Esempio n. 2
0
def readSmiles(file):
    """
    lit un fichier SMILES et renvoi les infos (liste des molecules, listes des noms, listes des id)
    """
    f=open(file)
    lines = f.readlines() # lit le contenu du fichier, chaque ligne est une chaine de caractere
    f.close()
    smilesError = "error.smi"
    sdfError = "error.sdf"
    mol=[]
    for line in lines : # pour chacune des lignes du fichier
        data = line.split() # decoupe la ligne en plusieurs chaines de caracteres pr pouvoir acceder a chacune des informations conenues ds la ligne
        if len(data)>1 :
            try :
                mol.append(iMolecule(smiles=data[0],id=data[1]))
            except :
                ferror=open(smilesError,"w")
                ferror.write(data[0]+"\t"+data[1]+"\n")
                ferror.close()
                os.system("babel -ismi "+smilesError+" -osdf "+sdfError)
                mol.extend(readSDF(sdfError))
        else :
            try :
                mol.append(iMolecule(smiles=data[0]))
            except :
                ferror=open(smilesError,"w")
                ferror.write(data[0]+"\n")
                ferror.close()
                os.system("babel -ismi "+smilesError+" -osdf "+sdfError)
                mol.extend(readSDF(sdfError))       
    return mol
Esempio n. 3
0
def readSDF(file):
    """
    idem ci-dessus pr fichier SDF
    """
    f = open(file)
    reader = MDL.sdin(f)
    mo = []
    try:
        m = reader.next()[0]
        while m:
            if m.fields.keys():
                for key in m.fields.keys():
                    if "ID" in key:
                        mo.append(iMolecule(sd=m, id=m.fields[key]))
                        break
            else:
                mo.append(iMolecule(sd=m, id=m.name))
            m = reader.next()[0]

    except:
        f.close()
        return mo
Esempio n. 4
0
def readSDF(file) :
    """
    idem ci-dessus pr fichier SDF
    """
    f = open(file)
    reader = MDL.sdin(f)
    mo = []
    try :
        m = reader.next()[0]
        while m :
            if m.fields.keys():
                for key in m.fields.keys():
                    if "ID" in key :
                        mo.append(iMolecule(sd=m,id=m.fields[key]))
                        break
            else :
                mo.append(iMolecule(sd=m,id=m.name))
            m = reader.next()[0]
            
    except :
        f.close()
        return mo
Esempio n. 5
0
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
"""
from iMolecule import *


mOri = iMolecule("c1(C(=NO)Cc2ccccc2)c([n]([c]3[c]1cccc3)C)C")
mOri.graph2molecule()

fileSdf = open("testEnergyThiago1_3D_multiconf_bruno.sdf")
reader = MDL.sdin(fileSdf)
for i in range(21):
    m = reader.next()[0]

    for at in m.atoms:
        at.mmffAtomType = getMMFFAtomType(at)

    tmp = str(len(m.atoms)) + "\n500\n100\n"  
                
    for atom in m.atoms:
        vdwParams = VDW_PARAM[str(atom.mmffAtomType)]
        tmp += str(atom.x)+" "+str(atom.y)+" "+str(atom.z)+" "+str(getMMFFPartialAtomicCharge(atom))+" "+ \