4 votos

Principios teóricos de simulaciones moleculares

Soy estudiante de farmacia y me gustaría trabajar en el campo del diseño de fármacos. Aprendemos a trabajar con programas, pero eso no es suficiente para mí. Quiero aprender los principios teóricos de la química computacional y desarrollar software por mí misma, o al menos partes de él.

Sin embargo, tengo algunas preguntas:

¿Por dónde empiezo con la parte de química?

  • resolviendo la ecuación de Schrödinger
  • método de Hartree-Fock
  • teoría del funcional de la densidad

¿Qué principios matemáticos necesito?

¿Existen literaturas completas para principiantes y cuál me recomendarías? Un buen libro sería sin duda el mejor comienzo.

Necesito un buen punto de partida, especialmente en términos de matemáticas y espero que puedas ayudarme.

11voto

lcd Puntos 41

La química computacional es una síntesis de muchos temas diferentes, cada uno de los cuales es muy complejo por sí solo. Por lo tanto, si realmente quieres aprender las bases teóricas, debes estar preparado para dedicar mucho tiempo y esfuerzo. No quiero desanimarte, solo quiero que tengas expectativas realistas.

Los fundamentos de la química computacional son la química física y la informática. Los fundamentos de estos son matemáticas, física y lógica. Por lo tanto, dependiendo de cuál sea tu formación, es posible que tengas que comenzar con matemáticas y física.

Matemáticas:

  • Cálculo
  • Cálculo Vectorial
  • Ecuaciones Diferenciales
  • Estadísticas

Física:

  • Dinámica Clásica
  • Electrodinámica Clásica

Una vez hayas tomado esos cursos (si aún no lo has hecho) puedes comenzar con la química física. En teoría podrías aprender por ti mismo esos temas, pero sería muy difícil; un curso en línea gratuito sería una buena opción si no puedes tomar un curso universitario. Creo que Khan Academy cubre todos estos temas.

Química Física

  • Mecánica Estadística
  • Mecánica Cuántica

Siempre me gustó el libro de Atkin sobre química física (aunque no sé si las ediciones más recientes siguen siendo buenas). Los libros de McQuarrie sobre química cuántica y mecánica estadística son muy buenos y son clásicos en el campo.

Preguntaste:

¿Por dónde empiezo con la parte de química?

  • Resolviendo la ecuación de Schrödinger
  • Método de Hartree-Fock
  • Teoría del Funcional de la Densidad

La mecánica cuántica en química física cubrirá las soluciones a la ecuación de Schrödinger para todos los casos donde existe una solución en forma cerrada. Esto te dará una comprensión de los principios básicos, por lo que deberías comenzar por ahí. Para resolver sistemas "reales", necesitas técnicas de aproximación más avanzadas, y Hartree-Fock y DFT te pondrán en marcha. Ese es un buen orden para estudiarlos también.

En informática, mucho depende del software que vayas a utilizar o de los lenguajes que quieras usar. La mayoría de los algoritmos principales altamente optimizados están escritos en fortran o C. Algunos llegan incluso a ensamblador para las partes más importantes. La mayoría de los programas que he visto (no principales) están escritos en fortran o C++. Mi experiencia está un poco desactualizada (trabajé en el campo hace unos 7 años) así que eso podría ya no ser cierto. En cualquier caso, necesitarás al menos un curso básico de programación en el lenguaje que desees usar (C sería bueno para empezar, ya que realmente aprenderás los fundamentos). También tomaría algunos cursos orientados a objetos, por lo que serían buenos cursos relacionados con C++ y Java más avanzados.

Los conceptos clave (más allá de la programación y la arquitectura) que necesitarás son:

  • Métodos Estocásticos (Monte Carlo)
  • Álgebra Lineal
  • Integración Numérica

Con todo lo anterior, tendrás un buen conjunto de habilidades y conocimientos básicos sobre los cuales puedes construir.

Preguntaste:

¿Existen literatura completa para principiantes y qué recomendarías? Un buen libro sería ciertamente el mejor comienzo.

Solamente estoy familiarizado con un libro que podría ser adecuado para principiantes en química computacional, así que quizás otros puedan dar mejores sugerencias. El que usé fue Modelado Molecular de Leach. Brinda una buena visión general de las técnicas comunes, pero no se adentra demasiado. Sin embargo, fue actualizado por última vez en 2001, por lo que puede estar desactualizado. El estado del arte avanza rápido en términos de aplicación detallada, aunque los fundamentos tienden a mantenerse bastante consistentes con el tiempo. Otro libro clásico que cubre los fundamentos en cierta profundidad es Simulación por Ordenador de Líquidos de Allen & Tildesley.

Ambos libros se centran más en los aspectos de modelado de moléculas en lugar de reacciones químicas, así que si estás más interesado en simular reacciones en lugar de mecánica estadística o interacciones proteína-ligando, necesitarás libros diferentes.

4voto

Rob Wells Puntos 361

Descargo de responsabilidad: No tengo una experiencia significativa en el campo, pero sí tuve un poco de contacto con él.

Quiero aprender los principios teóricos de la química computacional y desarrollar software por sí mismos, o al menos partes de él.

La idea es noble, pero extremadamente ingenua.

Me gustaría trabajar en el campo del diseño de fármacos.

Afortunadamente para ti, en realidad no necesitas personal de matemáticas avanzadas para trabajar en este campo específico. Seguro, puede ser útil, pero no necesario. La mayoría de las simulaciones relacionadas con medicamentos se pueden realizar utilizando un enfoque de mecánica molecular/dinámica molecular, que es cuasiclásico por naturaleza.

notas generales de programación

El lenguaje más común en la comunidad científica es, desafortunadamente, fortran. Es un lenguaje muy antiguo con una gran cantidad de problemas inherentes. Recomiendo aprender a programar en algún lenguaje más sensato primero y luego pasar a fortran/c/c++. SICP (estructura e interpretación de programas informáticos) basado en scheme es una buena elección. Claro, utiliza scheme bastante esotérico, pero desalienta los malos hábitos.

lista minimal, en orden

  • física newtoniana clásica (fuerzas, aceleración, velocidad, todo en forma vectorial, sus relaciones e interacciones electrostáticas)
  • teoría de programación: notación big-O, algorítmica, espacio-clasificación, índices en el espacio, etc. Específicamente, MM/MD necesita una forma de estimar las fuerzas totales en un sistema de muchos cuerpos con interacción electrostática donde pueden estar presentes miles y millones de cuerpos. Esto requiere un algoritmo eficaz para descartar interacciones pequeñas, que a su vez requiere un algoritmo eficaz que produzca una lista de pares cercanos.
  • opcional: algoritmos genéticos.
  • opcional: aprendizaje automático.

después de aprender eso, es hora de empezar a leer artículos/reseñas reales. Las áreas de interés son QSAR (se basa en el aprendizaje automático) y docking (se basa en el enfoque MM/MD para 'ajustar' la molécula al receptor).

  • en caso de que aún tengas la resolución de codificar algo, es hora de hacerlo realmente. toma algún paquete existente y ajústalo.
  • en caso de que quieras trabajar con sistemas enormes o computación de alto rendimiento, aprende
    • teoría de programación paralela: bibliotecas de hilos, primitivas de sincronización
    • tecnologías de paralelización comunes: mpi, openmp.
    • GPGPU: OpenCL o Cuda

lista máxima, en orden. Demasiado para el diseño de fármacos. Además de la lista mínima

  • álgebra lineal.
  • geometría analítica
  • cálculo avanzado (integrales multidimensionales, derivadas parciales y cosas relacionadas)
  • ecuaciones diferenciales
  • aproximación de funciones mediante combinación lineal de otras funciones
  • mecánica cuántica, caso no relativista.
  • cualquier libro de química cuántica general: teoría cualitativa del enlace, ecuaciones de Hartree-Fock, la magia negra de MP2 y DFT

hasta este punto los temas son útiles para cualquier estudiante de química. El personal especializado sigue.

  • programación general
    • algorítmica
    • notación big-O
    • errores numéricos, estimación de los mismos.
    • formato de punto flotante IEEE, uso y limitaciones
  • métodos numéricos, específicamente
    • transformada rápida de Fourier
    • integración multidimensional
    • métodos de diagonalización iterativa

en este punto se vuelve posible codificar algo simple. En caso de que la computación de alto rendimiento sea de interés (es un área separada, que no está relacionada directamente con la química)

  • programación paralela,
    • ver lista mínima
    • almacenamiento y procesamiento distribuido

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