AlphaFold 2 — Entenda seu Funcionamento e Implicações Para Biologia Computacional

Nelson Alves Yamashita
Turing Talks
Published in
9 min readAug 29, 2021
Imagem de um gaiola de clatrina por Graham Johnson e Dave Goodsell

Olá e bem vindo a mais um Turing Talks! Hoje falaremos sobre um assunto que ganhou bastante atenção recentemente: o fantástico projeto da DeepMind capaz de predizer estrutura de proteínas, o AlphaFold 2.

Caso você não se lembre, em 2020 um time de pesquisadores de inteligência artificial da Google DeepMind venceu o campeonato bianual do Critical Assessment of Structural Prediction, um campeonato em que diversos biólogos computacionais tentam construir modelos que consigam predizer a estrutura de diversas proteínas determinadas em laboratório sem informação pública.

O assunto voltou a ganhar atenção após o lançamento em julho do tão esperado artigo do modelo na Nature explicando como a ferramenta funcionava. O código fonte do projeto também foi disponibilizado publicamente. Inclusive, você pode até rodar uma versão um pouco mais simplificada no Google Colab agora mesmo!

Quais são os Impactos do AlphaFold 2 na biologia?

Primeiro, é importante lembrar a importância das proteínas. Elas são como pequenas máquinas em nossos corpos, responsáveis pelas mais diversas funções. Essas funções são definidas por sua estrutura tridimensional porém descobrir essa estrutura costumava ser um processo demorado e custoso, que envolvia diversos experimentos em laboratórios.

Com o lançamento do AlphaFold 2 esse processo se torna muito mais fácil! Isso significa que caso um pesquisador queira saber a estrutura de uma proteína (apenas sabendo sua sequência de aminoácidos), em questão de alguns dias ou horas ele já terá informações sobre sua estrutura!

Uma aplicação direta dessa descoberta é a possibilidade do design de proteínas. Como a funcionalidade de uma proteína está diretamente atrelada a sua estrutura, se queremos desenvolver uma proteína com uma funcionalidade específica precisaremos que ela também dobre de uma maneira específica. Como o processo de predição da estrutura de uma proteína é acelerado pelo AlphaFold 2, essas descobertas podem acabar vindo muito mais rápido! Um exemplo de uma aplicação desse design de proteínas pode ser uma proteína que consegue se fundir com a proteína de algum patógeno (como um certo vírus respiratório), que após a fusão é posta em uma vacina que pode fortalecer de maneira ainda mais eficaz o sistema imune do usuário.

Um exemplo de uma proteína de um patógeno (preto-branco) fundida com proteínas novas (coloridas). Modificado deste artigo.

Além disso, muitos outros problemas e áreas de pesquisa que estavam restringidos pelo problema da predição da estrutura da proteína serão agora desenvolvidos, o que abre diversas novas oportunidades para novas linhas de pesquisa.

Como funciona o AlphaFold 2?

Nota: algumas das explicações vão estar simplificadas, dando maior valor a intuição do que o a tecnicidade do modelo. Caso tenha interesse, recomendamos ler o material suplementar do artigo (em inglês) para poder entender profundamente seu funcionamento.

Modelo resumido do AlphaFold, Fig 1 do artigo modificada

O modelo funciona com três partes principais:

  • Pré-processamento: aqui o programa consulta um banco de dados genéticos com base na sequência de aminoácidos de entrada e retorna um alinhamento de sequência múltipla (MSA). Ao mesmo tempo ele pesquisa informações vindas de outro banco de dados de estruturas e cria uma primeira versão em 2D da estrutura em 3D, essa é a representação em pares (brevemente explicaremos melhor o que são essas duas coisas). Essas duas informações são mapeadas em representações e passadas para a próxima parte.
  • Evoformer: é um modelo profundo de 48 camadas similar a transformers utilizados em processamento de linguagem natural, que utiliza mecanismo de atenção para atualizar e melhorar a representação passada dos MSA e da representação em pares. Essas duas representações melhoradas vão para a etapa final.
  • Structure Model (Modelo da estrutura): é o último modelo. Responsável por transformar as representações abstratas do Evoformer em informações e coordenadas reais em 3D para a estrutura da proteína.

Essa é a ideia básica por trás da ferramenta. Agora vamos explicar um pouco melhor cada uma delas.

Pré-processamento

Primeiro vamos explicar o que são aqueles dois termos estranhos:

Um trecho de um MSA

Um MSA pode ser entendido como um tabelão de diversos sequenciamentos de aminoácidos (que são tratados como uma sequência de letras) parecidos, mas não idênticos de diversas espécies. Isso possibilita identificar aminoácidos que possuem uma tendência maior a sofrerem mutação ou que estão mais correlacionadas.

Por exemplo, se temos dois aminoácidos A e B de uma proteína essencial como a hemoglobina que possuem uma interação. Se o aminoácido A sofre mutação, por conta da seleção natural, se o aminoácido B não sofrer uma mutação que conserve essa interação, ele não será selecionado, mantendo essa interação entre as espécies futuras. É uma análise que se baseia no conceito biológico de que, evolutivamente falando, muitos organismos possuem proteínas que executam funções similares (por exemplo, transportar oxigênio pelo sangue ou digerir açúcar) já que compartilham um ancestral em comum.

Imagem de 4 distogramas. De BMC Informatics

A representação em pares (pair representation) usada no AlphaFold é um vetor de duas dimensões que tem como intuito mostrar qual aminoácido tem mais chance de entrar em contato com o outro. Essa representação em pares usa em grande parte templates chamados de distogramas, mapas que calculam a distância entre dois aminoácidos e as coloca numa espécie de matriz. A ideia por trás deles é similar ao dos MSA: como muitas proteínas desempenham funções similares em diversas espécies, elas devem ter estruturas similares, possibilitando essas predições. Então mesmo que suas sequências sofram diversas mutações, a estrutura (nesse caso mapeada como distância) se manteria.

Dessa maneira, o AlphaFold procura por alinhamentos similares em um banco de dados genético para criar seu MSA, paralelamente, procura por distogramas similares em banco de dados de estruturas. Por conta de como o AlphaFold faz suas buscas, algumas vezes ele receberá distogramas que não são suficientes ou até não receberá distogramas, isso evita que o modelo sofra overfitting copiando a estrutura, tendo que realmente aprender a partir do sequenciamento.

Finalmente o AlphaFold junta todas essas informações passadas: sequência de entrada, MSA, distogramas; e monta os dois produtos finais do pré-processamento, a representação do MSA e a representação em pares.

O Evoformer

Arquitetura do Evoformer, Fig3 do artigo

A ideia principal do Evoformer é criar um fluxo de informação constante entre a informação evolutiva (o MSA) e a informação geométrica/distância (a pair representation), para que assim consiga não só aperfeiçoar as duas representações, mas que elas também consigam comunicar conhecimento entre si. Dessa maneira o modelo está usando sua noção atual da estrutura para melhorar sua informação sobre o alinhamento das sequências, que por sua vez é utilizado para melhorar a hipótese sobre a estrutura, e assim em diante.

Um bloco do Evoformer recebe uma representação do MSA e uma pair representation como entradas, e essas acabam também sendo suas saídas. Acontece que cada uma dessas “linhas” é na verdade uma arquitetura de redes neurais que está cada vez mais mostrando resultados impressionantes, tratam-se de dois transformers. Infelizmente seria muito complexo explicar exatamente como funciona essa arquitetura nesse texto, já que ela merece um TT só dela ;).

Mas a ideia principal é que dentro de cada bloco

  • Para a parte de cima (MSA): você possui um sistema que primeiramente recebe a informação sobre a pair representation e depois varia entre coletar informações horizontais, ou seja, sobre aquele sequenciamento individualmente e juntá-los com informações verticais, ou seja, entre as diferentes espécies.
  • Enquanto que para a parte de baixo (pair representation): Ela recebe essa informação atualizada do MSA e em seguida faz uma série de operações que tenta manter as informações sobre o espaço em duas dimensões consistente com o que seria a informação em três dimensões, em outras palavras, garantindo que a estrutura em três dimensões seja geometricamente possível.

Após 48 desses blocos, a primeira sequência na representação do MSA é passada junto com a pair representation para o último bloco, aquele que irá finalmente predizer a estrutura da proteína.

Structure Model

Arquitetura do Structure Model, Fig3 do artigo

Finalmente chegamos a parte final da arquitetura do modelo, a parte da predição da estrutura!

Temos nela 8 blocos de pesos compartilhados (similar ao de uma rede convolucional) que inicialmente recebe a representação de uma sequência do MSA, representando as informações sobre as variações na sequência, e a pair representation, representando as informações sobre a interação dos aminoácidos. Ela também introduz uma nova informação que será essencial para a construção da estrutura 3D, um “suporte principal” (backbone), pequenos triângulos que irão ditar a localização global, e rotação local do aminoácido.

Uma transformação afim. As três colunas com 0 representam rotação, enquanto a última movimentação

Essas transformações que serão aplicadas nos backbones são representadas por um objeto matemático que chamamos de matriz de transformação afim. A cada iteração o AlphaFold gera um conjunto dessas matrizes que representam a movimentação e rotação de cada aminoácido.

O maior diferencial dessa parte da arquitetura do modelo é a utilização de algo que os autores chamam de “Invariant Point Attention”(Atenção a Pontos Invariantes— IPA) para atualizar a informação sobre o sequenciamento, importante já que ele é utilizado para prever a matriz que falamos anteriormente.

O IPA é também um mecanismo complexo que acreditamos não valer a pena ser explicitado aqui, mas que em resumo, serve como uma ferramenta de data augmentation por desconsiderar informações sobre a rotação e translação locais quando passados para uma escala global na proteína. Em outras palavras, se o modelo sabe que qualquer rotação ou translação dos dados dão no mesmo resultado, ele precisará de muitos menos dados para retirá-los de modelos errados e poderá aprender de maneira muito mais eficiente.

E finalmente, uma última rede rasa é adicionada no último bloco para predizer o ângulo de torção para todos os átomos que não estão na cadeia principal. Obtendo a coordenada final de todos os átomos na estrutura.

Progressão da predição de uma proteína pelo AlphaFold. Vídeo suplementar 2 do artigo

Como foi treinado o AlphaFold?

Funções de perda do AlphaFold, equação 7 do artigo suplementar

Um último ponto importante é saber quais critérios que foram utilizados para treinar esse gigante que é essa rede neural. Em resumo existem quatro funções de perda principais:

  • Frame Aligned Point Error (Pontos de Erro Alinhados ao Frame — FAPE): basicamente ele compara os pontos preditos com os pontos reais, mas ele repete isso diversas vezes, cada uma delas com um alinhamento diferente para cada posição do aminoácido. Isso resulta em uma “atenção maior aos detalhes” focando mais em primeiro acertar uma estrutura local para depois acertar a estrutura global.
  • dist: aqui é retirado um erro da predição do Evoformer quanto ao distograma predito.
  • msa: aqui é feito uma modificação no MSA usado como input no Evoformer e a rede deve conseguir reconstruir essa parte modificada com base no MSA que foi gerado, a loss mede o quão boa foi essa reconstrução. O que força ainda mais o AlphaFold a compreender as relações evolutivas no MSA.
  • conf: aqui é utilizado uma métrica interessante de quanto o modelo é confiante do resultado dele, o quanto ele acredita estar correto.
  • Os dois últimos utilizados apenas no fine tuning são usados para evitar configurações fisicamente impossíveis, como um átomo no mesmo exato lugar que outro.

É interessante trazer essas funções de perda para mostrar como cada parte individual do modelo possui uma função específica essencial, e como todas elas juntas são relevantes no final da predição.

O AlphaFold realmente é um marco gigantesco tanto para pesquisadores na área de IA quanto na biologia computacional e bioinformática. Seu desenvolvimento e possibilidade de utilização (bem, pelo menos se seu computador conseguir rodar) abre várias portas para os mais diversos tipos de descobertas na área.

Lembre-se de nos acompanhar em nossas redes sociais! No Facebook, Linkedin, Instagram e, claro, nossos posts do Medium!

--

--