Preparación del sistema

Vamos a comenzar a preparar el sistema de la proteína tc5b partiendo del archivo TC5b_input.pdb, el cual puedes descargar desde el repositorio de github, en la carpeta 1-topologia.

Como primer paso debemos generar un archivo de coordenadas (.pdb) y un archivo de topología (.psf) a partir del archivo TC5b_input.pdb. La idea es que los nuevos archivos sigan la nomenclatura y las especificaciones del campo de fuerza CHARMM, que usaremos para llevar a cabo la simulación. Para lograrlo usaremos el archivo gen_psf.tcl que contiene la siguiente información para comenzar a construir el sistema.

Este archivo contiene la siguiente información:

  1. Cargamos la librería psfgen a través de VMD.
  2. Llamámos al archivo de topología top_all27_prot_lipid.inp, que se encuentra en el directorio 0-inputs. Si el archivo está en otro directorio, asegúrate de indicar el path en el script.
  3. Renombramos todos los residuos HIS a HSE para que concuerde con la nomenclatura del archivo de topología.
  4. Renombramos todos los átomos CD1 (carbonos delta) de los residuos ILE como CD.
  5. Se crea un segmento T con los átomos del archivo TC5b_input.pdb. También se añaden hidrógenos.
  6. Se leen las coordenadas del archivo TC5b_input.pdb y se asignan a los átomos del segmento T.
  7. Las coordenadas de los átomos del segmento T que no se hayan podido leer del archivo pdb (hidrógenos, por ejemplo) son asignadas de acuerdo a su definiciín en el archivo de topología.
  8. Se guarda en el directorio actual un nuevo archivo .pdb, tc5b.pdb, correspondiente al segmento T.
  9. Se guarda en el directorio actual un archivo .psf (protein structure file); tc5b.psf, con la información estructural de la proteína.

A continuación, vamos a correr el script desde la terminal a través del VMD en modo texto. Para ello, ejecuta el siguiente comando en una terminal.

¡Atención!

Recuerda que al ejecutar el comando desde la Terminal debes estar en el directorio donde está el archivo gen_psf.tcl

Como resultado VMD ejecutará psfgen usando los comandos indicados en el archivo. Mientras se construye el sistema, la terminal irá arrojando una serie de mensajes:


...
psfgen) Info: writing pdb file tc5b.pdb
psfgen) Info: Atoms with guessed coordinates will have occupancy of 0.0.
psfgen) Info: pdb file complete.
psfgen) Info: writing psf file tc5b.psf
psfgen) total of 304 atoms
psfgen) total of 310 bonds
psfgen) total of 565 angles
psfgen) total of 843 dihedrals
psfgen) total of 49 impropers
psfgen) total of 0 explicit exclusions
psfgen) total of 18 cross-terms
psfgen) Info: psf file complete.

Si todo sale bien verás que dos nuevos archivos han sido creados en tu carpeta de trabajo: tc5b.psf y tc5b.pdb.

Solvatación de la proteína en caja de agua

Ahora procederemos a solvatar a la proteína, es decir, ponerla en una caja de agua que permita aproximar al sistema a un ambiente fisiolǵico.
Si has clonado o descargado el repositorio de Github encontrarás en él el un pequeño script llamado solvate_wat_box.tcl el cual puedes usar directamente para solvatar tu sistema siempre y cuando existan los archivos de entrada necesarios. Sin embargo, en este tutorial iremos paso a paso trabajando con los comandos del archivo solvate_wat_box.tcl, pero directamente desde la consola Tk/Tcl de VMD.

  1. Crea una nueva carpeta llamada 2-solvatar_wt y copia en ella los archivos tc5b.psf y tc5b.pdb. Abre VMD desde este nuevo directorio y después ve a la pestaña Extensions > Tk Console. Esto abrirá una terminal donde procederemos a escribir los siguientes comandos:
  2. Ejecuta:
    set molname "tc5b"

    Esto generará una variable llamada molname con el texto "tc5b", que corresponde al nombre de nuestra proteína.
  3. package require solvate
    solvate ${molname}.psf ${molname}.pdb -t 15 -o ${molname}_temp

    Solvatará la proteína en una caja de agua con un padding de 15 A.
  4. Tras ejecutar la línea anterior, verás que se han creado dos nuevos archivos con el sufijo _temp en tu carpeta de trabajo. Y podrás verlos en la ventana de visualización del VMD.

Neutralización del sistema

A continuación vamos a proceder a neutralizar el sistema para obtener una carga neta de 0, para ello agregaremos iones de Cloro o Sodio según se requiera. Por lo tanto, no está de más saber qué carga tiene nuestro sistema antes de neutralizarlo. Para ello, ejecutalo siguiente:

eval "vecadd [[atomselect top all] get charge]"
1.00000018812716

Dicho comando obtiene la carga de todos los átomos del sistema ([atomselect top] get charge) y procede a sumar dichos valores (eval vecadd ...).

Ahora procedemos a neutralizar el sistema:

autoionize -psf ${molname}_temp.psf -pdb ${molname}_temp.pdb -neutralize -o ${molname}_wb

El comando autoionize toma como entrada los archivos _temp.psf y _temp.pdb que creamos en el paso anterior, y la bandera -neutralize se encarga de añadir iones de Cloro o Sodio según la carga del sistema.
¿Qué iones y cuántos se agregaron al sistema?
Finalmente, dos nuevos archivos tc5b_wb.psf y tc5b_wb.pdb son creados en el directorio.
Además la ventana main del VMD mostrará dos sistemas, el _temp y el _wb, este último es el que nos interesa y seguiremos trabajando con él en el siguiente apartado. mientras tanto, para avitar confusiones puedes borrar de la sesión de VMD todos los sistemas cargados ejecuatando: mol delete top.

Cálculo de las medidas de la caja de agua

Para obtener las medidas de la caja de agua vamos a utilizar la siguiente serie de comandos, los cuales podemos encontrar en el archivo solvate_wat_box.tcl. Para entender qué es lo que hace este pequeño script, puedes revisar los comentarios que lo acompañan, aunque en términos generales lo que hará es abrir los archivos tc5b_wb.psf/pdb y calcular el tamaño y centro de la caja de agua para depués guardar dichos datos en un archivo llamado box_dims.txt.


# En caso de haber cerrado la seción del VMD, volvemos a crear la varaible molname.
set molname "tc5b"
# Abrimos los archivos de topología y coordenadas de la proteína.
mol new ${molname}_wb.psf
mol addfile ${molname}_wb.pdb
# Variable con todos los átomos del sistema neutralizado.
set molname "tc5b"  
# Variable con todos los átomos del sistema neutralizado.
set sist_neutro [atomselect top all]
# Coordenadas mínimas y máximas xyz del sistema.
set box_size [measure minmax $sist_neutro]
# Coordenadas xyz del centro del sistema.
set box_center [measure center $sist_neutro]

# Guarda en un archivo las dimensiones y centro de la caja
set file [open box_dims.txt w]
# Cálculo de las dimensiones [maximo - minimo]
set x_dim [expr [lindex [lindex $box_size 1] 0] - [lindex [lindex $box_size 0] 0]]
set y_dim [expr [lindex [lindex $box_size 1] 1] - [lindex [lindex $box_size 0] 1]]
set z_dim [expr [lindex [lindex $box_size 1] 2] - [lindex [lindex $box_size 0] 2]]
# Guardamos los datos en el archivo.
puts $file "cellBasisVector1\t$x_dim\t0.0\t0.0"
puts $file "cellBasisVector2\t0.0\t$y_dim\t0.0"
puts $file "cellBasisVector3\t0.0\t0.0\t$z_dim"
set x_center [lindex $box_center 0]
set y_center [lindex $box_center 1]
set z_center [lindex $box_center 2]
puts $file "cellOrigin\t$x_center\t$y_center \t $z_center
close $file

Vamos a ejecutar dicho archivo con el siguiente comando:

No olvides que debes ejecutarlo desde el directorio con los archivos tc5b_wb.psf/pdb.

Como resultado, el archivo box_dims.txt habrá sido creado y su contenido lo usaremos en la siguiente sección.