Posts Científicos

O impacto da computação no desenvolvimento da genética

Gustavo Blanco

Não basta sequenciar o DNA sem saber (ou poder) processar e analisar os dados 

A computação vive um momento único em nossa sociedade tornando-se onipresente em todas as ramificações e contextos existentes no mundo atual. Ela tem atuado como força motriz tanto para os mais recentes avanços científicos quanto na automação de tarefas até então impossíveis de serem realizadas sem intervenção humana (veículos autônomos, sistemas de auxílio a diagnóstico, dentre muitos outros). 

Além disso notamos o imenso impacto que a computação proporcionou no contexto médico, mais especificamente ao universo da genética.

Os novos sequenciadores (que fazem uso intensivo de diversas técnicas computacionais) e métodos de bancada diminuíram drasticamente o custo necessário para coletar e processar o DNA de uma pessoa, gerando um volume até então inédito de dados a serem analisados.

Com isso surgiram diversos questionamentos principalmente em relação a escalabilidade dessas novas abordagens visto que, mesmo que mais dados sejam coletados, o processo de análise e interpretação continua restrito a velocidade de um analista em checar cada variante presente na amostra. 

Mesmo que mais dados sejam coletados, o processo de análise e interpretação continua restrito a velocidade de um analista em checar cada variante presente na amostra. 

Para ilustrar tal cenário podemos sintetizar tais questionamentos em três perguntas principais:

  1. Como disponibilizar e compartilhar os arquivos resultantes do processamento entre todos os bioinformatas e analistas presentes em uma organização? 
  2. Como processar essa grande quantidade de dados de forma eficiente? 
  3. Como analisar as milhares de variantes identificadas em minhas amostras em um processo estruturado que garanta a qualidade dos laudos produzidos? 

Essas foram perguntas que desde o início pautaram o desenvolvimento do Varstation e que, a nível pessoal, permitiu-me vivenciar diversos conceitos que muito ouço desde a minha formação em ciências de computação como Big Data, Cloud Computing, Deep learning, entre outros. Julguei interessante contar um pouco sobre como abordamos esses problemas aqui no Varstation, principalmente para profissionais e curiosos da área. 

Primeiro passo: upload e compartilhamento dos dados

Para começar temos a principal decisão de desenvolvimento que é justamente em qual meio a plataforma será disponibilizada. Como parte da nossa missão sempre foi democratizar o acesso a genética ao maior número possível de pessoas, a escolha de construir uma plataforma na nuvem foi imediata, embora isso implique em uma série de desafios em termos tecnológicos. 

A priori temos a dificuldade descrita na primeira das perguntas já citadas que é justamente como disponibilizar os meus dados sequenciados localmente para todos os usuários da organização? 

Outro ponto relevante é que quando um novo usuário utiliza nosso sistema, não sabemos qual o volume de dados que atende à demanda deste cliente, por esse motivo nossa infraestrutura tem que estar preparada tanto para demandas baixas (arquivos com poucos megabytes) quanto para a demanda de grandes laboratórios (dezenas de gigabytes diariamente). Por estes motivos, outras soluções similares no mercado optam por fornecer uma plataforma híbrida em que parte da infraestrutura deve ser construída ou configurada localmente de forma a viabilizar a transferência desse grande volume de dados e tornar aspectos de segurança mais simples de serem gerenciados.  

Aqui no Varstation disponibilizamos duas maneiras principais para que o usuário envie os seus arquivos:

1 – Via upload pelo próprio navegador. 

Para tornar viável o envio de arquivos maiores utilizamos a transferência multipart que, de forma simplificada, consiste na “quebra” dos arquivos originais em partes menores para envio em paralelo, criando uma redundância a falhas (já que caso uma das partes falhe não acarreta no erro de todo o arquivo) e aumentando a taxa de transferência. Para tornar este processo ainda mais rápido, utilizamos também uma tecnologia de aceleração da transferência de dados que faz uso de pontos de acessos dedicados pela internet (como se os dados de upload “furassem a fila” de outros dados da internet) para minimizar o tempo de upload necessário. Para garantir a integridade dessas transferências, cada cliente do Varstation possui uma credencial única que é validada a cada tentativa de envio de arquivos e que também é trocada periodicamente como medida extra de segurança.  

2- Via BaseSpace®.

Uma segunda abordagem para envio de arquivos visa atender clientes que fazem uso do Basespace (plataforma de sequenciadores Illumina). Neste cenário, os arquivos não se encontram na máquina do usuário, mas sim na nuvem da Illumina exigindo que nosso sistema interaja com esta API, fazendo todas as autenticações necessárias. Neste caso, o Varstation fornece uma interface para que o usuário faça login no Basespace e a partir de então possa navegar em todas as suas amostras diretamente de nossa própria plataforma. Ao selecionar os arquivos, máquinas dedicadas são ligadas em nossos servidores focadas somente na transferência desses dados que, por se conectarem diretamente a partir da nossa nuvem, torna todo o processo de transferência muito mais rápido. A nível de comparação, é possível transferir arquivos de 5 gigabytes em apenas 11 segundos independentemente do computador ou velocidade de conexão do usuário.  

Percebe-se que ambas as abordagens apresentadas solucionam o problema de transferência e compartilhamento de arquivos entre todos os analistas de uma determinada organização e tudo isso sem exigir qualquer adaptação por parte dos usuários independentemente da infraestrutura que possuem.  

Segundo passo: processamento os dados

Superado o primeiro obstáculo, temos, então, que viabilizar o processamento desses arquivos “brutos” para que sejam identificadas quais são as variantes genéticas que os pacientes possuem. Esse processo segue um pipeline dividido em 3 grandes etapas: 

1- Mapeamento: organiza as leituras feitas pelo sequenciador identificando em qual posição do genoma cada uma delas pertencem;

2- Chamada de variantes: compara quais posições do DNA do indivíduo estão diferentes em relação a um genoma de referência e; 

3- Anotação: adiciona todos os dados pertinentes a cada variante identificada para que o analista tenha mais informações ao avaliá-las.

Cada uma dessas etapas pode ser feita de diversas maneiras dependendo do tipo de exame desejado, o que implica em custos computacionais bem diferentes (um exoma tende a utilizar mais memória do que um painel, por exemplo), impedindo que nossos servidores possuam uma única configuração que atenda a todas essas demandas. Além disso, a otimização desta etapa de processamento ditará qual o custo de processamento necessário e, consequentemente, quanto nossos clientes pagarão por cada amostra processada. 

A redução no custo de processamento reduz o custo final do exame e contribui com a democratização da genética!

Dessa forma, ao invés de construirmos uma única “super configuração” capaz de processar todas as amostras do sistema – porém, extremamente cara para pipelines mais simples – optamos por personalizar nossos servidores para minimizar os custos de processamento, permitindo que nossos clientes paguem menos e usem isso como vantagem competitiva ao diminuir os preços de seus exames. Sem contar que essa redução ajuda a democratizar o acesso da população a exames genéticos (nosso grande plano está se concretizando!). 

Além de construir configurações personalizadas, também fazemos o possível para minimizar o tempo de processamento necessário, o que, além de reduzir custos, também agiliza na realização de análises e liberação de laudos. Para isso, construímos versões próprias de algoritmos disponibilizados abertamente pela comunidade científica inserindo diversas otimizações como, por exemplo, o paralelismo via multithreading. Com isso passamos a ter diversos pipelines que tiveram seu tempo de processamento reduzidos em algumas horas. 

Terceiro e último passo: análise dos dados

Com o sistema capaz de receber e compartilhar arquivos de forma rápida e intuitiva, e processá-los de modo eficiente, chegamos ao ponto em que o usuário acaba tendo maior percepção do impacto das decisões de desenvolvimento, que é justamente o momento de  analisar a amostra já processada. 

Talvez esta etapa seja a que apresenta os maiores desafios devido a escolha de ser uma plataforma na nuvem.

Usando um exoma como exemplo temos um cenário em que precisamos exibir para o usuário mais de 300 mil variantes, cada uma delas com dados agregados de diferentes fontes (ClinVar, dbSNP, OMIM, etc.) em um navegador web (que possui limite de memória disponível) em tempo real e que não exija uma conexão de internet extremamente rápida para funcionar. Desafiador, não? 

O principal ponto para tornar a análise rápida e mais eficiente para o usuário é garantir que as variantes que apresentam maior chance de serem patogênicas sejam exibidas de início e variantes que não tenham relevância para a análise sejam removidas automaticamente

Para isso usamos principalmente filtragens (sugerimos filtros pré-definidos e também permitimos que o usuário crie os seus) e a exibição de variantes conforme a necessidade (paginação dos dados). Além disso indexamos essas variantes de diferentes maneiras em nosso banco de dados para tornar as consultas relacionadas mais eficientes. Atualmente estamos também construindo alguns modelos de Machine Learning para que o computador “aprenda” automaticamente quais as melhores maneiras de classificar a patogenicidade dessas variantes.  

Computação – força motriz para a revolução da genética

Com isso, temos soluções para todas as 3 perguntas originalmente propostas no início deste texto dando ao usuário o poder de compartilhar arquivos, processar amostras e realizar a análise usando somente o computador que ele já possui. Como ilustrei de forma simplificada (futuramente pretendo discutir cada uma dessas etapas com maiores detalhes técnicos), isso envolve uma série de obstáculos que forçam o time de desenvolvimento a sempre estar buscando alternativas e melhorias para otimizar ainda mais as abordagens que temos hoje.

O que torna todo esse processo ainda mais desafiador é que existem pouquíssimas soluções para genéticas atuando 100% na nuvem, o que nos impede de basear em qualquer conhecimento prévio e nos forçando a criar todas essas abordagens do zero. De qualquer forma é extremamente gratificante ocupar essa posição de vanguarda e empregar a computação como força motriz para uma nova revolução em nossa sociedade. 

Para chegarmos em um futuro onde a análise genética está completamente integrada em nossa sociedade, desde a identificação de patologias em um bebê até o uso de fármacos personalizados para combate de diferentes tipos de câncer, é necessário que pessoas ampliem os horizontes tecnológicos que temos hoje e criem o ambiente necessário para tal, e é exatamente isso que nós do Varstation estamos fazendo. 

Faça Seu Comentário