Primeros pasos con PLUMED
Instalación:
No voy a mentir, se vuelve un poco molesto, debes agregarlo a tu motor MD. Si no está interesado en GROMACS como su motor MD, aquí hay un enlace a la página principal de Plumed, ya que usted depende de su propia instalación:
De lo contrario, aquí se explica cómo instalarlos y parchearlos correctamente. Siga todos estos comandos si no tiene ninguno, pero omita la instalación de GROMACS si ya lo tiene instalado y funciona. Estos comandos deben ejecutarse uno por uno en su terminal/línea de comando.
#Download GROMACS
wget http://ftp.gromacs.org/pub/gromacs/gromacs-2021.2.tar.gz
tar xfz gromacs-2021.2.tar.gz
cd gromacs-2021.2#Install and source GROMACS
mkdir build
cd build
cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON
make
sudo make install
source /usr/local/gromacs/bin/GMXRC
#Download PLUMED
wget https://github.com/plumed/plumed2/releases/download/v2.7.1/plumed-2.7.1.tgz
tar xfz plumed-2.7.1.tgz
cd plumed-2.7.1
#install PLUMED
./configure --prefix=/usr/local/plumed
make
sudo make install
#Patch GROMACS
cd gromacs-2021.2
plumed patch -p
#rebuilld GROMACS
cd build
cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_PLUMED=on
make
sudo make install
#Check installation
gmx mdrun -plumed
Notarás que elegí una versión anterior de gromacs; Esto es solo para darnos una mejor oportunidad de que no haya errores imprevistos en estos artículos. Puede usar una versión más nueva a su discreción, solo asegúrese de que sea compatible con PLUMED.
Configuración básica:
- Cree un archivo de entrada PLUMED para definir las variables colectivas (CV) que describen los grados de libertad importantes del sistema.
Aquí hay un archivo de ejemplo. Entraré en más detalles sobre algunas opciones más sofisticadas en la Parte 3 de esta serie de artículos, pero por ahora comenzaremos observando el estado conformacional de un conjunto de átomos usando la distancia y la torsión como RESUME. Otros CV potenciales incluyen distancias entre átomos, ángulos, diedros o funciones más complejas.
# Define collective variables
# Distance between atoms 1 and 10
DISTANCE ATOMS=1,10 LABEL=d1# Dihedral angle involving atoms 4, 6, 8, and 10
TORSION ATOMS=4,6,8,10 LABEL=t1
# Print collective variables to a file
PRINT ARG=d1,t1 FILE=COLVAR STRIDE=100
# Apply metadynamics bias
METAD ...
ARG=d1,t1 # The collective variables to bias
PACE=500 # Add a Gaussian hill every 500 steps
HEIGHT=0.3 # Height of the Gaussian hill
SIGMA=0.1,0.1 # Width of the Gaussian hill for each CV
FILE=HILLS # File to store the hills
BIASFACTOR=10 # Bias factor for well-tempered metadynamics
TEMP=300 # Temperature in Kelvin
... METAD
# Print the bias potential to a file
PRINT ARG=d1,t1,bias FILE=BIAS STRIDE=500
Los comentarios en este bloque de código deben ser lo suficientemente detallados para una comprensión básica de todo lo que está sucediendo, pero cubriré todo eso en el artículo 3, ¡e incluso profundizaremos en funciones complejas!
De todos modos, una vez que tenga este archivo de entrada (generalmente llamado plumed.dat) y el archivo .tpr requerido para ejecutar un MD usando GROMACS (consulte la documentación de gmx grompp para generar este archivo), puede ejecutar la simulación metadinámica yendo a la página de trabajo. directorio y escribiendo en la línea de comando:
gmx mdrun -s topol.tpr -plumed plumed.dat
Tanto PLUMED como GROMACS aceptan argumentos adicionales. Repasaré algunos de los argumentos más útiles para ambos en la Parte 3 de esta serie de artículos, así como algunos de los scripts que he escrito para ejecuciones más avanzadas, y puedes consultar la documentación de todos los demás.
Después de la simulación, utilice las herramientas de análisis de PLUMED para reconstruir la superficie de energía libre e identificar estados metaestables relevantes y rutas de transición. El uso más extendido es el de PLUMED. sum_hills
herramienta para reconstruir la superficie de energía libre.
Puede echar un vistazo a la superficie de energía libre (FES) después de este comando usando este código Python que le indicará cómo se relacionan los valores de un CV con el otro.
import matplotlib.pyplot as plt
import numpy as np
import plumed
from matplotlib import cm, ticker# Configure font
plt.rc('font', weight='normal', size=14)
# Read data from PLUMED output
data = plumed.read_as_pandas("/path/to/COLVAR")
# Extract and reshape data for contour plot
# Adjust the reshape parameters as needed, They should multiply to the
# number of bins and be as close to each other as possible
d1 = data["d1"].values.reshape(-1, 100)
t1 = data["t1"].values.reshape(-1, 100)
bias = data["bias"].values.reshape(-1, 100)
# Plot contour lines
plt.contour(d1, t1, bias, levels=np.arange(np.min(bias), np.max(bias), 10), linewidths=0.3, colors='k')
# Plot filled contour
cntr = plt.contourf(d1, t1, bias, levels=np.arange(0, 100), cmap=cm.jet)
# Add colorbar
plt.colorbar(cntr, label="\u0394G [kJ/mol]")
# Set plot limits and labels
plt.xlim(np.min(d1), np.max(d1))
plt.ylim(np.min(t1), np.max(t1))
plt.xlabel("Distance between atoms 1 and 10 (d1) [nm]")
plt.ylabel("Dihedral angle involving atoms 4, 6, 8, and 10 (t1) [degrees]")
# Show plot
plt.show()
El resultado debería verse como el cuadro topográfico que publiqué anteriormente (no puedo darle cómo se verá su FES porque tuvo la libertad de elegir su propio sistema).
También debe visualizar los resultados utilizando software de visualización popular como VMD para obtener información sobre el comportamiento molecular en estados metaestables y de baja energía.
Conclusión
La metadinámica, desarrollada por PLUMED, ofrece un marco sólido para explorar sistemas moleculares complejos. Al muestrear eficientemente el panorama de la energía libre, podemos descubrir mecanismos ocultos en los sistemas moleculares que la MD tradicional no puede realizar debido a limitaciones computacionales.
Ya sea que sea un investigador novato o experimentado, dominar PLUMED puede mejorar significativamente su conjunto de herramientas de química computacional, así que asegúrese de consultar mis próximos dos artículos para ayudarlo a pasar de principiante a experto.
El documento 2 revelará los conceptos matemáticos detrás de la adición de componentes metadinámicos a un motor MD, y el documento 3 lo expondrá a técnicas avanzadas en metadinámica, como la metadinámica de múltiples caminantes, la condensación de más de 2 variables en un formato legible, el uso de la metadinámica. sobre clústeres de alto rendimiento y técnicas analíticas más profundas para visualizar y analizar cuantitativamente los resultados de su sistema (con extensos ejemplos de código).