• Nenhum resultado encontrado

3 JUSTIFICATIVA

7.2 Banco de dados do projeto

Para armazenar de forma conveniente, e facilitar as manipulações de dados de todas as informações adquiridas das bases de dados públicas previamente citadas, além das novas informações provenientes dos desdobramentos do projeto, foi desenvolvida, uma base de dados que foi hospedada no servidor de banco de dados do IAM/Fiocruz. A base de dados foi desenvolvido utilizando o banco de dados MySQL, na versão 5, como sistema gerenciador de banco de dados (SGBD), em modelo relacional e com utilização de chaves de registros, visando evitar duplicidades ou registros nulos e manter a integridade das informações ao longo das tabelas, visto que registros de chave estrangeira precisam estar de acordo com os registros das chaves primárias correspondentes (JAYANTHI; PREMA, 2011). O modelo da base de dados foi projetado utilizando a ferramenta de modelagem de base de dados MySQL Workbench, gerando o script inicial da base na linguagem chamada Structured Query

Language (SQL). O modelo geral do banco pode ser visualizado na Figura 7.

Figura 7 - Estrutura inicial do banco de dados

Fonte: O autor

Nota: Visão geral do banco de dados. As tabelas são conectadas por linhas que representam os relacionamentos entre as tabelas. Os campos marcados por quadriláteros vermelhos são chaves estrangeiras das tabelas ligadas através das linhas. A visão vw_remove_outliers é uma consulta armazenada da tabela resultBlast.

7.2.1 Tabela de interações positivas

Conforme dito anteriormente, os dados de interações positivas foram obtidos da base de dados VirusMentha e em formato de arquivo tabular. Para armazenar de forma conveniente os dados e para manipulação dos mesmos em etapas futuras, foi criada a tabela InteracoesPositivas no banco de dados do projeto. Para inserir as informações do arquivo tabular para o banco, foi desenvolvido um script em linguagem Perl chamado de populaInteracoesPositivas-0.6-RC.pl. Esse script lê o arquivo tabular, linha a linha, obtendo cada informação separada por ponto e vírgula e insere o dado de interação na tabela do banco no campo apropriado.

7.2.2 Tabela de proteomas

Os dados de sequência das proteínas carregados da base UniProt, baseados no arquivo de interações positivas do VirusMentha, foram armazenados na tabela proteoma_completo. Os dados armazenados nesta tabela contêm as sequências e identificadores de proteínas do grupo controle e foram utilizados como tabela primária para o controle da integridade dos dados, através das chaves, das tabelas de interações positivas e negativas. Portanto, as sequências nela armazenadas são utilizadas na fase de construção do modelo, especificamente no treinamento dos algoritmos de aprendizado de máquina utilizados. Foi escrito em linguagem Perl, o script denominado populaProteomaCompleto.pl, que recebe como entrada uma lista com todos os arquivos fasta, extrai as informações referentes ao identificador, descrição e sequência de cada proteína e armazena no banco dados do projeto. Para extrair as informações dos arquivos em formato FASTA, foi usado o módulo de programação em linguagem PERL chamado Bio::SeqIO, que lida com vários formatos de arquivos de uso comum no campo da bioinformática. Foram obtidas informações relativas a 5235 proteínas que são usadas nas interações positivas e negativas do conjunto de dados de treinamento e de teste dos algoritmos de aprendizado de máquina.

7.2.3 Tabela de resultados do alinhamento

Para gerar o conjunto de dados de interações negativas, com informações derivadas do conjunto de dados de interações positivas, foi realizado um alinhamento local de sequência de “todas contra todas” entre as sequências de proteínas do conjunto de interações positivas. O alinhamento foi realizado utilizando o programa Blastp do pacote BLAST+ (CAMACHO et al., 2009), o qual lida especificamente com alinhamentos de proteínas. O resultado do alinhamento foi tratado com o script em Perl recuperaBlast.pl, desenvolvido para este projeto, com o objetivo gerar um arquivo contendo apenas os dados do alinhamento das proteínas de interação positivas que são usados na montagem do conjunto de dados negativos. Além dos dados do Blastp, o script faz o cálculo da cobertura pois essa informação é usada para gerar o conjunto de dados negativos. Foi então desenvolvido um script em Perl chamado de populaTabelaBlast.pl que recebeu como entrada o arquivo com os dados do resultado do alinhamento e os carregou para tabela resultBlast do banco. A tabela resultBlast tem chave estrangeira para a tabela proteoma_completo, de forma que todas as proteínas estejam validadas no banco.

7.2.4 Tabela interações negativas

As técnicas computacionais de classificação envolvendo algoritmos de aprendizado de máquina tipicamente precisam de um conjunto de dados positivos e outro negativo para que ocorra o treinamento do algoritmo, e consequentemente a classificação do conjunto de dados desconhecido. O conjunto de dados negativos do presente projeto foi derivado do conjunto de dados positivos, ou seja, da mesma base do VirusMentha.

Em trabalhos relativos a predição de interação de proteínas, uma abordagem comum e mais simples para a geração do conjunto de dados de interações negativas é utilizar proteínas aleatoriamente do conjunto positivo desde que as proteínas em análise não interajam uma com a outra (BEN-HUR; NOBLE, 2005; EID; ELHEFNAWI; HEATH, 2015. Esta abordagem tende a gerar um número significativo de falsos- negativos no conjunto de dados negativo, pois o fato de tais proteínas não constarem como interativas no conjunto de dados positivos pode se dar apenas por falta de

conhecimento de tal interação. Outras abordagens visam, portanto, adicionar alguma heurística na geração do conjunto de interações negativas. Neste trabalho foi utilizada como base, a metodologia utilizada no trabalho de Eid, Elhefnawi e Heath, (2015) com algumas modificações. A metodologia de Eid et al. (2015) faz uso de alinhamento global entre todas as proteínas do conjunto positivo de dados para calcular o bit-score entre elas, e por fim analisar a dissimilaridade das proteínas. Esse cálculo é utilizado com base em duas premissas, sendo a primeira a de que quando o percentual de similaridade entre duas proteínas é menor que 20%, a similaridade estrutural é mínima (ROST, 1999) e a segunda que se origina no dogma central da genômica que afirma que sequência determina a estrutura e esta determina a função (EID; ELHEFNAWI; HEATH, 2015).

Diferente da metodologia apresentada por Eid, Elhefnawi e Heath, (2015), este projeto utilizou alinhamento local pois no alinhamento global podem escapar estruturas que apesar de ter pequenas porções alinhadas são importantes sítios de interação. Outra diferença é que neste projeto foram usados apenas alinhamentos com cobertura acima de 80% visando o aumento da confiabilidade dos dados atribuídos como não interativos. A Figura 8 apresenta de forma geral como duas proteínas são apresentadas como par não interativo neste projeto.

Figura 8 - Modelo de obtenção de pares negativos

Fonte: O autor

Nota: Montagem de par de proteínas não interativas. Para que sejam consideradas como um par de proteínas não interativo, uma proteína viral “X” e uma proteína do hospedeiro “A” não podem ter interação conhecida no conjunto de pares de interações positivas. A proteína “A” do hospedeiro também não pode ter interação conhecida com outra proteína do vírus que tenha ao menos 20% de similaridade com a proteínas “X” e a proteína “X” não pode interagir com outra proteína do hospedeiro que tenha ao menos 20% de similaridade com “A”. Caso as proteínas “X” e “A” atendam esses requisitos, são colocadas como par no conjunto de pares não interativos.

Para montar a tabela InteracoesNegativas foi desenvolvido um script em linguagem PERL chamado de geraInteracoesNegativas-0.6.pl. O script recebe como entrada dois arquivos de texto sendo um com a lista de proteínas de vírus e outros com a lista de proteínas de hospedeiros, depois o mesmo realiza uma consulta no banco de dados para verificar se o par está na tabela de interações positivas e, em caso negativo, assumindo o par como possível par negativo. A proteína do hospedeiro em questão é verificada na tabela de interações positivas com outras proteínas virais que ela interage e, caso interaja com outra proteína viral, é feita a verificação do grau de similaridade dessa proteína viral com a proteína viral em questão, sendo esta consulta feita através uma consulta previamente processada (recurso também conhecido como “view”) chamada vw_remove_outliers, onde estão apenas alinhamentos com cobertura maior que 80%. O bit-score é normalizado conforme a metodologia apresentada por Eid, Elhefnawi e Heath, (2015) e é verificado se a proteína viral que interage com a proteína do hospedeiro em questão tem similaridade maior de que 20% com a proteína viral que está sendo considerada para par negativo. O mesmo critério é então adotado em relação à proteína viral em questão, ou seja, é feita uma verificação se a proteína viral em questão interage com outra proteína do hospedeiro que tenha mais de 20% de similaridade com a proteína do hospedeiro em questão. Se todos os critérios forem atendidos, as proteínas viral e do hospedeiro em questão são adicionadas na tabela Interações negativas.

Documentos relacionados