Bioinformática e o Big Data
por Tetsu Sakamoto

“Um minuto por favor!” Para aquele que pede pode ser apenas um breve e curto espaço de tempo, mas nesta era digital o minuto é palco para milhares de processos e eventos que ocorrem na internet. A cada minuto mais de 147 mil fotos são postados no Facebook, mais de 41,6 milhões de mensagens são trocadas entre os usuários pelo WhatsApp, mais de 500 horas de vídeos são publicados no YouTube e mais de 1 milhão de dólares são gastos através de compras online (Figura 1).

O que acontece na internet a cada minuto Figura 1: fonte: Revista Superinteressante

Estes processos são todos registrados digitalmente e com o passar de pouco tempo somam uma quantidade massiva de dados. Conseguir armazenar, analisar e, principalmente, extrair informações valiosas baseadas nestes dados são os grandes desafios enfrentados nesta era, que é chamada a era do Big Data.

Se estes números já te impressionam, saiba que o cenário para quem trabalha na área da Bioinformática, principalmente na área da saúde, é ainda mais surpreendente. Estimativas mostram que as instituições ligadas à prestação de cuidados de saúde produziram cerca de 2.314 exabytes de dados em 2020 (6,34 exabytes de dados por dia)! Mas isso é muito? Como um ponto de referência, uma estimativa de 2019 mensura que a quantidade de dados armazenados pelas quatro maiores empresas de tecnologia (Google, Amazon, Microsoft e Facebook) juntas somavam 1,2 exabytes de dados. Isto indica que diariamente esta área produz novos dados clínicos de exames, de imagens e também de sequenciamento de DNA que excedem em 5 vezes o volume de dados armazenados por estas quatro gigantes.

Diferentes setores que enfrentam a problemática do Big Data utilizam diversas ferramentas e metodologias que ajudam na manipulação e na extração de informações preciosas de seus dados (Figura 2). Você conhece alguma delas? Estas ferramentas procuram resolver pelo menos um destes dois aspectos: o armazenamento de dados, facilitando o acesso e evitando a perda de dados, e a escalabilidade, onde se procura a capacidade de manipular e analisar os dados que se encontram em constante crescimento, ou estar preparado para crescer.

Diferentes ferramentas que lidam com alguma problemática do Big Data Figura 2: Diferentes ferramentas que lidam com alguma problemática do Big Data. Fonte: https://eduinpro.com/blog/big-data-frameworks/

Como a maior parte dos dados biológicos são armazenados em bancos de dados públicos, todos os bioinformatas já puderam sentir e experimentar os desafios enfrentados quando lidamos com Big Data. Então, que tal conhecer algumas das ferramentas/soluções?

Dentre as soluções mais conhecidas estão o Hadoop e o Apache Spark. Ambos são frameworks que utilizam da abordagem de computação distribuída como solução ao Big Data. Na computação distribuída temos vários computadores interligados por uma rede e que trabalham em conjunto para executar uma tarefa. Para saber um pouco como esta abordagem funciona, vamos tomar o Hadoop como exemplo.

O Hadoop utiliza um sistema de armazenamento de dados denominado HDFS (Hadoop Distributed File System) que foi desenvolvido para permitir o armazenamento e o acesso fáceis para processamento de um grande volume de dados. Neste sistema, o arquivo é dividido em partes (blocos, normalmente de 128 MB) e cada parte é armazenada em diferentes máquinas. Além disso, o sistema conta com um mecanismo de replicação que armazena os dados de forma redundante em diferentes máquinas (três máquinas por padrão). Tal mecanismo é importante na recuperação desses dados caso ocorra uma falha em uma das máquinas (Figura 3).

Funcionamento do HDFS. Nesta ilustração temos um arquivo sendo divido em seis blocos (A, B, C, D, E e F) e alocados em 5 máquinas Figura 3: Funcionamento do HDFS. Nesta ilustração temos um arquivo sendo divido em seis blocos (A, B, C, D, E e F) e alocados em 5 máquinas. Repare que cada bloco é armazenado em mais de um nó pelo sistema de replicação (neste caso em três). Isso permite a manutenção dos dados mesmo que haja falha em uma das máquinas.

Como neste sistema os arquivos se encontram em diferentes máquinas, eles podem ser processados de forma paralela. Para que este paralelismo funcione de forma sincronizada entre as máquinas, o Hadoop utiliza um modelo de programação denominado MapReduce.

A figura 4 mostra resumidamente como funciona o modelo do MapReduce. Neste modelo temos três etapas principais, o Map, o Shuffle e o Reduce. Suponha que queiramos contar o número de palavras presentes em um arquivo grande que foi distribuído em várias máquinas. Na etapa Map, que representa a etapa do mapeamento, cada uma das máquinas processará uma parte dos arquivos, verificando as frequências das palavras em cada uma dessas partes de forma paralela.

MapReduce Figura 4: MapReduce. Fonte: https://phoenixnap.com/kb/hadoop-mapreduce

Posteriormente, na etapa do shuffle, as informações encontradas em diferentes partes que sejam correspondentes, são colocadas juntas em uma mesma máquina. No caso da contagem de palavras, as mesmas palavras encontradas nas diferentes partes do arquivo são juntadas e suas frequências somadas.

Então, na etapa reduce, de redução, todos os resultados da etapa anterior são recebidos por uma máquina e organizados em um único arquivo.

Além da abordagem de computação distribuída, podemos também encontrar outras soluções ligadas ao Big Data. Dentre elas temos o HPC, Inteligência Artificial, NoSQL, GPU, Data Lake, Computação em nuvem, Data Streaming e entre outras. Na próxima matéria sobre este tema, descreveremos algumas destas abordagens que também são aplicáveis na Bioinformática.


Você pode gostar de ler

Expressão Gênica

Caminhos da Genômica: Quem pode trilhá-los?: “Eileen Furlong e Barbara Treutlein trazem propostas que se sobrepõem. A primeira aborda enhancers e o estudo do desenvolvimento embrionário, e a segunda explora em maior detalhe as possibilidades do emprego das ômicas de células únicas, abordagem que surge para facilitar o estudo de, dentre outros processos, destino celular.”