Você está na página 1de 29

GROMACS: Tutorial para iniciantes (em Português-BR)

[GROMACS: Beginners Tutorial (Portuguese-Brazil)]

1
- Tutorial Introdutório GROMACS -

GROMACS: Tutorial para iniciantes (em Português-BR)


[GROMACS: Beginners Tutorial (Portuguese-Brazil)]

(Jan/2010)

Versão 1.2
Ricardo O. S. Soares , MsC.
Group of Biological Physics, Dept. of Physics & Chemistry, Pharmaceutics Sciences
Faculty from Ribeirão Preto - University of São Paulo.

Av. do Café, S/N - ZIP:14040-903 - Ribeirão Preto, São Paulo, Brazil - Phone: +55 1636024840.

http://lattes.cnpq.br/0777038258459931

ross_usp@yahoo.com.br, rsoares@fcfrp.usp.br

2
- Tutorial Introdutório GROMACS -

Considerações Gerais

Motivação do Tutorial. Este tutorial vem com o objetivo de introduzir passo a


passo uma simulação simples de dinâmica molecular em proteínas utilizando o
pacote de programas GROMACS. Inicialmente elaborado para auxiliar
estudantes iniciantes nesse campo em nosso laboratório, este tutorial em
português foi adaptado para atender as necessidades de um público mais
geral. Agradeço o Dr. David van der Spoel pelo convite e pela oportunidade.

Versão GROMACS Utilizada. Neste tutorial utilizamos a versão 3.3.3,


imediatamente anterior à versão 4.0. Esta última versão contém algumas
inovações, porém ainda não se conhecem eventuais bugs que possam
emergir, por isso é desejável aguardarmos um pouco mais.

Para quem serve esse tutorial (Pré Requisitos). Este manual serve para
estudantes de graduação ou pós graduação que não possuam noção alguma
sobre a dinâmica molecular, em especial no funcionamento do pacote
GROMACS. O usuário deve estar habituado com conceitos básicos da
computação. Habilidade básica em Linux é desejável, porém o tutorial traz
algumas dicas e uma tabela básica de comandos que podem ajudar aqueles
que nunca trabalharam com esse sistema operacional.

Dificuldade do Tutorial. É muito importante que o usuário possua fidelidade em


seguir os passos, para maior eficiência. Não é recomendado substituir uma
proteína por outra (neste tutorial), visto que as cargas, número de aminoácidos
etc mudam, muitas vezes radicalmente, o que pode alterar drasticamente os
resultados finais. Este texto foi escrito pensando como um aluno que nunca teve
contato com a área, então acredito que não existam grandes dificuldades.

Atualização do Tutorial. O tutorial tentará manter-se atualizado, no entanto,


caso algum link apresentado aqui não funcione, por favor, escreva no e-mail
de contato (página anterior), para atualização.

3
- Tutorial Introdutório GROMACS -

Dicas gerais:

- Sempre leia o manual oficial, ele tem informações muito importantes sobre a
dinâmica molecular e o funcionamento do GROMACS.

- Ainda não se tem notícia de um tutorial que consegue esclarecer


completamente o usuário, dúvidas sempre existirão. O que fazer nesses casos?
www.google.com

- O console (ou terminal) é uma janela que aceita comandos de texto e


oferece uma interface poderosa. Se você estiver começando a trabalhar no
Linux, habitue-se a utilizá-lo sempre. Procure em seu sistema como você acessá-
lo.

Lista de Comandos básicos no console do Linux:

Acessar diretório .........................................................................cd “nome do diretório”


Criar diretório .........................................................................mkdir “nome do diretório”
Remover diretório.................................................................... rm –r “nome do diretório”
Remover arquivo ........................................................................rm “nome do arquivo”
Visualizar nome de arquivos no diretório, em lista ............................................... ls -lkt
Copiar arquivo .........................cp “nome do arquivo” “/caminho_da_pasta_alvo”
Mover arquivo ......................... mv “nome do arquivo” “/caminho_da_pasta_alvo”
Renomear arquivo ............................................mv “nome do arquivo” “novo nome”
Descompactar arquivos tar.gz ................................................. tar zxvf “arquivo.tar.gz”
Modo superusuário ................................................ su “password” ou sudo “password”

Dica: utilize a função da tecla “tab” de completar os nomes de arquivos e


comandos no console do Linux, isso traz mais dinâmica à interface.
Exemplificando, se você digitar a chamada do programa “grompp”, digitando
apenas “grom” e pressionando a tecla “tab” o console completa o resto para
você. Isso é particularmente útil para arquivos de nome longo, como
1TSK_273K_langevin01.gro.

4
- Tutorial Introdutório GROMACS -

Tutorial GROMACS

1.0 Configuração do Sistema

Apesar de existirem maneiras de se obter versões do GROMACS para o


sistema operacional Windows®, com ênfase não se recomenda o uso destas,
pois o código do programa já vem pronto para ser compilado em Linux™, com
todas as otimizações necessárias para se obter um melhor desempenho. Além
do mais, vários dos pré-requisitos são também otimizados para Linux, além do
qual por si só oferece plataforma para processamento muito mais rápido que o
outro sistema operacional. Por esta e outras razões, optamos pela elaboração
de um tutorial direcionado para Linux.

1.0.1 Downloads e criação de pastas

Apresento aqui duas alternativas: o usuário pode optar por baixar (download)
as pastas com os arquivos já prontos, concentrando-se apenas na simulação
em si; ou seguir os passos iniciais do tutorial para a criação desses arquivos. A
primeira opção é mais rápida, porém a segunda é mais informativa e
altamente recomendada, visto que explica vários dos fundamentos da
parametrização da simulação.

1.1 Pré-requisitos

Para se obter máximo desempenho do GROMACS, é necessária a


instalação de alguns aplicativos adicionais antes do procedimento principal.
Essa seção descreve passo a passo as etapas dessa preparação inicial. É
importante ressaltar que a instalação é a mesma para computadores multi
core, e sistemas 32 ou 64 bits. Caso haja algum problema de permissão para
acessar pastas ou modificar arquivos, utilize no terminal o comando “sudo
chmod 777 ‘nome do arquivo/ou pasta’” para torná-lo (a) acessível (cuidado
com arquivos de sistema!).

Atenção: Antes de começar, certifique-se que você


instalará tudo em áreas de livre acesso do Linux,
ou, preferencialmente nas pastas default como
super usuário (requer senha).

5
- Tutorial Introdutório GROMACS -

(I) Compiladores:

Para compilar o código fonte GROMACS (veja na seção


1.2 como proceder para obtê-lo) devemos
primeiramente possuir os subsídios para transformá-lo em
um aplicativo executável, ou seja, precisamos de
compiladores. Neste caso, são necessários compiladores
C/C++ e FORTRAN, os quais se encontram na maioria dos
casos já instalados em distribuições Linux mais recentes.
Via de regra, apenas o primeiro compilador é necessário,
mas o segundo - em conjunto com o primeiro – se faz
desejável pela otimização de loops internos do
GROMACS, aumentando a velocidade geral das
simulações1. Usuários de Linux (K)Ubuntu podem baixar, se
necessário, os compiladores g++ (necessário para a
instalação do passo II) e g77 através dos comandos
“sudo apt-get install g++” e “sudo apt-get install g77”
para a tarefa ou de maneira mais visual pelo aplicativo
de instalação automática “Synaptic ou Adept Package
Manager”, encontrados no Ubuntu/Kubuntu.

(II) LAM/MPI:

Se o usuário desejar que o programa funcione através de


processamento em paralelo2,3 (altamente
recomendável), ele pode obter os códigos fonte livres
através do endereço:

ftp://ftp.gromacs.org/pub/prerequisite_software/lam-
7.0.6.tar.gz

1 Para notificar-se se você já possui o g77, vá ao console, digite “g7” e tecle “TAB”. Caso o
console complete “g7” para “g77”, tudo bem, caso contrário ele está ausente do sistema. O
mesmo procedimento serve para o “g+”.
2 O processamento em paralelo é um processamento que utiliza mais de um processador.

Então em uma máquina Dual Core, é possível o processamento por dois núcleos. Isso aumenta
dramaticamente a velocidade da simulação.
3 Para descobrir quantos processadores existem em seu computador, digite no terminal: “grep

processor /proc/cpuinfo”. Atenção que a contagem inicia-se no zero, ou seja um dual core terá
processador 0 e processador 1 (dois, portanto).

6
- Tutorial Introdutório GROMACS -

Após descompactar o arquivo em uma pasta de sua


preferência, entre nesta e através do console digite e
entre:

./configure
(aguarde o processamento...)

Caso queira, você pode escolher o diretório de


instalação com o comando “--prefix”. É possível também
a escolha de seus compiladores preferidos,
respectivamente para C (CC), C++ (CXX) e/ou FORTRAN
(FC), com o comando abaixo:

./configure CC=cc CXX=g++ FC=f77 prefix=/diretorio/de/instalação


(aguarde o processamento...)

Prossiga com:

make
(aguarde o processamento...)

Agora a instalação propriamente dita:

make install
(aguarde o processamento...)

Tudo pronto. Qualquer eventual problema relacionado


com essa instalação é só acessar os fóruns de
http://www.lam-mpi.org.

(III) Biblioteca FFTW:

Esta livraria é responsável pelas rotinas de transformadas


de Fourier no programa principal. Não é obrigatória,
porém é gratuita, mais robusta e mais rápida que a
versão distribuída e já incorporada ao código do

7
- Tutorial Introdutório GROMACS -

GROMACS4. Neste tutorial sugerimos a versão FFTW 3.2.2


atualmente, a qual pode ser obtida no endereço:

ftp://ftp.fftw.org/pub/fftw/fftw-3.2.2.tar.gz

Para a configuração manual deste pacote é interessante


procedermos com as versões simples e dupla precisão,
mas você pode escolher apenas uma, a de sua
preferência. Existem muitas discussões sobre vantagens e
desvantagens entre os dois tipos de precisão. De forma
simplificada, a precisão simples é mais rápida e menos
refinada; características estas contrárias da dupla
precisão. Para uma discussão mais aprofundada sobre o
assunto, visite os fóruns (mailing list) de
http://www.gromacs.org.

Primeiramente, é necessário que você possua a


biblioteca “libc6-dev”, que trabalha juntamente com o
compilador C. Novamente, esta biblioteca pode ser
obtida pelo Synaptic ou Adept nos sistemas Linux
(K)Ubuntu, ou pelo console.

Para precisão simples, vá ao diretório onde foram


descompactados os arquivos e digite no console:

./configure --enable-float --enable-threads prefix=/dir/de/instalação


(aguarde o processamento...)

Caso escolha a precisão dupla, digite o mesmo


comando acima, exceto o “--enable-float”.

Atenção, para precisão simples: se você utiliza


computador plataforma i686 ou x86-64, adicione ao fim
do comando acima “--enable-sse”; se você utiliza
Pentium4, Xeon ou x86-64, adicione “--enable-sse2”.
Caso você não tenha conhecimento da arquitetura do
sistema, utilize no console o comando “uname -m” para
descobrir. Mais uma vez, recomenda-se a instalação do
diretório default, mas caso deseje mudar o endereço, é

4 Os próprios desenvolvedores do GROMACS aconselham a utilização da livraria externa FFTW.

8
- Tutorial Introdutório GROMACS -

só manter a última parte do comando acima (“--


prefix=/...”).

Prosseguindo com a instalação, construa o arquivo:

make
(aguarde o processamento...)
Agora a instalação:

Agora a instalação:

make install
(aguarde o processamento...)

Agora, os preparativos estão prontos. Hora da instalação do


GROMACS.

1.2 Instalação do GROMACS

Primeiramente é necessário a obtenção do código fonte, dessa forma,


acesse o link abaixo para a versão mais atual no momento (3.3.3)5:

ftp://ftp.gromacs.org/pub/gromacs/gromacs-3.3.3.tar.gz

Após a extração dos arquivos comprimidos, é hora da configuração.


Acesse o diretório em que GROMACS foi descompactado e entre:

./configure --enable-mpi prefix=/dir/de/instalação


(aguarde o processamento...)

O segundo termo é necessário em nosso tutorial, pois pretendemos


executar o programa em paralelo, obtendo assim maior velocidade. Para
precisão dupla, adicione o comando ao fim da linha “--disable-float”. Caso
deseje utilizar a versão 2 do fftw (lembre-se que aqui utilizamos a 3), é só
adicionar o comando “--with-fft=fftw2” na mesma linha.

5Fique atento para as versões 4.x. Elas prometem ser muito mais eficientes e inovadoras, porém
ainda (por enquanto) um pouco instáveis. Para detalhes, leia a referência 17. Esta versão do
guia de instalação provavelmente não servirá perfeitamente para esta versão (para as versões
4.x, baixe a versão apropriada de tutorial em Wiki-GROMACS)

9
- Tutorial Introdutório GROMACS -

Novamente fique atento para o diretório de instalação. Caso queira


escolher um, no caso de não ser possível o acesso de administrador, mantenha
o comando “--prefix=/...”, caso contrário, remova essa parte e deixe o
programa ser instalado na raiz (recomendado).

Antes do próximo passo, é valido nos atentarmos a uma situação que


pode vir a ocorrer. O sistema procura a instalação do FFTW nas pastas
/usr/local/include e /usr/local/lib. Se você instalou o FFTW sem a opção de
escolher o local de instalação, é muito provável que eles estejam no endereço
procurado e não haja problemas. Caso contrário, se você escolheu um
diretório para instalação, como por exemplo “/home/computador/fftw”, então
é necessário os comandos de exportação abaixo:

Para sistemas shell tcsh:

setenv CPPFLAGS -I/home/computador/fftw/include


setenv LDFLAGS -L/home/computador/fftw/lib

Para sistemas shell bash:


export CPPFLAGS=-I/home/computador/fftw/include
export LDFLAGS=-L/home/computador/fftw/lib

Não se preocupe caso você não saiba qual é seu tipo de “shell”, se por
exemplo você digitar um desses comandos “bash” em sistema “tsch”, ele não
funcionará, nesse caso, troque o comando.

Se neste ponto você se arrependeu de algum comando ou se equivocou


na parte de configuração do GROMACS, é só digitar o comando abaixo e
digitar novamente o comando de configuração com os parâmetros desejados.

make distclean
(aguarde o processamento)

Estamos quase finalizando a instalação. Agora mais um passo: a


compilação. Para isso simplesmente digite:

make
(aguarde o processamento – vá tomar um café)
Finalmente, para concluir a instalação, o último

10
- Tutorial Introdutório GROMACS -

Então:

make install
(aguarde o processamento – outro café...)

Para atribuir os programas do pacote aos atalhos, construa os links com o


comando:

make links
(aguarde o processamento)

Tudo pronto! Agora vamos ao ponto principal deste tutorial.

2.0 Simulação de proteínas solvatadas por Dinâmica Molecular (em 10


passos)

1º Passo : Criando as pastas

Vamos primeiramente criar pastas que acomodarão os arquivos necessários de


forma organizada (caso você tenha optado por não baixar as pastas).
Lembrando que é importante copiar os nomes de forma idêntica aos
apresentados aqui (sem acentos), crie uma pasta geral para você trabalhar e
colocar seus arquivos e subpastas; nomeie-a “Tutorial”. Em seguida dentro
desta, crie 5 pastas: “adicionar_ions”, “minimizacao”, “restricao”, “dinamica” e
“dados”.

2º Passo: Obtendo o modelo protéico

Agora precisamos obter a estrutura protéica a qual participará da simulação.


Para isso vá para o depósito oficial de arquivos de estrutura de proteínas na
internet, o RCSC-PDB (Research Collaboratory for Structural Bioinformatics –
Protein Data Bank), mais conhecido simplesmente como PDB
(http://www.pdb.org/).

11
- Tutorial Introdutório GROMACS -

Aqui utilizaremos a proteína TS-Kappa. Localize a barra de busca e digite


“1TSK”. Abrindo a página correspondente, clique no ícone “Download PDB file”
(Fig. 2.1)

Figura 2.1. Download da proteína 1TSK no site do PDB.

Uma vez em posse de “1tsk.pdb”, você pode visualizá-lo para ter mais
intimidade com este tipo de arquivo. Para isso é obviamente necessário algum
programa de visualização como o PyMol (http://pymol.sourceforge.net/),
DeepView-SwissPDBViewer (http://spdbv.vital-it.ch/), Rasmol
(http://www.umass.edu/microbio/rasmol/) , VMD
(http://www.ks.uiuc.edu/Research/vmd/), entre outros.

3º Passo:

Com o arquivo “1tsk.pdb” salvo na pasta “Tutorial”, agora devemos criar três
arquivos essenciais, os quais guardam os valores dos parâmetros desejados
para a simulação.Crie primeiro três arquivos de texto vazios. Em seguida copie
o conteúdo de cada quadro abaixo (com exceção das explicações de cada
linha entre parênteses, de cor cinza)6 em cada arquivo separadamente,
produzindo assim três tipos diferentes. Nomeie cada arquivo de acordo com o
cabeçalho do conteúdo copiado: “minimizacao.txt”, “restricao.txt” e
“dinamica.txt”. Agora mude a extensão dos arquivos de “.txt” para “.mdp”.
Finalmente, mova os arquivos às pastas assinaladas da maneira indicada na
tabela abaixo:

6 Para maiores explicações, favor referir-se ao manual gromacs.


ftp://ftp.gromacs.org/pub/manual/manual-3.3.pdf

12
- Tutorial Introdutório GROMACS -

minimizacao.mdp à pasta
“minimizacao”
minimizacao.mdp * à pasta
“adicionar_ions”
restricao.mdp à pasta
“restricao”
dinamica.mdp à pasta
“dinamica”
*Faça uma cópia

------minimizacao.mdp------
cpp = /usr/bin/cpp (Localização do pré processador C)
define = -DFLEXIBLE (Define a flexibilidade do soluto)
contraints = none (Tipo de restrição)
integrator = steep (Tipo de integrador, aqui o “steepest descent”)
nsteps = 200 (Número de passos)
nstlist = 10 (Freqüência de atualização da lista de vizinhos, em passos)
rlist = 1.0 (Raio de corte para vizinhos de baixo alcance)
coulombtype = pme (Eletrostática de Coulomb, aqui escolhemos a “Fast Particle-Mesh Ewald”)
rcoulomb = 1.0 (Raio de corte Coulomb)
vdw-type = cut-off (Tipo de energia Van der Waals, aqui “cut-off”)
rvdw = 1.0 (Raio de corte para Lennard-Jones ou Potencial de Buckingham)
nstenergy = 500 (Freqüência a escrever as energias no arquivo)
emtol = 1000.0 (valor máximo para a convergência de energia, em kJ.Mol-1.nm-1)
emstep = 0.01 (passo inicial, em nm)
---------------------------

13
- Tutorial Introdutório GROMACS -

---------------restricao.mdp-----------------
cpp = /usr/bin/cpp (Localização do pré processador C)
define = -DPOSRES (Define a flexibilidade/mobilidade do soluto, aqui restrita)
contraints = all-bonds (Tipo de restrição)
integrator = md (Tipo de integrador, aqui o “md”)
nsteps = 50000 (Número de passos: nsteps X dt = Tempo da simulação em ps)
dt = 0.002 (“Time-Step”, para integração, em ps)
nstlist = 10 (Freqüência de atualização da lista de vizinhos, em passos)
nstxout = 100 (Frequencia a escrever a trajetória em arquivo)
nstvout = 100 (Frequencia a escrever as velocidades em arquivo)
nstxtcout = 100 (Frequencia a escrever as coordenadas em arquivo)
nstenergy = 100 (Frequencia a escrever as energias em arquivo)
rlist = 1.0 (Raio de corte para vizinhos de baixo alcance)
coulombtype = pme (Eletrostática de Coulomb, aqui escolhemos a “Fast Particle
Mesh Ewald”)
rcoulomb = 1.0 (Raio de corte Coulomb, em nm)
rvdw = 1.0 (Raio de corte para Lennard-Jones ou Potencial de
Buckingham)
Tcoupl = Berendsen (Tipo de temperatura, aqui usamos o “berendsen”)
tc-grps = protein non-protein (grupos separados ao banho de temperatura)
tau-t = 0.1 0.1 (Constante de tempo para a temperatura)
ref-t = 298 298 (Temperatura, em Kelvin)
energygrps = Protein SOL (Monitoramento de Energia)
Pcoupl = no (Barostato, desligado)
tau_p = 0.5 (Valor de Tau, no termostato de Berendsen)
compressibility = 4.5e-5 (Compressibilidade da água a 1 ATM e 300k, unidade em bar-1)
ref_p = 1.0 (Referencial para o barostato de Berendsen)
gen_vel = yes (Gerar velocidades iniciais por distribuição de Maxwell)
gen_temp = 298.0 (Temperatura inicial, em Kelvin)
gen_seed = 116247 (Semente do número aleatório inicial)

-------------------------------------------

14
- Tutorial Introdutório GROMACS -

---------------dinamica.mdp-----------------
cpp = /usr/bin/cpp (Localização do pré processador C)
define = -DFLEXIBLE (Define a flexibilidade/mobilidade do soluto, aqui livre)
contraints = all-bonds (Tipo de restrição)
integrator = md (Tipo de integrador, aqui o “md”)
nsteps = 500000 (Número de passos. nsteps X dt = Tempo da simulação em ps)
dt = 0.002 (“Time-Step”, para integração)
nstxout = 100 (Frequencia a escrever a trajetória em arquivo)
nstvout = 100 (Frequencia a escrever as velocidades em arquivo)
nstxtcout = 100 (Frequencia a escrever as coordenadas em arquivo)
nstenergy = 500 (Frequencia a escrever as energias em arquivo)
nstlist = 10 (Freqüência de atualização da lista de vizinhos, em passos)
rlist = 1.0 (Raio de corte para vizinhos de baixo alcance)
coulombtype = pme (Eletrostática de Coulomb, aqui escolhemos a “Fast Particle
Mesh Ewald”)
rcoulomb = 1.0 (Raio de corte Coulomb)
vdw-type = cut-off (Tipo de energia Van der Waals, aqui “cut-off”)
rvdw = 1.0 (Raio de corte para Lennard-Jones ou Potencial de
Buckingham)
Tcoupl = Berendsen (Tipo de temperatura, aqui usamos o “berendsen”)
tc-grps = protein non-protein (grupos separados ao banho de temperatura)
tau-t = 0.1 0.1 (Constante de tempo para a temperatura)
ref-t = 298 298 (Temperatura, em Kelvin)
energygrps = Protein SOL (Monitoramento de Energia)
Pcoupl = no (Barostato, desligado)
tau_p = 0.5 (Valor de Tau, no termostato de Berendsen)
compressibility = 4.5e-5 (Compressibilidade da água a 1 ATM e 300k, unidade em bar-1)
ref_p = 1.0 (Referencial para o barostato de Berendsen)
gen_vel = yes (Gerar velocidades iniciais por distribuição de Maxwell)
gen_temp = 298.0 (Temperatura inicial, em Kelvin)
gen_seed = 116247 (Semente do número aleatório inicial)
-------------------------------------------

Importante: No manual do GROMACS existe cada um desses parâmetros bem


detalhados (em inglês)

4º Passo: Convertendo o arquivo .pdb em topologia .gro

Agora vamos efetivamente começar a trabalhar com os programas do


GROMACS!

O programa pdb2gmx (Protein Data Bank to GROMACS), como o nome


já diz, transforma arquivos .pdb em arquivos GROMACS com a extensão .gro, as
quais são apropriadas para a dinâmica molecular neste pacote específico. Este
programa, excluindo-se mdrun, é o que mais solicita os arquivos de campo de
força, sendo distribuídos em conjunto com GROMACS os seguintes:

15
- Tutorial Introdutório GROMACS -

oplsaa OPLS-AA/L all-atom force field (2001 aminoacid dihedrals)


G43b1 GROMOS96 43b1 Vacuum Forcefield
G43a1 GROMOS96 43a1 Forcefield
G43a2 GROMOS96 43a2 Forcefield (improved alkane dihedrals)
G45a3 GROMOS96 45a3 Forcefield
G53a5 GROMOS96 53a5 Forcefield
G53a6 GROMOS96 53a6 Forcefield
gmx Gromacs Forcefield (a modified GROMOS87, see manual)
encads Encad all-atom force field, using scaled-down vacuum charges
encadv Encad all-atom force field, using full solvent charges

O programa é bastante interativo: permite ao usuário escolher a carga


(número e posição) dos aminoácidos dissociáveis (Asp, Glu, Cys, Lys ou His),
bem como suas possíveis associações com grupos heme (His) ou pontes
dissulfeto (Cys-Cys). Pontes de hidrogênio são definidas com base em simples
critério geométrico, especificado pelo ângulo hidrogênio-doador-aceptor
máximo e distância doador-aceptor (-angle e -dist, respectivamente). No caso
de cadeias consecutivas em um único arquivo .pdb, pdb2gmx pode, através
da opção –merge, juntar tudo em uma única definição de molécula, o que
pode ser útil no manuseio de alguns tipos de arquivos com pontes dissulfeto.

Na conversão, os átomos são rearranjados de acordo com a arquitetura


GROMACS. No entanto, os formatos .gro e .g96 não apresentam suporte a
identificadores de cadeias, por isso seria útil a utilização de uma entrada .pdb
através do comando –o.

A movimentação diedral pode ser alterada tanto pela eliminação de


hidrogênios e substituição de anéis aromáticos comuns por “virtuais”, quanto
pelo aumento da massa dos hidrogênios por um fator de 3 (o que pode
também ser feito com a água – deutério/trítio). O aumento da massa dos
hidrogênios é compensado pela diminuição da massa de átomos pesados
bem fixados por fortes ligações, então a massa total do sistema permanece a
mesma.

Através do comando, no diretório “Tutorial” onde está localizado 1TSK.pdb


(atente-se para as letras maiúsculas),digite:

pdb2gmx –f 1TSK.pdb –o proteina01.gro –p topologia.top –inter -ignh

16
- Tutorial Introdutório GROMACS -

Explicando os parâmetros: “-f” sempre significa entrada de dado; “-o”


indica o arquivo de saída, ou seja, você pode dar o nome que quiser (aqui nós
geramos o “proteina01.gro”); “-p” é a entrada do arquivo de topologia (neste
único caso é a saída, pois o estamos gerando); “-inter” permite o usuário
escolher manualmente o posicionamento de pontes dissulfeto, campo de força
etc; “-ignh”: ignorar átomos de hidrogênio do arquivo .pdb.

O programa irá lhe apresentar algumas opções, aqui vão elas:

• escolha do campo de força: escolha o OPLS-AA/L;


• escolha das cargas: lisinas (+1), argininas (+1), NH+(+1), ácido
aspártico (-1), COO-(-1);
• escolha das pontes dissulfeto: ligue todas as três, pressione “y” para
isso.

Juntamente com os arquivos “proteina01.gro” e “topologia.top”,


também foi gerado o “posre.itp”, o qual inclui-se na topologia da molécula
como restrição às moléculas de água a serem adicionadas mais tarde.

5º Passo: Criando a caixa de simulação

Agora precisamos criar um ambiente para abrigar a proteína juntamente


com a água (ainda ausente). Para este fim se enquadra o programa editconf.
Neste o arquivo de entrada é “proteina01.gro”, o qual será modificado para
“proteina02.gro”, agora adicionado da caixa cúbica vazia. Digite o comando
abaixo:

editconf –f proteina01.gro –o proteina02.gro –bt cubic –c –d 1.2

editconf é um programa essencial para o propósito de dinâmica


molecular de proteínas solvatadas, e como tal, apresenta várias funções.
Primeiramente, editconf converte estruturas genéricas aos formatos .gro, .g96
ou .pdb. No entanto, essa conversão pode dar-se ao mesmo tempo em que se

17
- Tutorial Introdutório GROMACS -

constrói a caixa de solvatação ao redor da proteína, com os seguintes


parâmetros: -box, -d, -angles, -bt, especificando respectivamente três vetores
como arestas da caixa, centralizando o sistema (raio de corte, em
nanômetros), gerando ângulos dos vértices e finalmente determinando o tipo
de caixa triclinic, cubic, dodecahedron ou octahedron. Observe que opções
como –bt podem ser conflitantes com funções –box e –angle, já que a
variação angular e de arestas é rígida ou inválida em caixas pré determinadas
(triclinic, cubic, dodecahedron).

A opção –box requer apenas um valor para uma caixa cúbica,


dodecaedro e octaedro truncado. Com –d e uma caixa triclínica o tamanho
especificado em –box é utilizado. Com –d e uma caixa cúbica, dodecaédrica
ou octaédrica, as dimensões são ajustadas ao diâmetro do sistema, ou seja à
maior distância entre átomos, mais duas vezes a distância especificada (no
caso, 1.2 nm). Observe a figura 2.2 (o quadrado representa a caixa).

Figura 2. 2. Exemplificando o
distanciamento na caixa cúbica. Em
nosso caso, atribuímos d=1.2 nm.

6º Passo: Adicionando água à caixa de simulação

genbox é um aplicativo importante no pacote GROMACS, com ele


efetuaremos o preenchimento da caixa contendo uma proteína com
moléculas de água. Este processo leva em conta os contatos por raios de van
der Waals entre soluto e algumas moléculas de solvente, removendo assim as
segundas e evitando um conflito espacial. Essa análise é feita com base nos
dados encontrados no arquivo padrão vdwradii.dat;
O modelo de água que utilizaremos é o Simple Point Charge water (SPC),
sendo este apontado pelo arquivo da biblioteca spc216.gro. Naturalmente

18
- Tutorial Introdutório GROMACS -

podemos escolher outros modelos de água que apresentam suporte para este
programa, sendo incluídos no banco de dados como novas substâncias ou
como modificações de outras já existentes, sendo a única restrição para isso é
que suas moléculas sejam monoméricas.
Para este passo, digite no console, ainda no diretório principal:

genbox –cp proteina02.gro –o proteina03.gro –p topologia.top –cs spc216.gro

7º Passo: Lidando com possíveis cargas

A presença de aminoácidos e terminais protéicos carregados pode gerar


um desequilíbrio na topologia geral da proteína durante a simulação, já que o
sistema como um todo, por ser micro canônico (NVE: partículas,volume e
energia constantes), necessita ter uma carga resultante igual a zero (neutra).
Este programa adiciona cargas contrárias a aquelas geradas durante a
conversão do arquivo .pdb (pelo programa pdb2gmx), substituindo uma parte
do conjunto (proteína, solvente, aleatoriamente etc.) à escolha do usuário. Em
nosso caso, as extremidades C e N da proteína, bem como os aminoácidos
carregados positivamente (como lisinas) e outros negativamente (como ác.
glutâmicos) geraram carga positiva de +8 e negativa de -3. Isso exige a adição
de oito moléculas negativas para a neutralização das cargas positivas e três
positivas para a neutralização das negativas. Observe que o programa dá a
liberdade de substituição, no entanto não é uma boa idéia substituir partes da
proteína por estes íons inorgânicos, sendo a melhor opção a troca de 11
moléculas (8+3) de solvente (SOL) pelos íons livres, gerando uma carga total
neutra no sistema.

Mas antes de procedermos, precisamos comentar sobre o programa


grompp, pois ele será necessário agora.

Este é o pré-processador GROMACS (GROMACS PreProcessor). Como o nome


diz, ele pré processa um arquivo que irá para a simulação de dinâmica
molecular pelo programa mdrun, ou seja, qualquer simulação de dinâmica
molecular no GROMACS precisa antes ser parametrizada por este programa.
Grompp lê um arquivo de topologia, faz substituições necessárias no que se diz
respeito a tipos e configurações moleculares: ângulos e distâncias de ligação
podem ser convertidos em restrições (comando -r) por adição de hidrogênios
ou átomos pesados. É feita a leitura dos parâmetros a serem utilizados na futura
simulação, com correções para uma aceleração resultante se igualar a zero,

19
- Tutorial Introdutório GROMACS -

criando um arquivo binário o qual será a base para o mdrun trabalhar. O


comando –debug, o programa retorna mais detalhes do que foi feito no
processo.

Assim como mdrun, grompp também oferece suporte à paralelização do


sistema em múltiplos processadores. O comando –shuffle é fundamental para a
tarefa de distribuição automática igualitária de processamento entre os vários
nós do cluster; essa parte da simulação pode ser utilizada conjuntamente com
–sort, o qual otimiza o processo distribuindo moléculas de acordo com
coordenadas do sistema.

No caso de erros ou apenas avisos o programa gera uma pequena saída


na tela, alertando o usuário a possíveis correções pré dinâmica molecular.

Este aplicativo oferece suporte ao reinício de uma simulação


interrompida por motivos externos ao software, no entanto é tpbconv é mais
recomendado nestes casos.

Entre no diretório “adicionar_ions” e digite:

grompp –f minimizacao.mdp –o minimizacao.tpr –c ../proteina03.gro –p ../topologia.top

genion –s minimizacao.tpr –o proteina04.gro –p ../topologia.top –np 3 –pname NA+ -nn 8 –nname CL-

Para manter o número original de átomos no sistema, o prompt do


programa vai lhe dar as opções do meio a ser substituído pelos íons
neutralizantes a serem introduzidos. A melhor opção para nosso propósito é a
remoção de moléculas de água, ou seja, de solvente ( selecione a opção
número 12 (SOL)].

8º Passo: Minimização de energia

Este passo é necessário pois rearranja o sistema para promover a


remoção de contatos de van der Waals aberrantes originários pelas recém
introduzidas moléculas de água e pela rede de ligações de hidrogênio
rompidas. Essas variações espaciais podem gerar energias extremas, as quais
funcionam como estopins e são liberadas logo no inicio da etapa da dinâmica

20
- Tutorial Introdutório GROMACS -

molecular, com alta probabilidade de comprometimento da integridade da


estrutura inicial protéica pela ocasional introdução de distorções indesejáveis.

Caso a simulação não convirja para o valor crítico estimulado no arquivo


“minimização.mdp”, é só aumentar o valor do parâmetro “emtol”. ...

Entre no diretório “minimização” e digite o comando abaixo:

grompp –f minimizacao.mdp –o minimizacao.tpr –c ../adicionar_ions/proteina04.gro –p ../topologia.top

mdrun –s minimizacao.tpr -v

O pré-processador grompp é necessário para concatenar todos os


parâmetros necessários para a simulação em si através da geração de um
único arquivo, neste caso o “minimizacao.tpr”. É este arquivo que serve de
entrada para o programa principal do pacote GROMACS, o mdrun
(responsável pela dinâmica molecular – passo 7).

9º Passo: Dinâmica de restrição

A dinâmica de restrição prepara, neste penúltimo passo, a proteína para


a principal simulação. Nesta etapa, a proteína tem seus átomos restringidos, ou
seja, seus movimentos ficam limitados enquanto a água é livre para acomodar-
se de maneira otimizada ao longo de sua superfície. Fazemos isso porque com
a restrição dos movimentos da proteína, a água se organiza em função de um
suporte que não varia (na verdade varia, mas muito pouco) e tende a entrar
em equilíbrio em seu tempo padrão de relaxamento (~10ps). No entanto, por
segurança, é desejável rodarmos a simulação por um tempo de pelo menos
uma ordem de magnitude em relação ao valor bioquímico citado (rodaremos
nsteps(10000) X dt(0,002) = 20 ps). Para proteínas maiores, recomenda-se um
tempo maior, conforme o tamanho da cadeia aumenta.

21
- Tutorial Introdutório GROMACS -

Agora vá para o diretório “restricao” e digite:

grompp –f restricao.mdp –o restrição.tpr –c ../minimizacao/confout.gro –p ../topologia.top

mdrun –s restricao.tpr –v >&out&

tail –f out

A porção “–v >&out&” se encarrega de gerar um arquivo “out” que se


atualiza constantemente com a previsão de término da simulação. O
comando “tail” lê o arquivo “out” e mostra constantemente essa previsão na
tela.

10º Passo: Dinâmica Molecular

Finalmente chegamos à parte final do tutorial, aquela que gerará os


dados que serão utilizados para nossas análises ulteriores. Mas antes, vamos
comentar um pouco sobre este programa central ao pacote GROMACS: o
mdrun (Molecular Dynamics Run), o qual é responsável pela dinâmica
molecular propriamente dita.

O mdrun é o programa principal do pacote GROMACS. É o motor das


simulações de dinâmica molecular, além de ser capacitado a rodar simulações
de dinâmica browniana e langevinianas bem como de gradientes conjugados,
minimização de energia pelo método da descida oblíqua (mais conhecido
como Steepest Descent Energy Minimization) e refinamento de NMR. É
importante que a estrutura a entrar em simulação já esteja com sua energia
previamente minimizada, para evitar problemas como “explosões” na caixa de
hidratação por possíveis contatos próximos demais entre átomos (7º Passo).

Todo o processo desde os arquivos .pdb à conversão ao formato gromos,


à confecção da caixa de solvatação, ao preenchimento da mesma etc. foi
um caminho de preparação ao mdrun. Este programa lê o arquivo de entrada
e distribui a topologia de maneira apropriada ao tipo de simulação, se
disponíveis, em processadores paralelos. Primeiramente uma lista de
vizinhanças é feita, então as forças começam a serem computadas (com base
na temperatura e pressão), globalmente somadas e velocidades e posições
são atualizadas. Se necessário, uma “agitação” é feita para se restringir os
comprimentos e ângulos das ligações.

22
- Tutorial Introdutório GROMACS -

São gerados três arquivos ao fim do processo: a trajetória, o qual contém


as coordenadas de todos os átomos ao longo do tempo (portanto as
velocidades); a estrutura, guarda as coordenadas e velocidades do último
passo; a energia, salva valores de energia, pressão entre outros. Um arquivo de
log também é gerado, o qual pode vir a ser útil para fins de arquivamento do
processo.

Uma nova realização é possível (pelo comando –rerun) caso haja


necessidade. Energias e forças serão recalculadas, busca pela vizinhança será
feita em cada passo a menos que –nstlist seja igualado a zero no arquivo de
parametrização .mdp. Neste arquivo, podemos também personalizar funções
de potenciais para mdrun utilizar. Existem outros potenciais prontos no pacote,
tais como os do tipo Lennard Jones com normais Coulomb.

Com a opção –replex, o Replica Exchange Method (método de troca de


réplicas) é feito a cada n passos pré determinados, com recomendadas
variações de temperatura e semente de gerador de números aleatórios. As
velocidades são escaladas e a busca e cálculos de forças vizinhas a todos os
átomos são feitos a cada passo.

Sem mais delongas, entre no diretório “dinamica” e digite o seguinte


comando:

grompp –f dinamica.mdp –o dinamica.tpr –c ../restricao/confout.gro –p ../topologia.top

mdrun –s dinamica.tpr –v >&out&

tail –f out

Tudo pronto, agora é só relaxar e esperar o tempo de simulação, que


varia dramaticamente de acordo com cada equipamento. Neste caso que
atribuímos nsteps= 500.000 e dt=0,002, a simulação irá até completar seus 1000
ps (ou seja, 1 ns): isso geralmente dura algumas horas em computadores
medianos para o ano de 2008.

2.1 Analisando a simulação

Tão importante quanto saber simular trajetórias de proteínas em água por


dinâmica molecular é saber como interpretar e apresentar os dados obtidos.
Essa seção se propõe a apresentar alguns dos principais programas disponíveis
no pacote GROMACS com fins de análise de trajetória.

23
- Tutorial Introdutório GROMACS -

I) RMSD (Root Mean Square Deviation)

Uma das medidas mais comuns para se avaliar a condição da proteína


ao longo da trajetória é a quantificação da deformação da estrutura em
comparação à referência do ponto inicial. Essa avaliação é feita através do
RMSD (Root Mean Square Deviation), e pode ser calculada basicamente de
duas maneiras:

- Por ajuste de estruturas (fit). Para cada passo, a proteína é ajustada


espacialmente ao modelo inicial, então a seguinte equação é aplicada:

onde ri(t) e ri(o) são respectivamente a posição de um dado átomo no tempo t


arbitrário e no tempo inicial t=0. Para este cálculo, utiliza-se no GROMACS o
programa g_rms.

- Sem ajuste de estruturas. Com a quantificação do RMSD desta maneira, seu


valor tende a ser mais elevado em relação ao método anterior. Neste caso o
cálculo é feito por utilização de uma matriz de distância:

onde rij(t) e rij(o) se referem à distância entre os dois átomos i e j respectivamente


no tempo t arbitrário e no tempo inicial t=0. Essa medida é feita através do
programa g_rmsdist.

Em nossa análise, utilizaremos o primeiro método (no entanto é uma boa idéia o
uso de ambos os métodos, com posterior comparação, apenas em nível de
aprendizagem). Agora procedamos com o comando (dentro da pasta
“dinamica”):

24
- Tutorial Introdutório GROMACS -

g_rms –s dinamica.tpr –f traj.xtc –o rmsd.xvg

(Utilize o backbone, opção 4)

O arquivo resultante “rmsd.xvg” deverá ser movido para a pasta “dados” para
fins de organização. Este arquivo contém tabelas numéricas com instruções
para a confecção de um gráfico. A maneira mais usual para isso é a utilização
do programa XMGRACE. Caso não possua este aplicativo, instale-o através do
gerenciador de instalação de sua distribuição Linux. Segue abaixo o comando
para a leitura da matriz (utilize-o dentro da pasta “dados”):

xmgrace rmsd.xvg

Dentro do programa, já visualizando o gráfico, acesse as opções e modifique o


título, escalas ou qualquer elemento que o agrade. Após este processo, salve o
arquivo e o imprima, preferencialmente em arquivo .png (vá em opções de
impressão). Observe abaixo um exemplo de um gráfico mostrando o RMSD
típico de uma simulação de uma proteína estável.

25
- Tutorial Introdutório GROMACS -

II) Raio de Giração

Outra medida importante na avaliação do comportamento da estrutura


ao longo do tempo é o raio de giração. Esta análise é responsável pela
verificação da compactação da proteína, a qual aumentará conforme diminui
este índice. O raio de giração é obtido através do programa g_gyrate, que se
utiliza da equação abaixo:

onde ri é a posição do átomo i em relação ao centro de massa Rcm as


molécula e mi é sua respectiva massa.

Para obtermos o gráfico, volte à pasta “dinamica” e digite:

g_gyrate –s dinamica.tpr –f traj.xtc –o raio_giracao.xvg

(Selecione o grupo “Protein”)

Uma vez criado o arquivo “raio_giracao.xvg”, mova-o para a pasta de dados e


proceda como para o RMSD. Abaixo um exemplo de um raio de giração
estável.

26
- Tutorial Introdutório GROMACS -

III) Animação

Uma das opções mais divertidas da parte de análise é a de transformar a


trajetória em arquivo animado, nos permitindo contemplar a movimentação da
proteína de maneira mais intuitiva e visual possível: observando.

Vamos converter os dados de “traj.xtc” para um arquivo de saída com


extensão “.pdb”. Essa rotina é realizada pelo programa conversor de formatos
(trjconv) através da sintaxe abaixo (digitar dentro do diretório “dinamica”):

trjconv –s dinamica.tpr –f traj.xtc –o filme.pdb

(Selecione a opção 1)

27
- Tutorial Introdutório GROMACS -

Para ver o resultado, utilize qualquer visualizador de proteínas com


suporte a frames múltiplos tais como PyMol ou VMD.

3.0 Considerações Finais

Agora você já tem meios de seguir em frente sozinho. Baixe outras proteínas,
estenda a simulação, rode em paralelo, enfim pense sobre o problema e procure
analisar o que seja adequado às suas necessidades. Este tutorial é introdutório, ele te
guiou até aqui e lhe fez economizar considerável esforço, poupando-lhe encontros
com literatura especializada em contato imaturo, o que só serviria para afugentar a
maioria das pessoas. No entanto, conforme vá progredindo, é imperativo o
acompanhamento de artigos mais específicos e densos, pois só assim você progride
de forma satisfatória para lidar com um campo tão emergente quanto complexo
como a dinâmica molecular.

4.0 Leitura Recomendada

[1] Bekker, H.; Berendsen, H. J. C.; Dijkstra, E. [5] Ozkan, S. B.; Dill, K. A.; Bahar, I. Protein
J.; Achterop, S.; van Drunen, R.; van der Sci. 11: 1958-1970, 2002.
Spoel, D.; Sijbers, A.; Keegstra, H.; Reitsma,
B.; Renardus, M. K.Physics Computing 92 [6] Scott, W. R. P.; Hünenberger, P. H.; Tironi,
(Singapore, 1993). de Groot, R. A.; Nadrchal, I. G.; Mark, A. E.; Billeter, S. R.; Fennen, J.;
J.; eds. World Scientific. Torda, A. E.; Huber, T.; Krüger, P.; van
Gunsteren, W. F. J. Phys. Chem., A. 103:
[2] Berendsen, H. J. C.; van der Spoel, D.; 3596-3607, 1999.
van Drunen, R. Comp. Phys. Comm. 91:43–
56, 1995. [7] Kony, D.; Damm, W.; Stoll, S.; van
Gunsteren, W. F. J. Comput. Chem., 23:
[3] van der Spoel, D.; Lindahl, E.; Hess, B.; 1416–1429, 2002.
Groenhof, G.; Mark, A. E.; Berendsen, H. J. C.
J. Comp. Chem., 26:1701–1718, 2005. [8] Xu, Z.; Luo, H. H.; Tieleman, D. P. J.
Comput. Chem., 28: 689–697, 2007.
[4]Taft, C. A.; Silva, C. H. T. P. (Org.). Current
Methods in Medicinal Chemistry and [9] Kahn, K. & Bruice, T. C. J. Comput.
Biological Physics. Kerala; Research Signpost Chem., 23: 977–996, 2002.
2007.

28
- Tutorial Introdutório GROMACS -

[10] Wensink, E. J. W.; Hoffmann, A. C.; van Vergoten, G.; Rasmussen, K. Carbohydrate
Maaren, P. J.; van der Spoel, D. J. Chem. Research 314: 141–155, 1998.
Phys., 119: 7308-7317, 2003.
[14] Kaminski, G. & Jorgensen, W. L. J. Phys.
[11] Suardiaz, R.; Maestre, M.; Suárez, E.; Chem., 100: 18010-18013, 1996.
Pérez, C. J. Mol. Struct., 778: 21–25, 2006.
[15] Chen, B.; Martin, M. G.; Siepmann, J. I. J.
[12] Martin, M. Fluid Phase Equilibria, 248: 50– Phys. Chem. B, 102: 2578-2586, 1998.
55, 2006.
[16] Allen, M.P.; Tildesley, D.J. Computer
[13] Pérez, S.; Imberty, A.; Engelsen, S. B.; Simulation of Liquids. Clarendon Press,
Gruza, J.; Mazeau, K.; Jimenez-Barbero, J.; Oxford, 1987.
Poveda, A.; Espinosa, J. F.; van Eyck, B. P.;
Johnson, G.; French, A. D.; Louise, M. L.; [17] Hess, B.; Kutzner, C.; van der Spoel, D.;
Kouwijzer, C. E.; Grootenuis, P. D. J.; Bernardi, Lindahl, E. J. Chem. Theory Comput., 4:435-
A.; Raimondi, L.; Senderowitz, H.; Durier, V.; 447, 2008.