As aplicações de IA na biologia

As ciências biológicas vêm demonstrando nos últimos anos um crescimento extenso na quantidade de dados e informação gerada. Muitas das pesquisas feitas nessas áreas hoje em dia baseiam-se mais em interpretar grandes volumes de dados do que simplesmente obtê-los e entendê-los por meio de análises mais simples.

Com a grande quantidade de dados sendo gerados, isso possibilita a aplicação de modelos de aprendizado de máquina e inteligência artificial na resolução de problemas nessa grande área. Abaixo, são sumarizados alguns dos principais algoritmos utilizados com e suas respectivas aplicações:

Algoritmos genéticos

Algoritmos genéticos possuem a peculiaridade de serem ao mesmo tempo baseados em processos e aplicados a problemas biológicos. No âmbito das aplicações relacionadas à biologia, podemos citar a descoberta virtual de drogas por meio da técnica de docking molecular. Esta técnica visa encontrar a posição mais favorável para um ligante (candidato a medicamento) interagir com uma proteína ou outro alvo molecular envolvido em alguma doença. Desta forma, o algoritmo procura posições ideais de ligação, utilizando uma heurística análoga ao processo de evolução biológica.

O algoritmo possui como cromossomo, genes que representam a posição translacional do ligante (posições que são representadas como coordenadas nos eixos X, Y e Z) e a posição de orientação e graus de liberdade do ligante (flexibilidade de partes de sua estrutura), quando houver. O algoritmo inicia com uma quantidade N de ‘indivíduos’, que no caso do docking se tratam de conjuntos alvo-ligante. Possuímos vários conjuntos iniciais que são selecionados, onde estes indivíduos selecionados se ‘reproduzem’ entre si. Aqui, a combinação dos genes corresponde às combinações de coordenadas espaciais X, Y e Z, assim como as orientações espaciais da molécula e suas diversas conformações estruturais, podendo haver crossing-over e mutações, que introduzem variações nos indivíduos, antes da reprodução, na próxima geração, são selecionados os ‘filhos’ (ou posições alvo-proteína) que possuam os maiores scores de afinidade de ligação com a proteína-alvo. O processo continua, com um número de ‘gerações’ definidas pelo usuário, até que o algoritmo encontra uma posição (indivíduo que corresponde alvo-proteína) que possua uma alta energia de ligação.

Random forest

Algoritmos de random forest, apesar de não serem tão precisos quantos as redes neurais, são algoritmos transparentes e relativamente fáceis de implementar. Baseiam-se em árvores de decisão binária, onde há perguntas que se bifurcam com duas escolhas: cada escolha pode levar a um valor ou uma classe (pode ser usado para classificação ou regressão) ou a outra decisão com duas outras alternativas. No caso do random forest, várias árvores com uma seleção aleatórias de features são geradas, onde as features que aparecerem na maior parte dela são usadas como features no modelo final.

Na biologia, o algoritmo é aplicado em diversas áreas: a identificação de espécies com base em conjuntos de características morfológicas, e também no desenvolvimento de candidatos a medicamentos onde os atributos de cada molécula a ser classificada seriam características físico-químicas, como: peso molecular, presença de determinados grupos funcionais, coeficiente de partição, área de superfície polar total, volume molecular, etc, onde um modelo de random forest criaria várias árvores aleatórias com um conjunto diferente de características sendo usadas como features.

Redes neurais artificiais

As redes neurais artificiais têm se mostrado os algoritmos mais eficientes, em várias áreas, a execução de tarefas de classificação e regressão. Suas vantagens baseiam-se na capacidade de encontrar padrões por meio do cálculo dos pesos (ou importância) que cada variável (ou feature) possui no modelo a ser construído, simulando o comportamento de neurônios de animais, no qual cada neurônio processa e transmite informações a outros neurônios para posterior processamento dessas informações. Atualmente existem inúmeras variações de redes neurais, cada uma sendo utilizada para um conjunto de tarefas específicas. Abaixo, são apresentados alguns tipos de redes neurais e exemplos de suas aplicações na biologia.

Redes neurais convolucionais

Redes neurais convolucionais possuem tradicionalmente o papel de processar e analisar dados dispostos em matrizes, especificamente em imagens. Dada a sua capacidade para realizar tal tarefa, esse tipo de algoritmo encontra duas grandes aplicações na biologia: diagnósticos de doenças e classificação de espécies.

Para o diagnóstico de doenças, há inúmeros exemplos de aplicações de redes neurais convolucionais que conseguiram diagnosticar de forma bem sucedida vários tipos de cânceres, inclusive com precisão maior que a dos especialistas. O algoritmo também tem se mostrado eficaz para diagnosticar exames de raios-X e outros tipos de imagens médicas, como feridas cutâneas. Na classificação de espécies as redes neurais convolucionais podem ser usadas para gerar classificação a nível de espécies, ou de táxons menos específicos, como gênero e subgênero, quando não é possível diferenciar certas espécies por estas serem crípticas (sem diferenças morfológicas visíveis), por exemplo. Esse tipo de aplicação possui relevância para zoólogos e botânicos de campo, ao facilitar a identificação e registro de espécimes coletados em campo, assim como no campo da parasitologia, para reconhecer espécies de parasitas em microscópios ou identificar espécies de insetos vetores.

Redes adversariais generativas e autoencoders

As redes neurais adversariais generativas são um tipo relativamente recente de algoritmo de deep learning que é conhecido por gerar imagens inéditas. No contexto biológico, e, também farmacológico, esse tipo de rede neural pode ser utilizado para gerar novos compostos (desenho de novo) candidatos a medicamentos. Uma GAN (rede adversarial generativa) pode ser treinada para gerar moléculas válidas e que possuam características desejáveis, baseando-se no padrão molecular ‘visto’ em outras moléculas semelhantes. Os autoencoders, de forma semelhante, principalmente os variacionais, podem codificar a estrutura de uma molécula, reduzir sua dimensionalidade e introduzir ruído à camada de decodificação, produzindo moléculas que podem ter propriedades semelhantes e desejáveis.

Uma aplicação bastante intrigante é a geração de imagens reconstruídas a partir de estímulos visuais ou da imaginação, no qual a atividade visual cortical analisada por ressonância magnética funcional pode ser reconstruída de forma rudimentar com o auxílio desse tipo de técnica, possibilitando a visualização do conteúdo tanto imaginado e visto (ver o link associado à GAN’s para mais detalhes desse estudo).

Redes neurais recorrentes

Redes neurais recorrentes (RNN) compreendem uma série de arquiteturas de redes neurais cuja principal finalidade é processar dados sequenciais. Nesse sentido, aplicações das mais diversas podem ser construídas com esse tipo de rede neural. Um exemplo que podemos citar seria a previsão de casos e/ou mortes por uma epidemia, no qual a rede neural considera todos os padrões anteriores para prever o número de casos e mortes em intervalos de tempo em um futuro próximo. No âmbito da genética e da biologia molecular, podem ser utilizadas para identificar determinados tipo de sequências gênicas ou regiões sinalizadoras em sequências peptídicas, uma vez que muitas dessas sequências possuem padrões que se repetem em um intervalo regular. Nas áreas mais voltadas à ecologia e meio ambiente, podem ser utilizadas para processar e classificar cantos de pássaros e barulhos emitidos por outros animais. Assim como as GAN’s e os autoencoders, também podem ser utilizadas para gerar estruturas inéditas de moléculas candidatas a medicamentos para tratar algumas doenças.

A codificação dos compostos químicos, ainda que tridimensionais, podem ser analisados em estruturas de sequências lineares chamadas de SMILES (Simplified Molecular Input Line Entry System). Dessa forma, as RNN podem reconhecer padrões sequenciais em sequências SMILES para gerar estruturas válidas de moléculas que tenham características desejáveis e que sejam bioativas contra uma determinada doença.

Abaixo, seguem algumas leituras/artigos sobre a utilização de cada tipo de algoritmo de machine learning e um exemplo de sua aplicação na biologia:

Links para leitura adicional com aplicações de cada algoritmo na biologia:

Algoritmos genéticos

https://www.scielo.br/scielo.php?script=sci_arttext&pid=S1415-47572004000400022

Random forest

https://academic.oup.com/bioinformatics/article/34/14/2449/4866010

Redes neurais adversariais generativas

https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1006633

Redes neurais convolucionais

https://www.sciencedirect.com/science/article/abs/pii/S1574954116302515

Redes neurais recorrentes

https://onlinelibrary.wiley.com/doi/pdf/10.1002/minf.201700111