5
votes

Convertir le nom de la molécule en SMILES?

Je me demandais simplement s'il existe un moyen de convertir IUPAC ou des noms moléculaires courants en SMILES? Je veux faire cela sans avoir à convertir manuellement chacun d'entre eux en utilisant des systèmes en ligne. Toute contribution serait très appréciée!

Pour le contexte, je travaille actuellement avec python et RDkit, donc je n'étais pas sûr si RDkit pouvait le faire et je n'étais tout simplement pas au courant. Mes données actuelles sont au format csv.

Merci!


1 commentaires

3 Réponses :


10
votes

RDKit ne peut pas convertir les noms en SMILES. Chemical Identifier Resolver peut convertir des noms et d'autres identifiants (comme le numéro CAS) et dispose d'une API pour vous pouvez convertir avec un script.

3-Methylheptane CCCCC(C)CC
Aspirin CC(=O)Oc1ccccc1C(O)=O
Diethylsulfate CCO[S](=O)(=O)OCC
Diethyl sulfate Did not work
50-78-2 CC(=O)Oc1ccccc1C(O)=O

Sortie

from urllib.request import urlopen

def CIRconvert(ids):
    try:
        url = 'http://cactus.nci.nih.gov/chemical/structure/' + ids + '/smiles'
        ans = urlopen(url).read().decode('utf8')
        return ans
    except:
        return 'Did not work'

identifiers  = ['3-Methylheptane', 'Aspirin', 'Diethylsulfate', 'Diethyl sulfate', '50-78-2']

for ids in identifiers :
    print(ids, CIRconvert(ids))


0 commentaires

2
votes

OPSIN ( https://opsin.ch.cam.ac.uk/ ) est une autre solution pour la conversion name2structure.

Il peut être utilisé en installant le cli, ou via https://github.com/gorgitko/molminer < / a>

(OPSIN est également utilisé par les nœuds RDKit KNIME)


0 commentaires

-1
votes

si vous remplacez la première ligne par:

de l'url d'importation urllib2 ouverte

cela devrait fonctionner pour python 2.7


0 commentaires