1
- Tutorial Introdutório GROMACS -
(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
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.
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.
4
- Tutorial Introdutório GROMACS -
Tutorial GROMACS
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
5
- Tutorial Introdutório GROMACS -
(I) Compiladores:
(II) LAM/MPI:
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 -
./configure
(aguarde o processamento...)
Prossiga com:
make
(aguarde o processamento...)
make install
(aguarde o processamento...)
7
- Tutorial Introdutório GROMACS -
ftp://ftp.fftw.org/pub/fftw/fftw-3.2.2.tar.gz
8
- Tutorial Introdutório GROMACS -
make
(aguarde o processamento...)
Agora a instalação:
Agora a instalação:
make install
(aguarde o processamento...)
ftp://ftp.gromacs.org/pub/gromacs/gromacs-3.3.3.tar.gz
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 -
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.
make distclean
(aguarde o processamento)
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é...)
make links
(aguarde o processamento)
11
- Tutorial Introdutório GROMACS -
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:
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)
-------------------------------------------
15
- Tutorial Introdutório GROMACS -
16
- Tutorial Introdutório GROMACS -
17
- Tutorial Introdutório GROMACS -
Figura 2. 2. Exemplificando o
distanciamento na caixa cúbica. Em
nosso caso, atribuímos d=1.2 nm.
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:
19
- Tutorial Introdutório GROMACS -
genion –s minimizacao.tpr –o proteina04.gro –p ../topologia.top –np 3 –pname NA+ -nn 8 –nname CL-
20
- Tutorial Introdutório GROMACS -
mdrun –s minimizacao.tpr -v
21
- Tutorial Introdutório GROMACS -
tail –f out
22
- Tutorial Introdutório GROMACS -
tail –f out
23
- Tutorial Introdutório GROMACS -
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 -
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
25
- Tutorial Introdutório GROMACS -
26
- Tutorial Introdutório GROMACS -
III) Animação
(Selecione a opção 1)
27
- Tutorial Introdutório GROMACS -
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.
[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.