1ik0spget70koddkqhll9dq.png

Introducción a PLUMED

Instalación:

No voy a mentir, esto se vuelve un poco molesto, es necesario conectarlo a tu motor MD. Si no te interesa GROMACS como motor MD, aquí tienes un enlace a la página principal de Plumed, porque la instalación depende de ti:

De lo contrario, aquí se explica cómo instalarlos y aplicarles el parche correspondiente. Siga todos estos comandos si no tiene ninguno, pero ignore la instalación de GROMACS si ya lo tiene instalado y funcionando. Estos comandos deben ejecutarse uno por uno en su terminal/línea de comandos.

#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 he elegido una versión más antigua de gromacs; esto es solo para darnos una mejor posibilidad de que no haya errores imprevistos en estos artículos, eres más que bienvenido a usar una versión más reciente a tu discreción, solo asegúrate de que sea compatible con PLUMED.

Configuracion basica:

  • 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 por observar el estado conformacional de un conjunto de átomos utilizando la distancia y la torsión como nuestros CV. 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 ese bloque de código deberían ser lo suficientemente amplios para una comprensión básica de todo lo que está sucediendo, pero abordaré todo esto en el artículo 3, ¡e incluso profundizaremos en funciones complejas!

De todos modos, una vez que tenga este archivo de entrada (normalmente llamado plumed.dat) y el archivo .tpr necesario para una ejecución de MD utilizando GROMACS (consulte la documentación de gmx grompp para generar ese archivo), puede ejecutar la simulación de metadinámica yendo al directorio de trabajo 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 más útiles para ambos en la Parte 3 de esta serie de artículos, junto con algunos de los scripts que he escrito para ejecuciones más avanzadas. Puedes consultar la documentación para ver otros.

Después de la simulación, utilice las herramientas de análisis de PLUMED para reconstruir la superficie de energía libre e identificar los estados metaestables y las vías de transición relevantes. La herramienta más utilizada es la 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 ese comando usando este código de Python que le dirá 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 similar al gráfico topográfico que publiqué anteriormente (no puedo decirle cómo se verá su FES porque usted tuvo la libertad de elegir su propio sistema).

También debe visualizar los resultados utilizando un software de visualización popular como VMD para obtener información sobre el comportamiento molecular en estados de baja energía y metaestables.

Conclusión

La metadinámica, impulsada por PLUMED, ofrece un marco sólido para explorar sistemas moleculares complejos. Al muestrear de manera eficiente el paisaje de energía libre, podemos descubrir mecanismos ocultos en sistemas moleculares que no se pueden lograr a través de la dinámica molecular tradicional debido a limitaciones computacionales.

Ya sea que sea un novato o un investigador experimentado, dominar PLUMED puede mejorar significativamente su conjunto de herramientas de química computacional, así que no olvide consultar mis próximos dos artículos para ayudarlo a pasar de principiante a experto.

El artículo 2 revelará los conceptos matemáticos detrás de la adición de componentes de metadinámica a un motor MD, y el artículo 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, la utilización de la metadinámica en clústeres de alto rendimiento y técnicas analíticas más profundas para visualizar y analizar cuantitativamente los resultados de su sistema (con mucho código de muestra).