9 votos

convertir SMILES (o .mol2) a SMARTS

La conversión entre la estructura química diferente formatos, por ejemplo .mol2 .xyz, por openbabel puede ligada a las condiciones que deben satisfacerse. Un ejemplo de este tipo de filtro es para permitir una conversión de este tipo sólo para el intercambio de datos de un cierto andamio, por ejemplo,

babel -imol2 AHECAS.mol2 -oxyz AHECAS.xyz -s "c1ccccc1-[#16](=[#8])-[#6]-c2ccccc2"

Por lo que el programa permite que la INTELIGENCIA como la limitación de la entrada de parámetros. A diferencia de SONRISAS, (al parecer, basado en babel -L formats) openbabel sin embargo no ofrece una conversión de cualquier formato en INTELIGENCIA y mi fuente para generar ellas es la línea de PubChem Dibujante.

Pregunta: con el objetivo de generar INTELIGENCIA local (sin conexión), sé Marvin por ChemAxon puede exportar una estructura en la INTELIGENCIA. Sin embargo, existe un portátil alternativa (con menor huella de una completa nueva interfaz gráfica de usuario dibujante), preferentemente que permite una conversión en un patrón como SMILES2SMARTS (o mol2toSMARTS) de la terminal o mediante un script?

3voto

jmfsg Puntos 18246

El hilo se indica en el comentario de @andselisk se remonta a julio de 2014. Puede ser condensado a

"Una subestructura consultar con openbabel requiere una buena INTELIGENCIA en la cadena. En caso de que usted no tiene uno, a menudo una buena SONRISAS cadena puede ser utilizada en lugar de una INTELIGENCIA en la cadena, también."

Un cheque por un lugar simple estructura molecular de (benzylsulfinyl)benceno

enter image description here

hay más de una manera de describirlo, ya sea en forma de una INTELIGENCIA, o una cadena de SONRISAS. En consecuencia, las cadenas de por sí a veces difieren de uno a otro. En consecuencia, el reconocimiento de las entradas relevantes en la colección de .mol2 con openbabel a veces fracasó.

A continuación me summerize (estado: 2019-May-15) algunas experiencias: la cadena ofrecidas por el software, su tipo y origen; finalmente, si funciona (es decir, entradas recuperado), o no (es decir, las entradas no se recuperan) en un pequeño conjunto de pruebas de 419 modelo de datos y 7 pertinentes éxitos.

|-------------------------------------+--------+--------------------+--------|
| entry                               | type   | source             | status |
|-------------------------------------+--------+--------------------+--------|
| c1ccccc1-[#6]-[#16](-c2ccccc2)=[#8] | SMARTS | pubChemSketcher    | works  |
| C1=CC=CC=C1C[S](C2=CC=CC=C2)=O      | SMILES | pubChemSketcher    | fails  |
|-------------------------------------+--------+--------------------+--------|
| O=S(Cc1ccccc1)c2ccccc2              | SMILES | ACD ChemSketch     | works  |
|-------------------------------------+--------+--------------------+--------|
| C1=CC=C(C=C1)CS(C(C=CC1)=CC=1)=O    | SMILES | ChemDoodle         | fails  |
|-------------------------------------+--------+--------------------+--------|
| O=S(C1=CC=CC=C1)CC2=CC=CC=C2        | SMILES | ChemDraw Pro12     | fails  |
|-------------------------------------+--------+--------------------+--------|
| O=S(CC1=CC=CC=C1)C1=CC=CC=C1        | SMILES | Marvin JS          | fails  |
|-------------------------------------+--------+--------------------+--------|
| O=S(Cc1ccccc1)c2ccccc2              | SMILES | Peter Ertl JSME    | works  |
|-------------------------------------+--------+--------------------+--------|
| c1cccc(c1)CS(=O)c1ccccc1            | SMILES | openbabel, default | works  |
| c1ccc(cc1)CS(=O)c1ccccc1            | SMILES | dito, universal    | works  |
| c1ccc(cc1)CS(=O)c1ccccc1            | SMILES | dito, Inchified    | works  |
| O=S(c1ccccc1)Cc1ccccc1              | SMILES | dito, canonical    | works  |
|-------------------------------------+--------+--------------------+--------|

PubChem Sketcher: version 2.4, https://pubchem.ncbi.nlm.nih.gov/edit2/index.html
ACD ChemSketch:   Freeeware version 2015
ChemDoodle:       version 8.1.0, 2019 and webcomponents,
                  https://web.chemdoodle.com/demos/sketcher/
ChemDraw:         version 12 Pro, (then) CambridgeSoft, 2009
Marvin JS:        ChemAxon, v19.11.0, on-line test at
                  https://marvinjs-demo.chemaxon.com/latest/
                  Its SMARTS (very differently written) equally failed:
                  O=S([#6]-[#6]-1=[#6]-[#6]=[#6]-[#6]=[#6]-1)[#6]-1=[#6]-[#6]=[#6]-[#6]=[#6]-1
Peter Ertl JSME:  https://peter-ertl.com/jsme/JSME_2017-02-26/

Además:
El enfoque mencionado en la pregunta básicamente llamadas babel (o òpenbabel) como una iteración por cada archivo. Especialmente si el conjunto de datos se accede a más de una vez para identificar las diferentes estructuras, y / o se compone de varios miles de modelos, esto puede ser tediosamente lento. En lugar de ello, vale la pena "paquete", la información de la persona

babel *.mol2 mymols.sdf --unique

la creación de un recipiente como un multi-modelo .mol2 (esto también funciona con .xyz como archivos de entrada). El .sdf puede ser indexado

babel mymols.sdf -ofs

por las huellas (cf. el capítulo 5 de este manual). Ahora, muy rápidamente los nombres de los archivos sobre un strucure que coincidan con la consulta de la subestructura son identificados, por ejemplo,

babel mymols.fs -ifs -s"O=S(c1ccccc1)Cc1ccccc1" results.smi -xt

y se almacena en results.smi. En consecuencia, cualquier trabajo puede centrarse en ellos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X