18 votos

Herramientas modernas de código abierto para la simulación de espectros de RMN

Estoy interesado en predecir el espectro de RMN de pequeños compuestos orgánicos. No me importa si la predicción es muy exacta. Al final compararé la predicción con resultados experimentales.

Parece que varias herramientas gratuitas en línea ofrecen la posibilidad de realizar tales predicciones:

  1. RMN DB es un sitio web gratuito que ofrece una predicción de experimentos de RMN 1H, 13C y, supuestamente, incluso 2D. Las estructuras se introducen a través de un editor GUI.

  2. VeSPA et PyGamma son paquetes de Python (o envoltorios de Python alrededor de bibliotecas C) que supuestamente simulan espectros de RMN de moléculas. Sin embargo, ambos paquetes son muy antiguos y no se han actualizado sustancialmente desde hace tiempo.

Mi pregunta es, ¿cuál es la mejor herramienta computacional disponible (gratuita) para predecir espectros de RMN? Como ya he dicho, entiendo que las predicciones son imperfectas. Qué programas informáticos, si los hay, utilizan ampliamente los químicos en ejercicio para la simulación de RMN? ¿Cuál es la mejor referencia para leer sobre dicho software, incluyendo la heurística y los algoritmos que utiliza para simular espectros? ¿Es Vespa y/o PyGamma lo último en tecnología? El sitio NMR DB es bonito, pero preferiría una interfaz que se pudiera programar y en la que las estructuras se pudieran suministrar computacionalmente en lugar de a través de una interfaz gráfica de usuario.

(Soy espectrometrista de masas e ingeniero bioquímico con poca formación en métodos de RMN).

11voto

NotNicolaou Puntos 696

En Org Biomol Chem 2016 , 14 , 3943 , Goodman informa de la sustitución de algunos programas "tradicionales" (caros) por otros libres/de código abierto, aplicados a su método dp4.

Específicamente:

  • Mecánica molecular con tinker (creo que como sustituto de MacroModel), puede que quieras o no este paso dependiendo de lo que estés haciendo. En el artículo se estudian moléculas con estereocentros y, como tales, parece que querían asegurarse de que los valores de RMN calculados coincidían con la conformación más probable de la molécula estudiada experimentalmente.
  • Predicción de RMN mediante NWChem (que sustituye a Jaguar como patrón oro) para realizar los cálculos DFT. Se menciona que es más lento, pero, de nuevo, dependerá de lo que te interese estudiar.

Creo que eso cumple tu requisito de poder hacer la predicción utilizando programas de código abierto.

En cuanto a las secuencias de comandos, en el documento se menciona la posibilidad de empaquetar todo en una secuencia de comandos de Python (y que yo sepa, en realidad no hay una interfaz gráfica de usuario para ninguno de los programas mencionados), por lo que debería ser susceptible de ello.

Una cosa que no parece hacer, es trazar gráficamente los datos resultantes generados (creo que sólo comparan una lista de valores a una lista de valores experimentales), pero usted debe ser capaz de trazar esto en algo como MatLab, o, si juegas lo suficiente, debe ser importable en TopSpin a través de algo para convertirlo en un conjunto de valores convenientemente escritos.

6voto

Ash Puntos 213

Puede enviar la estructura al sitio web de la base de datos de RMN utilizando este enlace enlace .

En cuanto a los algoritmos, existen referencias en el sitio web nmrdb.org. Para X1X212H predicción utilizamos Spinus (basado en la red neuronal). Para X13X2132C estamos utilizando NMR cambio DB que se basa en el código de la manguera.

Para obtener una visión general de los algoritmos de predicción puede interesarle nuestro última publicación .

4voto

user16683 Puntos 46

El problema con el software de química computacional (ORCA, GAMESS, etc.), como se describe en la respuesta de NotEvans y en varios comentarios, es que sólo escupe una lista de desplazamientos químicos y constantes de acoplamiento. Por ejemplo, esto es parte de una salida típica de ORCA:

 --------------
 Nucleus  34H :
 --------------

[...]

Total shielding tensor (ppm): 
            28.820         -0.203         1.178
            -2.079         29.083         1.927
             1.392          3.320        24.895

 Diagonalized sT*s matrix:

 sDSO            23.705           26.255           39.984  iso=      29.981
 sPSO            -0.555            2.878           -9.468  iso=      -2.382
        ---------------  ---------------  ---------------
 Total           23.149           29.133           30.516  iso=      27.599

Pasar de una lista de números a algo parecido a un espectro es un asunto completamente distinto. Para ello, habría que utilizar esos parámetros para construir un hamiltoniano de espín:

^Hfree=iΩi^Iiz+ij2πJij^Iiz^Ijz

y luego realizar una simulación mecánica cuántica, donde un matriz de densidad ρ evoluciona bajo este Hamiltoniano libre, así como bajo cualquier otro Hamiltoniano correspondiente a los pulsos, de acuerdo con la Ecuación de Liouville-von Neumann . Después de la secuencia de impulsos, se puede obtener el FID midiendo el valor esperado del operador i^Ii a intervalos regulares correspondientes al tiempo de permanencia de la RMN y, a continuación, el espectro mediante la transformación de Fourier.

La mejor herramienta general para ello es Espinacas que se codifica en MATLAB. Spinach es de código abierto, pero MATLAB no (y el código de Spinach no es de código abierto). no en GNU Octave). Por lo tanto, no cumple del todo los criterios de la pregunta, pero pensé que debía mencionarlo de todos modos.


Específicamente para su uso con ORCA El grupo de Stefan Grimme ha trabajado mucho en este ámbito, véase Angew. Chem. Int. Ed. 2017, 56 (46), 14763-14769 . Existen varios scripts de Python capaces de realizar esta simulación del hamiltoniano de espín, así como de trazar el espectro. De hecho, ahora debería ser posible interactuar con todos ellos directamente desde ORCA, de forma que con un ORCA se pueden realizar todos los pasos descritos en el artículo (generación de conformadores, cálculo de propiedades de RMN, simulación del hamiltoniano de espín y representación gráfica). Sugiero consultar el manual de ORCA para más información.

ORCA no es de código abierto propiamente dicho pero es de uso gratuito, que es lo que creo que pretendes en líneas generales (prefiero no entrar en debates sobre qué significa software "libre ).


Por si sirve de algo, si se tienen los conocimientos de programación necesarios, es bastante fácil escribir un script (por ejemplo) en Python que sea capaz de simular sistemas de dos o tres espines (quizá cuatro). Al fin y al cabo, un experimento de RMN es "sólo" un montón de operadores unitarios que actúan sobre matrices de densidad, es decir, mucha, mucha multiplicación de matrices. Por ejemplo, puedes echar un vistazo a parte de mi código MATLAB aquí que simula el primer FID de un experimento HSQC de sensibilidad mejorada. Es bastante trivial portar esto a Python, ya que numpy le proporciona prácticamente todas las funciones que pueda necesitar.

[Descargo de responsabilidad: el código no tiene por qué permanecer ahí para siempre].

El único problema es que esto se escala exponencialmente con el número de giros, por lo que a menos que se haga una optimización seria del código (como la que se hace en Spinach), se vuelve intratable muy rápidamente. (También depende del tipo de espectro que se quiera: un simple experimento de protones en 1D es fácil, pero si se quiere uno en 2D hay que simular varios FID, y la complejidad aumenta rápidamente si se utilizan pulsos con forma y, especialmente, si hay algún tipo de elemento dependiente del espacio, como gradientes de campo pulsados).

Pero si tu molécula se puede "descomponer" en varios sistemas de espín que son pequeños, entonces el espectro global es sólo la suma del espectro de cada sistema de espín, por lo que podrías salirte con la tuya con un código más simple. Nunca he pensado en cómo se podría hacer eso, aunque mi conjetura es que usted querría construir una matriz hamiltoniana, luego pasarla a una función que se llamaría a sí misma recursivamente si la matriz se puede escribir en forma de bloque diagonal.

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