Tutorial: modelagem de proteínas usando MODELLER

1570
1

Nesta seção será abordado a ferramenta MODELLER. O MODELLER é um software com vários pacotes criado por Andrej Sali e Tom L. Blundell em 1989 [14]. O MODELLER é uma ferramenta gratuita com uso restrito a linha de comando e não possui interface gráfica de usuário. Atualmente, o MODELLER utiliza a linguagem Python como linguagem de controle, o que também é um requisito para o funcionamento do programa. Com isso, todos os scripts para realizar a modelagem são desenvolvidos em Python. O programa pode ser rodado nos sistemas operacionais baseados em UNIX, Windows e Mac.

Para a construção do modelo tridimensional, o MODELLER utiliza o método de satisfação de restrições espaciais. Através do alinhamento das sequências, características espaciais como as distâncias entre carbonos-alfa (Cα – Cα) e ângulos diedrais da cadeia principal e lateral dos resíduos são transferidos da estrutura molde para a estrutura alvo. Essas restrições espaciais são obtidas de forma empírica, a partir de uma base de dados contendo informações sobre o alinhamento de proteínas com estruturas conhecidas presentes em famílias proteicas.

As restrições estereoquímicas, como comprimentos e ângulos de ligação, e contatos atômicos não ligados, são obtidos dos campos de força da mecânica molecular. As restrições espaciais e os termos obtidos pelo campo de força são combinados em uma função objetivo. A função objetivo é otimizada no espaço Cartesiano visando minimizar as violações de todas as restrições utilizando os métodos de gradiente conjugado e dinâmica molecular por simulated annealing. Portanto, vários modelos com pequenas variações são calculados amostrando a estrutura inicial, e a variabilidade entre os modelos contribuem para melhor estimar o enovelamento da proteína-alvo.

Usando o MODELLER para modelagem comparativa

Como falado anteriormente, o MODELLER não possui uma interface gráfica, sendo restrito o uso da linha de comando. Para instalação é necessária uma licença de utilização para usuários que pode ser solicitada no site do software.

Link para download e guias de instalação | Link para licença

A seguir vamos detalhar o passo-a-passo para a construção de um modelo utilizando o MODELLER, para uma sequência de interesse, seguindo as etapas mencionadas anteriormente.

1. Seleção da proteína-molde

Para seleção do melhor molde, considera-se inicialmente alguns fatores importantes entre a estrutura primária da proteína-alvo e da proteína-molde. Como, identidade entre as sequências acima de 25%, e se a semelhança entre sequências é significativa com toda a extensão da nossa sequência alvo (parâmetro de cobertura). A medida de significância estatística, E-value, também deve ser avaliada. O valor de E-value compara o número de alinhamentos que seriam esperados apresentando valores iguais ou melhores que o encontrado por acaso, dado o tamanho do banco de dados. A qualidade experimental da estrutura tridimensional da proteína-molde também é outro fator importante. A preferência é para estruturas resolvidas de alta qualidade, com resolução menor ou igual a 2 Å, fator R menor de 20%, e em caso de enzimas, estruturas complexadas com o substrato. Todos esses fatores podem garantir uma melhor confiabilidade no modelo que será construído.

1.1) Busque a sequência de sua proteína-alvo:

A sequência pode ser encontrada em bancos de dados, como o UniProt e Genbank. Usaremos o UniProt nessa etapa. Entre no site e digite o nome da sua proteína no local de busca, em seguida escolha o “Entry” (conhecido como ID, ou identificador) que melhor represente sua proteína, vá em “Sequence” e baixe o formato fasta. Essa etapa só é necessária quando não se tem a sequência da proteína-alvo. Em casos em que se tem o sequenciamento da proteína inicia-se pela etapa de busca do molde.

Acesso ao UniProt: www.uniprot.org/uniprot/

Como exemplo será apresentado a modelagem da enzima Acetolactato sintase (ALS), importante para síntese de aminoácidos de cadeia ramificada em organismos vegetais. A sequência de ALS de Arabidopsis thaliana está disponível no Uniprot (ID P17597) e foi usada em todos os passos seguintes. Portanto, a sequência de interesse, de acordo com o arquivo FASTA do Uniprot, é:

>sp|P17597|ILVB_ARATH Acetolactate synthase, chloroplastic OS=Arabidopsis thaliana OX=3702 GN=ALS PE=1 SV=1
MAAATTTTTTSSSISFSTKPSPSSSKSPLPISRFSLPFSLNPNKSSSSSRRRGIKSSSPS
SISAVLNTTTNVTTTPSPTKPTKPETFISRFAPDQPRKGADILVEALERQGVETVFAYPG
GASMEIHQALTRSSSIRNVLPRHEQGGVFAAEGYARSSGKPGICIATSGPGATNLVSGLA
DALLDSVPLVAITGQVPRRMIGTDAFQETPIVEVTRSITKHNYLVMDVEDIPRIIEEAFF
LATSGRPGPVLVDVPKDIQQQLAIPNWEQAMRLPGYMSRMPKPPEDSHLEQIVRLISESK
KPVLYVGGGCLNSSDELGRFVELTGIPVASTLMGLGSYPCDDELSLHMLGMHGTVYANYA
VEHSDLLLAFGVRFDDRVTGKLEAFASRAKIVHIDIDSAEIGKNKTPHVSVCGDVKLALQ
GMNKVLENRAEELKLDFGVWRNELNVQKQKFPLSFKTFGEAIPPQYAIKVLDELTDGKAI
ISTGVGQHQMWAAQFYNYKKPRQWLSSGGLGAMGFGLPAAIGASVANPDAIVVDIDGDGS
FIMNVQELATIRVENLPVKVLLLNNQHLGMVMQWEDRFYKANRAHTFLGDPAQEDEIFPN
MLLFAAACGIPAARVTKKADLREAIQTMLDTPGPYLLDVICPHQEHVLPMIPSGGTFNDV

1.2) Busque o molde:

O molde pode ser encontrado no banco de dados PDB (Protein Data Bank). Para isso utilizaremos o servidor Web BLAST [17], escolhendo a opção Protein BLAST, e buscaremos pela estrutura onde sua sequência tem identidade >25%, melhor resolução cristalográfica (quanto menor melhor), melhor cobertura e o E-value baixo (quanto mais próximo de 0, mais chances de ser significativa a correspondência, ou seja, não aconteceu por acaso) [5,22].

Quando não se encontra um modelo que satisfaça essas exigências, é necessário aplicar outras abordagens como threading ou modelagem ab initio.

Acesso ao BLAST: blast.ncbi.nlm.nih.gov/Blast.cgi

Faça a upload do arquivo fasta com a sequência de interesse, a qual deseja modelar, ou copie e cole em “Enter accession number(s), gi(s), or FASTA sequence(s)”. Na opção “Database” escolha PROTEIN DATA BANK proteins (pdb)” e depois clique em BLAST (Figura 4).

Figura 4. Página do BLASTp para busca de um molde.

Analise os valores de identidade (Per Ident), cobertura (Query Cover) e E-value (Figura 5) para escolher o melhor molde e buscar na base de dados do PDB. O código PDB se encontra na coluna Accession. Nesse exemplo, os três primeiros resultados são muito parecidos, diferindo muito pouco na identidade. Quando vamos na base de dados do PDB e verificamos os dois primeiros da lista, que possuem alta identidade, alta cobertura e baixo E-value, percebemos que o primeiro tem uma resolução melhor, mas o interesse está em enzimas que foram resolvidas com um ligante em específico. E este é o caso do segundo da lista. Possui uma resolução razoável, alta identidade, alta cobertura, baixo E-value e contém o ligante desejado. A existência do ligante pode auxiliar no uso de outras técnicas computacionais, como o atracamento molecular, já que essa estrutura pode estar na conformação necessária para ocorrer a ligação entre proteína e ligante.

Figura 5. Resultado do BLAST para a seleção do molde.

Portanto, escolhemos como molde a estrutura de código PDB 3E9Y [23], também uma ALS de A. thaliana. Com o código escolhido deve-se ir ao banco de dados Protein Data Bank e digitar o código PDB do molde selecionado (Figura 6).

Figura 6. Página da base de dados PDB para busca da estrutura 3D do molde. Acesso PDB: https://www.rcsb.org/

E, a seguir, baixar o arquivo PDB (Figura 7).

Figura 7. Página do código PDB associado ao molde. O arquivo pode ser baixado na guia Download Files no formato PDB ou mmCIF.

2. Alinhamento das sequências do molde e do alvo

O alinhamento permite encontrar correspondência entre resíduos estruturalmente equivalentes levando em conta suas posições nas sequenciais. Com o alinhamento é possível distinguir entre regiões estruturalmente conservadas e variáveis [24]. O MODELLER aceita como entrada alinhamentos de outros programas como por exemplo BLAST [17] e CLUSTAL [25], contanto que esteja no formato correto. Porém, o MODELLER possui sua própria rotina de alinhamento, produzindo os arquivos necessários de maneira eficiente.

Para a etapa de alinhamento, três arquivos são necessários (todos os arquivos devem estar no mesmo diretório):

2.1) Arquivo da sequência da proteína a ser modelada em formato PIR.

O MODELLER utiliza o formato PIR, que é parecido com o FASTA baixado na busca da sequência do alvo, mais com um cabeçalho característico do formato. Vá até o arquivo FASTA baixado e insira o novo cabeçalho:

> P1; nome da proteína-alvo 
sequence: nome da proteína-alvo::::::::

Após a sequência, no final do arquivo deve-se inserir um ‘*’ e salvar como “.txt” (Figura 8). O nome dado para a proteína-alvo não deve ser alterado nos próximos passos.

Figura 8. Arquivo com a sequência do alvo em formato PIR.

2.2) Arquivo PDB do molde.

O MODELLER aceita o formato mmCIF, basta fazer o download do mesmo no passo de busca do molde (Figura 7).

2.3) Script de alinhamento em python.

Digite o script abaixo em um editor de texto, substitua o nome dos arquivos (em negrito) pelo nome dos seus arquivos e salve como “alinhar.py”.

# Importando o modeller

from modeller import *

# Importando a classe automodel  
                
from modeller.automodel import * 

# Novo ambiente para o modeller

env = environ()                      
 
# Novo ambiente para o alinhamento

aln = alignment(env)                 

# Modelo alvo. File= ID do PDB molde.

# Model_segment= Cadeia usada do molde

md1 = model(env, file='3e9y', model_segment=('FIRST:A','LAST:A'))

# Alinhamento. 

# Align_codes= PDB do molde e cadeia. 

# Atom_files= Nome do arquivo PDB do molde

aln.append_model(md1, align_codes='3e9yA', atom_files='3e9y.pdb')

# Fazer o alinhamento. 

# File= arquivo com sequência do alvo. 

# Aling_codes= ID do alvo.

aln.append(file='ahas.txt', align_codes='p17597')

# Alinhamento de sequencias

aln.align2d()

# Arquivos de alinhamento formato PIR

aln.write(file='ahas_3e9y.ali', alignment_format='PIR')

# Arquivos de alinhamento formato PAP

aln.write(file='ahas_3e9y.pap', alignment_format='PAP')

Vá ao terminal de linhas de comando, navegue até o diretório onde os arquivos se encontram e digite (o $ representa o prompt do terminal e não deve ser digitado):

   $ python alinhar.py 

No caso do Windows, salve os arquivos dentro de um diretório na pasta do MODELLER (geralmente estará nos arquivos de programa do disco c:), busque por modeller no local de busca do Windows e abra o arquivo MODELLER. Um terminal será aberto. Vá até a pasta onde estão os arquivos com o comando “cd” e digite “python alinhar.py”.

Os arquivos gerados serão “.ali” (Figura 9) e “.pap” (Figura 10). O primeiro será usado para a etapa de modelagem e o segundo contém os resíduos conservados.

Figura 9. Arquivo com o alinhamento gerado em formato .ali. A falta de resíduos (missing residues) nas posições correspondentes entre as sequências é assinada com o caractere (-), chamado de gap.

Figura 10. Arquivo com o alinhamento gerado em formato .pap, mostrando os resíduos conservados entre as sequências com *.

3. Construção do modelo

Para gerar cada modelo, o MODELLER utiliza a cadeia principal da estrutura molde e a otimiza em relação da sequência alvo, aplicando um grau de aleatoriedade nas coordenadas. Essas coordenadas são otimizadas através da busca pelo mínimo de energia das funções objetivo do MODELLER. Como encontrar o mínimo global de energia através de uma função objetivo não é garantido, recomenda-se repetir o procedimento de construção do modelo várias vezes. Com a aleatoriedade embutida no procedimento modelos diferentes são gerados a cada rodada, aumentando a amostragem de conformações de modelos gerados. Considere a construção de algumas dezenas a centenas de modelos, para então selecionar o mais adequado. Porém, a tendência na geração de muitos modelos é que esses se aproximem em conformação e energia.

Para essa etapa três arquivos são necessários:

  1. Arquivo de alinhamento gerado na etapa anterior (formato “.ali”).

  2. Arquivo PDB do molde.

  3. Script do MODELLER de construção de modelos em Python, que será executado como o anterior. Substitua o nome dos arquivos (negrito) pelo nome dos seus arquivos e salve como “gerar_modelo.py”. O número de modelos será indicado nas 3 últimas linhas do código.

# Importando o modeller

from modeller import *

# Importando a classe automodel
      
from modeller.automodel import *

 
# Novo ambiente para o modeller

env = environ()                        


a = automodel(
    env,
    alnfile='ahas_3e9y.ali', 
    knowns= '3e9yA', 
    sequence='p17597', 
    assess_methods=(
        assess.DOPE, 
        assess.GA341
    )  
) 

# Começar no modelo 1

a.starting_model = 1 

# Terminar no modelo 5                

a.ending_model = 5 
 

# Construir os modelos                

a.make()                        

Vá ao terminal de linhas de comando, navegue até o diretório onde os arquivos se encontram e digite:

$ python gerar_modelo.py >&1 | tee genmodelo.log 

A inserção de “>&1 | tee genmodelo.log” no comando é apenas para garantir a criação de um arquivo de registro com todas as informações da geração dos modelos. Ao finalizar, o script gera cinco modelos tridimensionais para ser avaliados (Figura 11). Os modelos podem ser visualizados por qualquer programa que leia o formato PDB, como o PyMOL. O arquivo de log também mostra as pontuações de cada modelo.

Figura 11. Final do arquivo .log mostrando informações sobre os modelos construídos. Os nomes dos modelos se encontram na primeira linha, seguida das pontuções.

4. Avaliação do modelo

Após a construção de modelos para a proteína-alvo é necessário verificar se existem possíveis erros, como por exemplo erros no alinhamento ou escolha errada do molde tridimensional usado. Vale ressaltar que modelos construídos por métodos computacionais sempre serão passíveis de erros. A etapa de avaliação deve conduzir a bons modelos com base na magnitude dos erros [26].

A escolha do “melhor” modelo (ou “melhores” modelos) pode ser feita de várias maneiras. Podemos escolher o melhor modelo a partir do menor valor da função de energia do MODELLER (molpdf) ou através do menor valor de DOPE score (Discrete Optimized Protein Energy) (Figura 11). Neste exemplo usaremos o DOPE score e o modelo selecionado com menor valor é o de número quatro (p17597.B99990004.pdb). Porém, pode-se selecionar mais de um modelo para avaliação de acordo com os mais bem ranqueados pelo MODELLER.

4.1 Avaliação do modelo pelo servidor SAVES

Para essa etapa de avaliação do modelo, usa-se o arquivo pdb do modelo escolhido para submissão ao servidor web SAVES. O SAVES concentra vários programas que avaliam pontos específicos da estrutura de forma a dar mais confiabilidade ao modelo.

Acesso ao SAVES: saves.mbi.ucla.edu/

Escolha as opções de verificação a partir do PROCHECK (avalia quanto à qualidade estereoquímica), WHATCHECK (qualidade dos contatos atômicos de todos os átomos de cada resíduo) e VERIFY 3D (compatibilidade do modelo tridimensional com sua estrutura primária).

Os resultados apresentados pelo SAVES aqui são para o modelo de ALS com o menor valor de pontuação DOPE (p17597.B99990004.pdb). O gráfico do VERIFY 3D (Figura 12) mostra que menos de 80% dos resíduos estão em ambientes químicos confiáveis. Para essa interpretação é atribuído uma pontuação para cada resíduo referente a base de dados de estrutura do PDB. Como padrão do programa, para que um modelo seja aceito, ou seja, seja confiável, mais de 80% dos resíduos devem ser aceitos.

Figura 12. Gráfico de saída VERIFY 3D.

Os resultados do PROCHECK, ilustrado pelo gráfico de Ramachandran (Figura 13), mostram que o resíduo PHE 87 não se encontra em uma região favorável.

Figura 13. Gráfico de Ramachandran gerado pelo Procheck.

Porém, os resultados estatísticos do Ramachandran demonstram que 92,4% dos resíduos se encontram em regiões favoráveis (Figura 14). Portanto, deve-se observar na estrutura tridimensional em qual região estrutural ele se encontra. Por exemplo, se o resíduo se encontra em uma região flexível como uma região de alça, o MODELLER pode não ter encontrado uma conformação favorável para esse resíduo. Regiões de loop são as mais difíceis de serem modeladas e precisam de maior atenção.

Figura 14. Resultados estatísticos do Ramachandran gerado pelo PROCHECK.

Para analisar este resíduo utilizou-se um programa de visualização molecular. Utilizando o PyMOL [27] (Figura 15) podemos confirmar que o resíduo se encontra no final de um loop, uma região desordenada que não participa de nenhuma interação com a proteína. Essa região não foi bem alinhada ao molde, por se tratar de resíduos inexistentes no molde e presentes apenas na sequência do alvo. Esses resíduos correspondem a uma região de peptídeo sinal. Naturalmente essa proteína tem sua função após ser transferida ao cloroplasto, perdendo o peptídeo sinal.

Figura 15. Visualização em cartoon da proteína modelada. Em vermelho o resíduo PHE 87.

Para correção, editou-se manualmente o alinhamento usado para construção do modelo. Retirou-se os 87 primeiros aminoácidos e o script de modelagem foi executado novamente (Figura 16).

Figura 16. Resíduos que foram retirados do alinhamento. Esses resíduos correspondem a grande inserção de gaps (-) no alinhamento. Esses gaps iniciais foram retirados da sequência molde, portanto, ambas sequencias começam com FISR. A retirada dessa região faz com que identidade e cobertura entre as sequências sejam maiores.

Após executar os passos 2 e 3 novamente, o melhor modelo foi selecionado mais uma vez por seu valor de DOPE e submetido ao servidor SAVES. Para essa nova estrutura, os resultados do VERIFY 3D foram mais favoráveis e demonstram que o modelo gerado é confiável com 93,66% dos resíduos em ambientes químicos confiáveis (Figura 17).

Figura 17. Gráfico de saída VERIFY 3D do novo modelo gerado após a edição do alinhamento.

Além disso, o novo gráfico de Ramachandran apresenta 94,3% dos resíduos em regiões favoráveis (Figura 18).

Figura 18. Gráfico de Ramachandran gerado pelo PROCHECK para o novo modelo.

Para finalizar a avaliação, realizou-se alinhamento estrutural entre a proteína-molde e o modelo construído através da ferramenta PyMOL (Figura 19). A inspeção visual dessas estruturas mostra apenas pequenas variações na estrutura secundária, correspondendo bem à conservação dos resíduos, vista no alinhamento. Quando calculado o desvio entre ambas, o valor de Root Mean Square deviation (RMSD) foi de 0,133 Å entre os carbonos-alfa das estruturas. Quanto menor esse valor, mais próximas são as estruturas entre si, demonstrando que a variação dos desvios médios dos átomos em relação ao molde foi baixa.

Figura 19. Alinhamento estrutural do molde e modelo construído. RMSD 0.133. Proteína-molde em azul-claro e proteína-modelada em azul-escuro.

O exemplo que apresentamos aqui gerou um possível modelo para uma sequência alvo inicial de forma simplificada pelo MODELLER. Exemplos mais avançados, que utilizam parâmetros mais rebuscados como refinamento de loops e estrutural por dinâmica molecular, se encontram no manual do MODELLER e devem ser explorados.


Este texto faz parte do artigo “Modelagem computacional de proteínas“:

Sumário

1. Introdução à modelagem de proteínas

2. Métodos dependentes de molde

– 2.1 Modelagem comparativa

—- 2.1.1 MODELLER

—- 2.1.2 SWISS-MODEL

– 2.2 Threading

—- 2.2.1 I-TASSER

3. Modelagem ab initio: métodos independentes de molde

– 3.1 ROBETTA

4. Referências bibliográficas

Boa leitura!

Laboratório de Bioinformática e Sistemas
WRITTEN BY

Laboratório de Bioinformática e Sistemas

Somos um grupo de pesquisa com interesse na formação de pesquisadores de alto desempenho para atuação no campo da bioinformática e ciência da computação. Estamos hospedados no Departamento de Ciência da Computação da Universidade Federal de Minas Gerais.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

One thought on “Tutorial: modelagem de proteínas usando MODELLER