Domanda:
API gratuita per visualizzare la rappresentazione 2D delle molecole
Anderlecht
2018-04-07 09:32:30 UTC
view on stackexchange narkive permalink

Sto cercando un'API gratuita che possa accettare uno SMILE e produrre la struttura 2D di una molecola. Vorrei includerlo in una pagina web.

Ho una raccolta di SMILES e vorrei avere la struttura 2D disponibile come parte di un database. Ho provato a generare immagini usando RDKit ma non posso aggiungerle a nessun data frame o struttura dati tabulare. Eventuali suggerimenti su come visualizzare la rappresentazione 2D e qualsiasi SMILE interrogato sulla pagina web saranno apprezzati.

Sei risposte:
DSVA
2018-04-07 14:46:13 UTC
view on stackexchange narkive permalink

Open Babel può convertire tutti i tipi di input in immagini con strutture 2D.

Anche se apprezzo la menzione di Open Babel, non esiste un'API web, che era la richiesta originale. Se le persone usano `obabel`, consiglio caldamente di usare l'opzione [SVG export] (http://openbabel.org/docs/dev/FileFormats/SVG_depiction.html).
Pritt says Reinstate Monica
2018-04-07 10:04:35 UTC
view on stackexchange narkive permalink

PubChem offre un modo per ottenere la struttura 2D di una molecola se inserisci SMILES.

Tuttavia, perché accontentarti del 2D, se puoi ottenere strutture 3D come facilmente?

Come aggiunta aggiuntiva, potresti anche controllare https://chemapps.stolaf.edu/jmol/jmol.php?model=[INSERT-SMILES-HERE” codice>. Questo strumento produrrà la struttura 3D di qualsiasi molecola di cui puoi ottenere i SORRISI. Basta scrivere i SORRISI dopo il uguale a e voilà ! Ti sei procurato un bel visualizzatore di molecole interattivo che puoi ruotare per vedere come appare.


Disclaimer: non sono affiliato con nessuno dei siti pubblicati sopra.

Geoff Hutchison
2018-07-30 20:01:40 UTC
view on stackexchange narkive permalink

Se desideri un servizio web gratuito, come indicato sopra, puoi utilizzare PubChem per convertire da una stringa SMILES a una rappresentazione 2D. Ma questo è solo "limitato" alle voci in PubChem ...

Un'opzione migliore, IMHO, è il molto facile da usare NIH Chemical Resolver

https://cactus.nci.nih.gov/chemical/structure/ " identificatore di struttura " / " rappresentazione "

Ad esempio, puoi utilizzare:

https://cactus.nci.nih.gov/chemical/structure/aspirin/image:

enter image description here

Come indicato sopra, l '"identificatore" può essere nomi, stringhe SMILES con escape, ecc.

Nota: tripli legami in Le stringhe SMILES rappresentate da "#" devono essere sottoposte a escape URL come "% 23" (ad esempio, la stringa SMILES di ethyne deve essere specificata come "C% 23C" invece di "C # C" se codificata come parte di un URL

E sì, puoi anche ottenere le strutture 3D .. ad es. https://cactus.nci.nih.gov/blog/?p=249
Mark
2018-04-08 03:21:05 UTC
view on stackexchange narkive permalink

Non è un'API, ma è possibile utilizzare JSME (Javascript Molecule Editor) per convertire MOL, SDF o SMILES in una struttura 2D.

BalooRM
2020-05-02 04:53:22 UTC
view on stackexchange narkive permalink

Un'altra opzione per un po 'di programmazione è Indigo Toolkit, che ha le librerie Python, Java, .NET e C.

Il seguente esempio di Python prende l'isomero SMILES per Albuterol, che ho ottenuto da PubChem, e rende strutture 2D per tre forme (una con stereochimica non specificata e due stereoisomeri). Le singole strutture sono etichettate con i rispettivi CID PubChem.

Albuterol

  from indigo import * from indigo.renderer import * indigo = Indigo () renderer = IndigoRenderer (indigo) mols = {"2083": "CC (C) (C) NCC (C1 = CC (= C (C = C1) O) CO) O", "123600": "CC (C) (C) NC [C @@ H] (C1 = CC (= C (C = C1) O) CO) O ',' 182176 ':' CC (C) (C) NC [C @ H] (C1 = CC (= C (C = C1 ) O) CO) O '} array = indigo.createArray () per la chiave in mols.keys (): print (key, mols [key]) mol = indigo.loadMolecule (mols [key]) s = "CID =" + key mol.setProperty ("grid-comment", s) array.arrayAdd (mol) indigo.setOption ("render-comment", "Albuterol") indigo.setOption ("render-comment-position", "top") indigo.setOption ("render-grid-margins", "40, 10") indigo.setOption ("render-grid-title-offset", "5") indigo.setOption ("render-grid-title-property", "griglia-commento") indigo.setOption ("render-background-color", 1.0, 1.0, 1.0) indigo.setOption ("render-atom-color-property", "color") indigo.setOption ("render-coloring ", True) indigo.setOption (" render-image-size ", 1200, 300) renderer.renderGridToFile (array, None, 3, "grid.png")  
Raven
2018-07-30 21:15:27 UTC
view on stackexchange narkive permalink

Se sei disposto a dedicare un piccolo sforzo di programmazione a questo, potresti dare un'occhiata al Chemistry Development Kit (CDK) che è facilmente in grado di convertire una stringa SMILES in un rendering 2D del molecola.

Un esempio (tratto da qui) che produrrà la rappresentazione come immagine PNG ha il seguente aspetto:

  import org.openscience.cdk .CDKConstants; import org.openscience.cdk.interfaces. *; Import org.openscience.cdk.silent.SilentChemObjectBuilder; import org.openscience.cdk.smiles.SmilesParser; import java.awt.Color; public class Main {public static void main (String [] args) genera Eccezione {IChemObjectBuilder bldr = SilentChemObjectBuilder.getInstance (); SmilesParser smipar = nuovo SmilesParser (bldr); IAtomContainer mol = smipar.parseSmiles ("CN1C = NC2 = C1C (= O) N (C (= O) N2C) C"); mol.setProperty (CDKConstants.TITLE, "caffeine"); DepictionGenerator dptgen = new DepictionGenerator (); // dimensione in px (raster) o mm (vettore) // le annotazioni sono rosse per impostazione predefinita dptgen.withSize (200, 250) .withMolTitle () .withTitleColor (Color.DARK_GRAY); dptgen.depict (mol) .writeTo ("~ / caffeine.png");}}  

Il risultato può essere visto qui



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...