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.
package require psfgen
topology ../0-inputs/top_all27_prot_lipid.inp
pdbalias residue HIS HSE
pdbalias atom ILE CD1 CD
segment T {pdb TC5b_input.pdb}
coordpdb TC5b_input.pdb T
guesscoord
writepdb tc5b.pdb
writepsf tc5b.psf
Este archivo contiene la siguiente información:
psfgen
a través de VMD.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.HIS
a HSE
para que concuerde con la nomenclatura del archivo de topología.CD1
(carbonos delta) de los residuos ILE
como CD
.TC5b_input.pdb
. También se añaden hidrógenos.TC5b_input.pdb
y se asignan a los átomos del segmento T.tc5b.pdb
, correspondiente al segmento T.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.
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
.
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.
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:set molname "tc5b"
molname
con el texto "tc5b"
, que corresponde al nombre de nuestra proteína.package require solvate
solvate ${molname}.psf ${molname}.pdb -t 15 -o ${molname}_temp
_temp
en tu carpeta de trabajo. Y podrás verlos en la ventana de visualización del VMD.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
.
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.