ColabFold: uma ferramenta web para modelagem de proteínas

1251
2

A modelagem de proteínas é um desafio da biologia molecular que ficou em aberto por mais de 50 anos. Recentemente, estratégias computacionais obtiveram bastante sucesso em modelar tridimensionalmente a estrutura de macromoléculas. O AlphaFold é um software que utiliza aprendizado profundo para predizer estruturas de proteínas. Entretanto, sua instalação e uso ainda pode ser complexo para boa parte dos potenciais usuários. Em 2022, Milot Mirdita e colaboradores propuseram a ferramenta ColabFold: um programa rápido e fácil de usar para a previsão de estruturas de proteínas e complexos, que funciona por meio de um navegador de internet. Neste artigo, você irá conhecer um pouco das funcionalidades do ColabFold. A ferramenta está disponível em: https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb.

Modelagem de proteínas e o AlphaFold

As proteínas são biomoléculas essenciais para a vida, uma vez que estão relacionadas a funções estruturais na célula, de transporte, catálise, sinalização, defesa, dentre outras. Para desempenhar suas funções, é necessário que as proteínas apresentem  estrutura e conformação adequadas (estrutura terciária ou quaternária). Dessa forma, há forte relação entre a sequência de resíduos de aminoácidos, estrutura e função de uma proteína [1, 4]. 

Para estudar as estruturas de proteínas podemos elucidá-las experimentalmente por meio de técnicas como cristalografia de raio-x ou ressonância magnética nuclear. Entretanto, essas são técnicas caras e que necessitam de mão de obra extremamente especializada. Assim, torna-se fundamental a criação de programas para auxiliar no estudo de estruturas de proteínas in silico, como a modelagem computacional de proteínas [1].

A modelagem computacional de proteínas pode ser realizada, por exemplo, utilizando uma estrutura resolvida como molde para o modelo. Caso haja estruturas experimentalmente resolvidas que apresentam sequências com alta identidade com a proteína que se deseja modelar (> 25% de identidade), podemos utilizar a modelagem comparativa ou threading [8]. Caso não haja, é feita uma modelagem ab initio (também conhecida como modelagem de novo). Existem vários programas que realizam modelagem molecular de proteínas, cada um com suas próprias métricas específicas que ranqueiam modelos e estimam energia de ligação e interação entre os resíduos [1]. 

Dentre os vários programas disponíveis, destacamos aqui o AlphaFold. O AlphaFold é um software que utiliza aprendizado profundo para predizer estruturas de proteínas. Em 2018 e 2020, tanto sua primeira quanto segunda versão obtiveram resultados excepcionais no CASP (Critical Assessment of Protein Structure Prediction), uma competição que avalia métodos de predição de estruturas de proteínas. Com o AlphaFold é possível obter a estrutura terciária de uma proteína, usando como entrada apenas uma sequência de aminoácidos. Assim, é possível obter estruturas com alta acurácia, mesmo quando não existe nenhuma estrutura similar [2]. 

A segunda versão do AlphaFold funciona basicamente em três passos principais: uma etapa de preparo da sequência recebida, que envolve alinhamentos múltiplos de sequência (MSA); uma etapa de camadas repetidas de rede neural que leva como entrada a matriz de alinhamento de sequências gerada no passo anterior; e por fim, a geração da estrutura tridimensional da proteína a partir de mais blocos de redes neurais, realizando uma reciclagem iterativa e refinando a estrutura gerada [2].

A metodologia MSA expande o alinhamento de pares integrando sequências suplementares para revelar regiões conservadas e conexões evolutivas em uma infinidade de sequências. Os algoritmos utilizados podem ser amplamente classificados em duas categorias: métodos progressivos e métodos iterativos. ClustalW e T-Coffee são exemplos de métodos progressivos utilizados no alinhamento de sequências. Esses métodos constroem o alinhamento progressivamente, inicialmente alinhando pares de sequências e posteriormente integrando sequências adicionais. Técnicas iterativas, exemplificadas por MUSCLE e MAFFT, aprimoram o alinhamento iterativamente, alinhando subconjuntos de sequências e, por fim, revisando o alinhamento com base nos resultados iniciais [1,2].

Embora o AlphaFold apresente resultados eficientes, a ferramenta apresenta algumas limitações computacionais. Uma delas é que, para realizar uma modelagem de alta qualidade, o AlphaFold precisa construir diversos MSAs, e para isso é necessário ter acesso a uma grande coleção de sequências de proteínas de referência em bancos de dados públicos. Esse acesso é realizado por métodos sensíveis de detecção de homologia, como HMMer e HHblits  cujo a busca requer um tempo considerável para ser realizada. Em segundo lugar, para executar as redes neurais profundas, são necessárias unidades de processamento gráfico (GPUs) e uma grande quantidade de RAM (memória de acesso aleatório), mesmo para tamanhos de proteína relativamente comuns de ~ 1.000 resíduos [3].

Para tentar solucionar a exigência de um grande suporte computacional, em 2022  Mirdita e colaboradores [3] propuseram o ColabFold: um programa rápido e fácil de usar para a previsão de estruturas de proteínas e complexos (homo e heteroméricos). O ColabFold pode ser usado por meio de um Jupyter Notebook dentro do Google Colaboratory. Isso torna possível para usuários comuns utilizar o método de modelagem do AlphaFold sem a necessidade de possuir uma grande capacidade computacional. Além disso, o Google Colab é acessível gratuitamente para usuários que possuem conta Google, incluindo acesso a GPUs poderosas, além de ser uma ferramenta em nuvem [3, 5].

ColabFold

O primeiro passo de funcionamento do ColabFold é receber as sequências FASTA de entrada, seja por meio do Google Colab, em servidor web (acessando o site: https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb) ou por meio de linha de comando (Figura 1a). O próximo passo,  assim como o AlphaFold 2, é realizar um MSA (Figura 1b). Entretanto, o método padrão utilizado pelo ColabFold é o MMseqs2, capaz de oferecer maior rapidez, captar bem as diversidades das sequências, além de ser pequeno o suficiente para rodar em máquinas com menos memória RAM. Para realizar o alinhamento, os autores do ColabFold usaram as bases UniRef100 e PDB70, além de criarem sua própria base de dados, a qual chamaram de ColabFoldDB. O ColabFoldDB não possui a redundância das bases de dados já utilizadas pelo AlphaFold2 (Big Fantastic Database e MGnify database), além de possuir outras contendo dados de eucariotos, por exemplo. No passo de MSA, são feitas três iterações de busca por sequências em cada um dos bancos de dados. Após essa etapa, usa-se uma biblioteca Python para preparar as entradas de acordo com o tipo da predição: cadeia simples (Figura 1c.i) ou complexo de proteínas (Figura 1c.ii). Então, uma nova matriz MSA é retornada para ser usada como entrada para os modelos do AlphaFold 2. A partir daí, o funcionamento das duas ferramentas é semelhante [3].

Para modelos de complexos de proteínas, é estabelecido o contato entre cadeias por meio de um alinhamento das sequências mais promissoras numa mesma espécie, e então, gera-se um MSA não pareado, para guiar a previsão das cadeias de proteína (Figura 1c.ii). Ao final, os cinco melhores modelos são gerados, juntamente aos gráficos para avaliação (Figura 1d). Resumidamente, o funcionamento do ColabFold se baseia em alinhar a sequência de input com outras sequências dos bancos de dados para a geração da matriz MSA. Essa matriz será utilizada como entrada para as redes neurais do AlphaFold, que por fim, geram cinco modelos de estruturas. 

  O ColabFold utiliza as mesmas métricas utilizadas pelo AlphaFold 2: lDDT predito, para cadeias simples, e PAE para complexos [3]. O Local difference distance test (LDDT, em português, Teste de Diferença de Distância Local)  é uma métrica para comparar estruturas de proteínas que avalia a diferença entre as distâncias de cada par de átomos, que independe da sobreposição estrutural. Já o Predicted Aligned Error (PAE, em português, Erro Predito de Alinhamento) avalia a posição relativa entre as cadeias da proteína utilizando a distância entre dois resíduos. 

Figura 1 – Workflow resumido do ColabFold . a. Input da sequência FASTA de aminoácidos da proteína via servidor web ou linha de comando. b. Alinhamentos múltiplos de sequências usando as bases de dados UniRef100,  PDB70 e base de dados própria, usando três iterações para pesquisa de sequências para cada uma. c. Predição de estruturas tridimensionais das proteínas a partir do MSA e algoritmos usados pelo AlphaFold 2. d. Avaliação dos modelos gerados por meio de gráficos de cobertura das sequências, pLDDT e PAE. Fonte: adaptado de Mirdita et al., 2022.

Comparando o ColabFold a outras ferramentas, ele se mostrou cinco vezes mais rápido do que o AlphaFold 2 para predição de estruturas únicas [3]. Além disso, obteve maior TM-score comparado com AlphaFold 2 e RoseTTAFold, quando modelados 65 alvos do  CASP14. O TM-score é uma medida de similaridade entre duas estruturas de proteínas, que varia entre 0 e 1, sendo quanto mais próximo de 1, mais semelhantes. Ele é um importante parâmetro de qualidade para avaliar modelos, uma vez que seu cálculo não é dependente do tamanho das sequências das proteínas [7].

Por fim, em relação à modelagem de complexos, o ColabFold obteve maior precisão na previsão em conjuntos de dados do ClusPRO, comparado ao AlphaFold Multimer (versão do AlphaFold 2 criada para predizer complexos) [3].

Versões do ColabFold

O ColabFold está disponível em diversas versões, que possuem vantagens e desvantagens umas sobre as outras  (Figura 2). Todas as versões disponíveis podem ser encontradas no GitHub (disponível em https://github.com/sokrypton/ColabFold).

Figura 2 – Diferentes versões do ColabFold. São mostradas as versões atuais (a), em desenvolvimento (b), e que não são mais atualizadas (c). As colunas são detalhadas no texto. Versões com colunas em branco desempenham apenas uma função (Relax_amber) ou são demonstrativas (AlphaFold2_noTemplates). Dados obtidos em 02 de Agosto de 2023 e disponíveis em https://github.com/sokrypton/ColabFold.

A primeira lista de versões (Figura 2a) se refere às mais bem estabelecidas e funcionais, e são as mais recomendadas para serem usadas. Também é possível encontrar versões em desenvolvimento (“BETA”, Figura 2b), e versões que não são mais utilizadas, mas que podem ser úteis para casos específicos (Figura 2c).

As versões são divididas de acordo com a presença ou ausência de cinco funcionalidades principais identificadas pelas colunas das tabelas, sendo elas (Figura 2): (i) capacidade de modelagem de cadeias monoméricas de proteínas; (ii) capacidade de modelagem de cadeias complexas (multiméricas) de proteínas; (iii) utilização do algoritmo MMseqs2 de alinhamento; (iv) utilização do algoritmo jackhmmer de alinhamento (uma variação do algoritmo HMMER capaz de realizar múltiplas etapas de iteração); (v) capacidade de modelagem a partir de moldes de proteínas (templates). Sendo assim, não há uma única versão que possua as cinco funcionalidades, e a escolha deverá ser feita conforme a pergunta a ser resolvida.

Apesar das diferentes versões possuírem diferentes funcionalidades, todas seguem o mesmo padrão de utilização do Google Colab, além de possuírem um pequeno tutorial e seção de instruções em suas próprias páginas.

Conhecendo a interface do ColabFold 

O objetivo desta seção é apresentar na prática o ColabFold, mostrando as entradas e saídas do programa, além de apresentar os parâmetros que podem ser alterados dependendo do objetivo do usuário.

Para esta seção, utilizaremos a versão do AlphaFold2 que foi implementada com o  algoritmo de alinhamento MMseqs2. A versão está disponível em: https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb.

Ao abrirmos o ColabFold no Google Colab, nos deparamos inicialmente com informações gerais sobre o programa, bem como a referência do artigo em que foi proposta a ferramenta (Figura 3).

Figura 3 – Página inicial do ColabFold, via GoogleColab. 1. Título e versão usada do ColabFold. 2. Descrição breve da ferramenta e referência. 3. Atualizações sobre o programa.

O primeiro bloco de código consiste na entrada da sequência de aminoácidos da proteína a ser modelada (“query_sequence”). (Figura 4.1). Para a modelagem de complexos, a entrada deve ser a primeira sequência, seguida de dois pontos (:), e logo em seguida a segunda sequência, sejam as proteínas homo ou heterodímeros (Figura 5).

Figura 4 – Primeiro bloco de código do ColabFold. 1. Informar sequência de aminoácidos de entrada. 2. Nome dado ao trabalho. 3. Número de estruturas a serem relaxadas por meio do campo de força AMBER (opções: 0, 1 ou 5). 4. Tipo de template a ser utilizado (opções: “none”,“pdb100” e “custom”).

Figura 5 – Exemplo de entrada de sequências no ColabFold. 1. Entrada de sequência para modelagem de proteína com somente uma cadeia. 2. Entrada de sequência para modelagem de complexo proteico.

Os próximos passos são: dar um nome ao trabalho (Figura 4.2); escolher o número de estruturas para serem relaxadas usando o campo de força AMBER (nenhuma, apenas a melhor, ou todas), até que todas as violações e conflitos estruturais sejam resolvidos (Figura 4.3); e escolher se o programa utilizará estruturas com coordenadas atômicas já definidas como templates. É possível selecionar a opção “none”, na qual o programa não utiliza informação de template, “pdb100” em que o programa busca templates no banco de dados pdb100, e “custom”, onde o próprio usuário pode inserir o seu template. (Figura 4.4).

O próximo bloco de código é dedicado à instalação das dependências do programa (não se preocupe, nada será instalado em seu computador, apenas na instância da nuvem que você estiver utilizando). Logo em seguida, encontramos parâmetros relacionados ao alinhamento múltiplo de sequências (MSA) (Figura 6). O parâmetro “msa_mode” (Figura 6.1) nos permite escolher qual base de dados será usada para a criação da matriz de alinhamento múltiplo. As opções dadas são (lembrando que a versão que estamos utilizando possui exclusivamente o algoritmo MMseqs2 de alinhamento):

  • “mmseqs2_uniref_env”, o programa realizará o alinhamento múltiplo utilizando o algoritmo padrão do ColabFold (MMseqs2), e buscará na base de dados UniRef100, além da base de dados criada pelo próprio ColabFold.

  • “mmseqs2_uniref”, em que o programa realizará o  alinhamento utilizando dados somente da base UniRef100.

  • “single_sequence”, onde o programa não realizará alinhamento e partirá para as próximas etapas somente com sua sequência inicial (essa opção é interessante quando sua proteína é desenhada in silico, e você não espera encontrar sequências semelhantes a ela em nenhuma base de dados).

  • “custom”, em que o usuário submete seu próprio alinhamento múltiplo de sequências.

Figura 6 – Parâmetros relacionados ao MSA. 1. Definir qual base de dados o algoritmo usará para o MSA. 2. Definir o pareamento das sequências do MSA.

O parâmetro “pair_mode” (Figura 6.2) nos permite definir como será o pareamento das sequências no MSA. As opções dadas são:

  • “unpaired_paired”, em que se pareiam sequências da mesma espécie, e então há a adição de MSAs não pareados (interessante para modelagem de complexos).

  • “unpaired”, são criados alinhamentos múltiplos separados para cada cadeia (Também interessante para modelagem de complexos).

  • “paired”, em que são usadas somente sequências pareadas (Interessante para estruturas simples).

Figura 7 – Configurações avançadas e configurações relacionadas à amostragem. 1. Definição da versão do AlphaFold a ser utilizada. 2. Número de ciclos de reciclagem da estrutura. 3. Tolerância para parada precoce da reciclagem. 4. Estratégia de pareamento das sequências. 5. Dimensão da matriz de MSA. 6. Número de sementes para a amostragem. 7. Habilitar desistência.

Em seguida, temos as configurações avançadas (Figura 7). Em “model_type” é possível escolher qual modo do AlphaFold 2 será utilizado, seja ele o AlphaFold 2 simples (“AlphaFold2_ptm”) ou multimer (alphafold2_multimer_v1, v2 ou v3) (Figura 7.1). Em “num_recycle” (Figura 7.2) é possível escolher quantos ciclos de reciclagem de estrutura o programa realizará (0, 1, 3, 6, 12, 24 ou 48). Essa seleção controla o número de vezes que a previsão é repetidamente alimentada através do modelo. Para alvos difíceis, como proteínas sem homólogos, iterações de reciclagem adicionais podem resultar em uma previsão de mais alta qualidade. Esse parâmetro está relacionado ao “recycle_early_stop_tolerance” (Figura 7.3), em que o usuário decide quando parar antecipadamente os ciclos de reciclagem, dependendo da confiabilidade da estrutura gerada no final. O parâmetro “paring_strategy” (Figura 7.4) está relacionado a estratégia de pareamento que será utilizada no alinhamento de sequências. Ele pode ser “greedy” (“gulosa”), em que o programa pareia qualquer conjunto de sequências que tenha correspondência taxonômica, ou “complete”, em que todas as sequências devem corresponder entre si, em pelo menos uma linha.

Nas configurações de amostragem temos “max-msa” (Figura 7.5), que corresponde a dimensão máxima da matriz MSA. Com a redução das dimensões da matriz, temos um aumento da incerteza em relação à predição da estrutura, uma vez que a quantidade de dados será menor. Em “num_seeds” (Figura 7.6), podemos ajustar o número de sementes iniciais. Cada semente representa um ponto de partida diferente no início da predição, aumentando assim a variabilidade gerada, mas também aumentando consideravelmente o tempo de execução do programa. Por fim, há a opção de habilitar o interrompimento da execução, marcando a caixa de “use_dropout”, a fim de parar o programa quando os modelos começam a convergir demais entre si, evitando assim o overfitting da predição (Figura 7.7).

Após essas etapas, há opções para salvarmos as configurações usadas nesta análise para que possam ser utilizadas posteriormente: salvar todas as configurações, salvar somente a quantidade de ciclos de reciclagem, salvar as configurações no Google Drive, além de alterar a resolução das imagens que serão geradas como saída do programa (Figura 8).

Figura 8 – Opções para salvar as configurações e definir resolução das imagens.

Já com todos os parâmetros ajustados, agora podemos rodar a predição clicando em “Run Prediction”. Ao final da predição (que deve demorar alguns minutos por estarmos utilizando o algoritmo MMseqs2, mais rápido que o jackhmmer) podemos visualizar os cinco melhores modelos em “Display 3D structure”. Os gráficos gerados (Figura 9) também podem ser visualizados para avaliação da qualidade da estrutura em “Plots”. Por fim, podemos baixar os resultados em forma de um arquivo .zip contendo:

  • Arquivos .pdb correspondentes aos modelos gerados, classificados de acordo com o lDDT médio (monômeros) ou TM score (complexos).

  • Gráficos que avaliam qualidade dos modelos (plDDT e PAE), bem como a cobertura e identidade do alinhamento de sequências.

  • Histórico com os parâmetros definidos para aquela corrida.

  • Matriz MSA usada como input para o algoritmo em formato A3M.

  • Arquivo .json contendo listas com lDDT e PAE para cada estrutura.

  • Arquivo .bibtex contendo as referências de cada ferramenta e bases de dados utilizadas.

Figura 9 – Gráficos gerados pelo ColabFold. 1. Cobertura e identidade de sequências encontradas no MSA. 2. Gráfico representando o lDDT predito por posição de cada resíduo em cada um dos cinco modelos gerados. 3. Gráficos representando o erro de alinhamento predito (PAE) em cada um dos cinco modelos gerados.

 Na figura 9.1, observamos a matriz de MSA. No eixo x, encontramos as posições dos resíduos de aminoácidos na sequência de entrada, e no eixo y o número de sequências que foram alinhadas à sequência de referência. Na sua escala de cores que vai de vermelho (0.0) a azul (1.0), o gráfico representa a identidade da sequência alinhada com a sequência de entrada. Quanto maior a  identidade, mais próximo de azul, e quanto menor identidade, mais próximo de vermelho. 

Na figura 9.2, podemos observar o gráfico de lDDT predito por posição. No eixo x, temos a posição dos resíduos na sequência de referência, e no eixo y a escala de IDDT que vai de 0 a 100. No gráfico podemos visualizar 5 linhas, uma de cada cor, cada uma representando um dos 5 modelos gerados pelo ColabFold. Quanto mais próximo de 100 melhor a qualidade da modelagem do resíduo. 

Por fim, na figura 9.3 visualizamos o erro de alinhamento predito (PAE) em cada um dos cinco modelos gerados. Nos eixos x e y encontramos as posições dos resíduos na sequência de aminoácidos. Sua escala de cores vai de azul (0) até vermelho (30), onde quanto menor o PAE (mais próximo de 0), maior a qualidade da estrutura.

Ao final da página, você pode encontrar instruções de uso disponibilizadas pelos próprios autores do programa, além de informações adicionais como limitações e agradecimentos. 

Conclusão

Neste artigo, apresentamos uma breve introdução ao ColabFold, suas vantagens em relação a outros programas de predição de estruturas de proteínas, e suas principais diferenças em relação ao AlphaFold 2. Também evidenciamos as diferentes versões disponíveis do programa, e como cada uma possui pontos vantajosos e desvantajosos em relação às outras. Explicamos também como funciona o ColabFold no Google Colab e cada um dos parâmetros que podem ser ajustados. Com isso, é interessante que o leitor use este artigo como ponto de partida para buscar mais informações sobre cada ferramenta aqui apresentada, além de avaliar as possíveis utilizações dependendo do seu objetivo. 

Referências

[1] SILVA, L., BASTOS, L.,SANTOS, L. “Modelagem computacional de proteínas.” Revista Brasileira de Bioinformática (2021): 1-38. DOI: 10.51780/978-6-599-275326-08.

[2] JUMPER, J., Evans, R., Pritzel, A. et al. Highly accurate protein structure prediction with AlphaFold. Nature 596, 583–589 (2021).

[3] MIRDITA, M. et al. ColabFold: making protein folding accessible to all. Nature Methods, v. 19, n. 6, p. 679–682 (2022). 

[4] NELSON, D.L.; COX, M.M. Princípios de Bioquímica de Lehninger. 6. ed. São Paulo: Artmed, 2014. 

[5] TUNYASUVUNAKOOL, K, Adler J, Wu Z. et al. Highly accurate protein structure prediction for the human proteome. Nature.(2021).

[6] LEMOS, R; DOS SANTOS, P. H.; ROCHA, A. “Extração de Informações de Sequências e Estruturas de Proteínas” Revista Brasileira de Bioinformática (2023). Disponível em https://bioinfo.com.br/extracao-de-informacoes-de-sequencias-e-estruturas-de-proteinas/.

[7] ZHANG, Y et al. Scoring function for automated assessment of protein structure template quality. Proteins 57, 702–710 (2004).

[8] VERLI, H et al. Bioinformática: da Biologia à Flexibilidade Molecular. 1. edição. – São Paulo : SBBq, 2014. 282.

Autores: Giovana Fiorini https://orcid.org/0000-0002-1004-3480, Luana Luiza Bastos https://orcid.org/0000-0002-6932-0438, Rafael Pereira Lemos https://orcid.org/0000-0002-5894-2354

Revisão: Aline de Paula Dias da Silva, Bárbara Rebeca de Macedo Pinheiro, Diego Mariano

Nota de transparência: este material foi originalmente produzido para um minicurso ministrado durante o Curso de Inverno em Bioinformática da UFMG, realizado em 4 de Julho de 2023, na Universidade Federal de Minas Gerais, Belo Horizonte, Brasil.

Cite este artigo:

Fiorini, G; Bastos, LL; Lemos, RP. ColabFold: uma ferramenta web para modelagem de proteínas. BIOINFO. ISSN: 2764-8273. Vol. 3. p.22 (2023). doi: 10.51780/bioinfo-03-22

Deixe um comentário

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

2 thoughts on “ColabFold: uma ferramenta web para modelagem de proteínas

  1. […] ColabFold: uma ferramenta web para modelagem de proteínas […]

  2. […] ColabFold: uma ferramenta web para modelagem de proteínas […]