• Nenhum resultado encontrado

Avaliação dos Dados de Domínio de Análises Filogenéticas por Meio de Workflows Científicos e Mineração de Dados

N/A
N/A
Protected

Academic year: 2021

Share "Avaliação dos Dados de Domínio de Análises Filogenéticas por Meio de Workflows Científicos e Mineração de Dados"

Copied!
64
0
0

Texto

(1)

Avaliação dos Dados de Domínio de Análises Filogenéticas por Meio de

Workflows Científicos e Mineração de Dados

Lygia Marina Mendes da Costa

Projeto de Graduação apresentado ao Curso de Engenharia de Computação e Informação da Escola Politécnica, Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do título de Engenheiro.

Orientadora: Kary Ann del Carmen Soriano Ocaña Orientadores:

Rio de Janeiro Agosto de 2015

(2)

AVALIAÇÃO DOS DADOS DE DOMÍNIO DE ANÁLISES FILOGENÉTICAS POR MEIO DE WORKFLOWS CIENTÍFICOS E MINERAÇÃO DE DADOS

Lygia Marina Mendes da Costa

PROJETO DE GRADUAÇÃO SUBMETIDO AO CORPO DOCENTE DO CURSO DE ENGENHARIA DE COMPUTAÇÃO E INFORMAÇÃO DA ESCOLA POLITÉCNICA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE ENGENHEIRO DE COMPUTAÇÃO E INFORMAÇÃO.

Examinada por:

______________________________________________ Profa. Kary Ann del Carmen Soriano Ocaña, D.Sc.

______________________________________________ Prof. Daniel Cardoso Moraes de Oliveira, D.Sc.

______________________________________________ Prof. Alexandre de Assis Bento Lima, D.Sc.

RIO DE JANEIRO, RJ – BRASIL Agosto de 2015

(3)

iii da Costa, Lygia Marina Mendes

Avaliação dos Dados de Domínio de Análises Filogenéticas por meio de Workflows Científicos e Mineração de Dados / Lygia Marina Mendes da Costa. – Rio de Janeiro: UFRJ/ Escola Politécnica, 2015.

XIII, 64 p.: il.; 29,7 cm.

Orientadora: Kary Ann del Carmen Soriano Ocaña Projeto de Graduação – UFRJ/ Escola Politécnica/ Curso de Engenharia de Computação e Informação, 2015.

Referências Bibliográficas: p. 49 - 51.

1. Workflows Científicos 2. Análises Filogenéticas 3. Mineração de Dados 4. Dados de Domínio I. Ocaña, Kary Ann del Carmen Soriano. II. Universidade Federal do Rio de Janeiro, Escola Politécnica, Curso de Engenharia de Computação e Informação. III. Título.

(4)

iv Aos meus pais e ao meu irmão, por todo amor e apoio.

(5)

v

AGRADECIMENTOS

Agradeço aos meus pais, Analucia e Carlos, por acreditarem em mim, sempre apoiando minhas escolhas, dando o melhor possível para que eu pudesse chegar até aqui com tranquilidade. Agradeço a eles por terem me educado e me mostrado que a vida é feita de escolhas e o sucesso de esforço e determinação, virtudes que me foram essenciais durante o curso de Engenharia.

Agradeço ao meu irmão, Pedro, por ser o companheiro de todas as horas, me permitindo desabafar a respeito de todos os aborrecimentos, inseguranças e ansiedades. Obrigada, também, por sempre estar do meu lado, mesmo quando brigados.

Agradeço ao meu namorado e melhor amigo, Nilton, por me permitir ocupar seu tempo discutindo assuntos acadêmicos. Não há outra pessoa que aceite discutir Aprendizado de Máquina em um bar, ou que me ensine Computação Gráfica na pizzaria. Obrigada, também, por sempre discordar de mim, enriquecendo nossas conversas e me ensinando muito mais do que imagina.

Agradeço a todos os professores que fizeram parte da minha trajetória: aos professores de colégio que me deram base para me tornar aluna da UFRJ e aos professores de graduação pela dedicação. Em especial, obrigada Prof. Gerson Zaverucha e Juliana Bernardes, por me orientar durante a Iniciação Científica, despertando meu interesse em pesquisa.

Agradeço à Profª. Kary Ocaña por aceitar me orientar nesse projeto final de graduação e tornar possível a conclusão do curso. Obrigada por todo seu tempo e conhecimento.

Agradeço aos meus amigos, em especial àqueles que me acompanharam durante quase todo o curso, me proporcionando momentos descontraídos e a paz necessária para enfrentar cada período. Rodolfo Machado, Bernardo Narcizo, Luciano Leite, Rachel Castro, Janine Ma, Evana Carvalho, Bernardo Camilo, André Araújo, Thiago Vasconcelos e Pedro de Vasconcellos, muito obrigada pela amizade, de coração.

(6)

vi Resumo do Projeto de Graduação apresentação à Escola Politécnica/ UFRJ como parte dos requisitos necessários para a obtenção do grau de Engenheiro de Computação e Informação.

Avaliação dos Dados de Domínio de Análises Filogenéticas por Meio de

Workflows Científicos e Mineração de Dados

Lygia Marina Mendes da Costa

Agosto/2015

Orientadora: Kary Ann del Carmen Soriano Ocaña Orientadores:

Curso: Engenharia de Computação e Informação

Experimentos de análises filogenéticas são experimentos caracterizados pela construção de árvores filogenéticas utilizadas para representar relações evolutivas entre espécies. São experimentos que, normalmente, se utilizam de simulações computacionais custosas e de um grande número de dados de entrada. Assim, cientistas têm utilizado workflows científicos, uma vez que permite melhor gerenciamento das etapas e dados intermediários do experimento. Entretanto, a análise dos dados de domínio resultantes da execução do experimento deve ser feita diretamente pelo cientista e, muitas vezes, de forma manual. Concluir ou inferir sobre essas dados se torna inviável, portanto, à medida que se aumenta o número de entradas. Sob essa motivação, este projeto propõe uma nova versão de um workflow científico de análises filogenéticas que permita ao cientista inferir sobre um grande número de árvores filogenéticas por meio de uma técnica de mineração de dados e de representação de árvores em tabelas.

Palavras-chave: Workflows Científicos, Dados de Domínio, Análises Filogenéticas, Mineração de Dados.

(7)

vii Abstract of Undergraduate Project presented to POLI/UFRJ as a partial fulfillment of the requirements for the degree of Computer and Information Engineer.

Data Evaluation of Phylogenetic Analyses Domain using Scientific

Workflows and Data Mining

Lygia Marina Mendes da Costa

Agosto/2015

Advisor: Kary Ann del Carmen Soriano Ocaña Advisors:

Major: Computer and Information Engineering

Phylogenetic analysis are experiments characterized by computing phylogenetic trees that represent evolutionary relationships between species. These are experiments that usually make use of expensive computer simulations and a large number of input data. Thus, scientists have been using scientific workflows, since it allows better management of the experiment' steps and data flow. However, analysing output data obtained from running the experiment must be made directly by the scientist and often manually. Concluding or inferring about these data is not feasible as the amount of input data increases. Under this motivation, this project proposes a new version of a scientific workflow of phylogenetic analysis that allow the scientist to infer about a large number of phylogenetic trees using data mining technique and tables for representing trees.

(8)

viii

SUMÁRIO

1. Introdução ... 1 2. Fundamentação Teórica ... 5 2.1. Experimento Científico ... 5 2.1.1. Dados de Proveniência ... 8 2.2. Workflows Científicos ... 8

2.2.1. Sistemas de Gerência de Workflows Científicos ... 9

2.2.2. SciCumulus ... 10

2.3. Bioinformática ... 11

2.3.1. Análises Filogenéticas ... 12

2.4. Mineração de Dados e Estruturas ... 13

2.4.1. Subárvores Frequentes ... 14

3. SciPhy: Um Workflow Científico para Análises Filogenéticas ... 20

4. SciPhyTreeMiner: SciPhy e Representação e Mineração de Árvores Filogenéticas . 23 4.1. Representação de Árvores Filogenéticas em Tabelas ... 26

4.2. Mineração de Árvores Filogenéticas ... 29

5. Análise Experimental do SciPhyTreeMiner ... 31

5.1. Consultas de Atividades ... 31

5.2. Consultas de Representação de Árvores Filogenéticas ... 34

5.3. Consultas de Mineração de Árvores Filogenéticas ... 38

6. Avaliação de Desempenho do Workflow SciPhyTreeMiner ... 42

7. Conclusão ... 46

(9)

ix

ÍNDICE DE FIGURAS

Figura 1 – Ciclo de vida de um experimento científico. Adaptado de Mattoso et al. (2010) ... 7 Figura 2 – Motivação para uso de FST no lugar de MAST. Adaptado de Deepak et al. (2014) ... 15 Figura 3 – Tipos de União entre Árvores de mesma Classe Equivalente. Retirado de Deepak et al. (2014) ... 16 Figura 4 – Percurso Euler. D e U para descida e subida na árvore. ... 17 Figura 5 – Aplicação de Cálculo de fingerprint (Karp e Rabin 1987) a Árvores... 18 Figura 6 – Diagrama de Atividades de um Workflow SciPhy. RAxML e PhyML são programas destinados à mesma atividade. ... 20 Figura 7 – Especificação de uma Atividade no XML do workflow ... 21 Figura 8 – SciPhyTreeMiner: Extensão do SciPhy ... 23 Figura 9 – Diagrama de Atividades do SciPhyTreeMiner: SciPhy com Representação e Mineração de Árvores ... 24 Figura 10 – Redução do Nome da Entrada ... 25 Figura 11 – Árvore Exemplo para Tabela de Adjacência (Tabela 1) ... 26 Figura 12 - Resultados da Consulta SQL 1: Tempo de Execução de Atividades de wftreeminer_1-1 ... 33 Figura 13 – Resultados da Consulta SQL 2: Tempo de Execução de Atividades de wftreeminer_1-2 ... 33 Figura 14 – Resultados da Consulta SQL 3: Nós Ancestrais de uma Folha ... 35 Figura 15 - Árvore Filogenética Construída pelo PhyML para a Entrada

ORTHOMCL337 ... 35 Figura 16 – Resultados da Consulta SQL 4: Nós Ancestrais Comuns a duas Espécies . 36 Figura 17 - Resultados da Consulta SQL 6: Número de FSTs Maximais em Cada Execução ... 39 Figura 18 – Resultados da Consulta SQL 7: Número de Folhas das FSTs Maximais de cada Execução ... 40 Figura 19 – Resultados da Consulta SQL 8: FSTs Maximais de Máxima Frequência de cada Execução ... 41

(10)

x

ÍNDICE DE TABELAS

Tabela 1 – Atividades e Relações do Workflow SciPhyTreeMiner ... 25

Tabela 2 – Tabela de Adjacência de Árvore... 26

Tabela 3 – Tabela de Registro de Árvores Filogenéticas em Banco de Dados ... 27

(11)

xi

ÍNDICE DE GRÁFICOS

Gráfico 1 – Tempo Total de Execução do SciPhyTreeMiner ... 42 Gráfico 2 – Tempo Total de Execução das Atividades do SciPhyTreeMiner ... 43 Gráfico 3 – Tempo Médio de Execução das Atividades do SciPhyTreeMiner ... 44

(12)

xii

ÍNDICE DE CONSULTAS SQL

Consulta SQL 1 – Retorna Tempo de Execução das Atividades da Execução

wftreeminer_1-1 do SciPhyTreeMiner ... 32 Consulta SQL 2 – Retorna Tempo de Execução das Atividades da Execução

wftreeminer_1-2 do SciPhyTreeMiner ... 32 Consulta SQL 3 – Retorna Nós Ancestrais da Espécie 8 na Árvore Inferida pelo

RAxML ... 34 Consulta SQL 4 – Retorna Nós Ancestrais Comuns às Espécies 6 e 2 na Árvore Inferida pelo PhyML a partir da Entrada ORTHOMCL337 ... 36 Consulta SQL 5 – Retorna Tamanho do Caminho entre as Espécies 6 e 2 na Árvore Inferida pelo PhyML a partir de ORTHOMCL337 ... 37 Consulta SQL 6 – Retorna Número de Subárvores Frequentes Maximais em cada Execução ... 39 Consulta SQL 7 – Retorna o Número de Folhas nas Subárvores Maximais de cada Execução ... 39 Consulta SQL 8 – Retorna Nome de Referência das FSTs Maximais de Máxima

(13)

xiii

LISTA DE SIGLAS

AMS – Alinhamento Múltiplo de Sequências FSM – Frequent Structure Mining

FST – Frequent Subtree

MAST – Maximum Agreement Subtree

SGWfC – Sistema de Gerenciamento de Workflow Científico SQL – Structured Query Language

(14)

1

1. Introdução

Experimentos científicos (Mattoso et al. 2010) podem ser descritos como a associação de tarefas controladas (e.g. programas), que ao serem executadas, consomem e geram dados contendo informações sobre um fenômeno, a fim de refutar ou não uma determinada hipótese. Sua modelagem, execução e análise podem chegar a ser tarefas custosas e complexas, em especial para os experimentos que tratam de dados científicos reais e utilizam simulação computacional em larga escala.

A gerência desses experimentos científicos, bem como dos dados consumidos e gerados por eles, se torna mais complexa à medida que se escala. Assim, para auxiliar as etapas de um experimento científico, o cientista pode se utilizar de um workflow científico, que consiste em modelar o experimento como um encadeamento de atividades e um fluxo de dados, em que os dados gerados durante sua execução são comumente chamados de dados de proveniência (Mattoso et al. 2010).

A utilização de workflows científicos na execução de experimentos científicos acoplados a um sistema de gerenciamento de workflows científicos (SGWfC) tornou possível a execução de diversas configurações de um mesmo experimento de uma maneira estruturada passível a ser melhor gerenciada. Assim, o cientista passa a não só analisar as informações relacionadas ao workflow ou às suas atividades, como também a fazer uma análise comparativa entre os dados de domínio resultantes de diversas entradas e de workflows científicos específicos de determinadas áreas da ciência (i.e., ciências biológicas, ciências da terra e exatas, etc).

No entanto, na fase de análise do experimento científico, é necessária a análise manual por parte do cientista (i.e. especialista) para determinar quais arquivos do conjunto de saída contém as informações importantes a serem analisadas e quais arquivos

(15)

2 serão desconsiderados (e.g. arquivos intermediários). Desses arquivos eleitos, será de responsabilidade do cientista extrair as informações necessárias para as inferências evolutivas ou computacionais. Assim, em muitos casos, o cientista deve analisar manualmente uma grande quantidade de dados de domínio.

Esse cenário é bastante comum em experimentos científicos na área de bioinformática (Pevsner 2009), como, por exemplo, experimentos de filogenia (Felsenstein 2004). Análises filogenéticas têm por objetivo a construção de árvores filogenéticas a fim de inferir as relações evolutivas e filogenéticas de um grupo de sequências homólogas, i.e. sequências que são evolutivamente originárias de um mesmo ancestral comum. Neste cenário, a comparação entre as várias árvores resultantes possíveis – de diferentes entradas ou parâmetros – é essencial para a avaliação e validação do experimento, desde o ponto de vista biológico ao computacional

Nesse sentido, este projeto visa trazer para o ambiente de workflows científicos, atividades adicionais que apoiem mais na fase de análise do ciclo de vida de experimentos científicos de análises filogenéticas. Essas atividades de análise focam na mineração e representação de dados de domínio, mais especificamente de topologias. Uma característica importante é que essas atividades são independentes ao SGWfC e podem consumir arquivos com árvores provenientes das diferentes variações de workflows do mesmo experimento. Dessa forma, o cientista deve ser capaz de analisar os dados de domínio de um grupo de arquivos sem a necessidade de acessar a cada diretório do experimento ou utilizar programas externos para visualização.

Uma dessas atividades diz respeito a uma representação dos dados de domínio das árvores filogenéticas que permita a consulta às topologias por meio de SQL. Sua implementação consiste em reescrever os dados utilizando tabelas de adjacência entre entidades, como em grafos (Cormen 2009).

(16)

3 Outra atividade consiste na mineração das árvores a fim de retornar subárvores frequentes, ou seja, subárvores que sejam comuns a uma maioria de dados resultantes de análises filogenéticas. A implementação dessa última terá como base um algoritmo proposto por Deepak et al. (2014), que consiste na utilização de uma forma canônica da árvore filogenética, e da técnica de fingerprint (Karp e Rabin 1987) para busca de estruturas frequentes.

Para isso, foi realizado o reaproveitamento e a reestruturação de workflows científicos de filogenia previamente definidos (i.e. SciPhy, Ocaña et al. 2011), uma vez que, além do desenvolvimento das novas atividades, foi necessário entender o fluxo de atividades e o consumo/geração de dados do SciPhy para a inserção das atividades propostas. Além disso, propõe-se a utilização de variações do workflow SciPhy, para o qual ele foi modificado na última atividade – construção de árvores filogenéticas – originalmente executado com RAxML e agora executado com o PhyML. Dessa forma, foram obtidas variações de árvores geradas, o que permite uma melhor avaliação dos dados de proveniência que apoie à comparação dos dados de domínio correspondentes.

Em relação à adaptação de workflows científicos, foi realizada uma condensação dos workflows SciPhy-RAxML e SciPhy-PhyML em um único a fim de melhorar a representação e a execução, uma vez que eles se diferem apenas na última atividade. Assim, a execução das diversas variações de workflow científico de um mesmo experimento são reduzidas à execução de um único workflow.

Essa abordagem será apresentada detalhadamente no decorrer desta monografia que está dividida em oito capítulos, sendo o primeiro esta introdução. No Capítulo 2, são apresentados os conceitos teóricos necessários para a compreensão do projeto como um todo. No Capítulo 3, é apresentado o workflow científico de análises filogenéticas adaptado à variações dos programas, bem como suas implementações. No Capítulo 4, é

(17)

4 apresentado a especificação e implementação do novo workflow proposto, bem como das atividades de representação e mineração de árvores filogenéticas. No Capítulo 5, é apresentada a análise experimental, com a execução do novo workflow científico e das novas atividades para análise de dados de filogenia. O Capítulo 6 analisa o desempenho e o nível de contribuição do novo workflow proposto. Por fim, no Capítulo 8, o trabalho é concluído.

(18)

5

2. Fundamentação Teórica

Esse capítulo tem por objetivo apresentar conceitos e noções teóricas necessárias para o desenvolvimento e a compreensão deste projeto. A seção 2.1 apresenta conceitos de bioinformática e análises filogenéticas, essenciais para compreensão do contexto em que este projeto está inserido. A seção 2.2 apresenta o conceito de experimento científico, que está diretamente ligado à motivação deste projeto. A seção 2.3 e suas subseções apresentam os conceitos de workflow científico e seus elementos, definem Sistemas de Gerência de Workflows Científicos (SGWfC) e apresentam o SciCumulus como um SGWfC, base para os workflows científicos de análises filogenéticas utilizados neste projeto. Por fim, a seção 2.4 apresenta conceitos de mineração de dados e estruturas, bem como a técnica aplicada neste projeto: busca de subárvores frequentes.

2.1. Experimento Científico

De acordo com Mattoso et al. (2010), um experimento científico consiste em um teste realizado em ambiente controlado que tem como finalidade verificar a validade de uma hipótese, demonstrar uma verdade conhecida ou a validade de algo não testado anteriormente. Portanto, como concluído por Mattoso et al. (2010), um experimento científico corresponde a um conjunto de ações controladas contento testes diversos cujos resultados podem ser comparados entre si a fim de se aceitar ou refutar uma hipótese.

Um experimento científico deve ser reproduzível a fim de permitir que diversos cientistas verifiquem a validade do mesmo, verificando seus resultados. Dessa forma, é importante manter registro das atividades que o compõem para que possa ser utilizado a posteriori em uma análise mais detalhada do experimento, bem como dos resultados.

(19)

6 A configuração do ambiente de execução do experimento e das interações define o tipo de experimento científico. Quando realizado totalmente em ambiente computacional, o experimento é classificado como in silico (Travassos e Barros 2003). Assim, qualquer experimento científico baseado em simulaçõec computacionais é um experimento in silico.

As etapas presentes no processo de experimento científico podem ser descritas por um ciclo de vida (Mattoso et al. 2010), tal que se mantenha controle das informações geradas a partir das etapas do experimento, organizando tarefas a serem executadas por cientistas no decorrer do experimento. Nesse contexto, o experimento científico possui três fases de acordo com Mattoso et al. (2010): composição, que diz respeito à definição das atividades e dos tipos de dados; execução, que consiste em materializar as concepções da fase anterior, e análise, que consite no estudo dos dados obtidos durante as fases anteriores.

A fase de composição pode ser entendida como a fase da abstração, uma vez que se trata da fase em que o experimento será transcrito em atividades e parâmetros. Consiste na definição de workflows abstratos, definindo, também, tipos de dados de entrada e saída e os parâmetros a serem utilizados no experimento. A modelagem do experimento em um workflow diz respeito ao processo de concepção da fase de composição, onde pode haver a utilização de workflows previamente modelados a fim de adaptá-los ao novo experimento, o que corresponde ao processo de reuso (Cardoso, de Souza, e Marques 2002; E. Ogasawara et al. 2009; D. de Oliveira, Ogasawara, Seabra, et al. 2010; F. T. de Oliveira et al. 2008).

(20)

7 Na fase de execução, o modelo de workflow concebido na fase anterior é transformado em executável levando em conta os valores de parâmetros e dados de entrada definidos inicialmente, bem como a infraestrutura computacional a ser utilizada. O processo de distribuição de atividades organiza as atividades a serem executadas de forma a otimizar recursos computacionas, podendo utilizar ambientes distribuídos e paralelos. Além disso, há o processo de monitoramento, responsável por verificar e gerenciar o estado de execução de cada atividade.

Por fim, a fase de análise consiste em avaliar toda a informação gerada durante as fases anteriores por meio de proveniência de dados. Nela, o cientista pode consultar e visualizar, por meio de gráficos ou mapas, resultados do experimento e metadados do workflow, que contém informações a respeito da concepção e execução do mesmo. Dessa forma, o cientista pode analisar os resultados do experimento a fim de confirmar ou

Dados de Proveniência Concepção Reuso Distribuição Monitoramento Consulta Visualização Composição Execução Análise

Figura 1 – Ciclo de vida de um experimento científico. Adaptado de Mattoso et al. (2010)

(21)

8 refutar as hipóteses do experimento, recomeçar o ciclo com outros parâmetros a fim de verificar o funcionamento do experimento em diversos cenários, ou recriar o experimento gerando outros workflows.

2.1.1. Dados de Proveniência

Dados de proveniência consistem em dados gerados durante todo o ciclo de vida de um experimento científico (Mattoso et al. 2010). Esse conjunto de dados engloba dados referentes à especificação e execução do experimento, bem como dados de domínio consumidos e/ou gerados por cada atividade executada durante o experimento.

Os dados de domínio dizem respeito aos dados específicos da área da ciência em que o experimento está inserido. Os dados de entrada, assim como os resultados do experimento, portanto, configuram dados de domínio de um experimento específico.

2.2. Workflows Científicos

Workflows científicos consistem em abstrações do experimento científico de maneira estruturada. Pode ser visto como um teste do experimento a fim de avaliar uma ação controlada (Mattoso et al. 2010). Portanto, um conjunto de execuções distintas de workflows científicos apoia na definição de um experimento científico (Mattoso et al. 2010).

Devido à sua característica de modelar etapas a serem executadas de um experimento científico, os workflows científicos se tornaram padrão para a modelagem de experimentos científicos que se utilizam de simulação computacional (Mattoso et al. 2010). Dessa forma, o workflow científico pode ser visto como um conjunto de atividades que representam programas e scripts a serem executados sequencialmente de acordo com

(22)

9 dependências, gerando dados de entrada para atividades posteriores dependentes. Os dados gerados pelas atividades podem ser propagados até o final do workflow científico se for interessante para a análise do experimento científico ou se forem necessários para atividades não imediatamente posteriores.

O experimento, no entanto, pode ser complexo de forma que os workflows científicos que o compõem possuam atividades que sejam dependentes ou gerem dados heterogêneos, não estruturados ou de grande tamanho cuja execução tenha alto custo computacional. Assim, os workflows científicos podem usufruir de técnicas de computação de alto desempenho, distribuindo e paralelizando atividades.

2.2.1. Sistemas de Gerência de Workflows Científicos

Sistemas de Gerenciamento de Workflows Científicos (SGWfC) (Deelman e Chervenak 2008) foram desenvolvidos a fim de gerenciar a especificação, execução e o monitoramento de workflows científicos. Assim, o SGWfC pode ser utilizado em todo o ciclo de vida do experimento científico, desde a concepção dos workflows e gerenciamento de suas execuções até consulta de resultados.

Dessa forma, a gerência e monitoramento das execuções das atividades pode ser realizada por completo por parte do SGWfC, permitindo que o cientista se concentre em atividades de domínio do experimento científico, como a composição e análise final dos workflows científicos, atividades apoiadas pelo SGWfC (Deelman et al. 2009). Alguns exemplos de SGWfC mais utilizados são: VisTrails (Callahan et al. 2006), Kepler (Altintas et al. 2004), Pegasus (Deelman et al. 2007) e Swift (Zhao et al. 2007), onde cada um possui características diferentes podendo ser vantajosos para algumas aplicações específicas.

(23)

10 2.2.2. SciCumulus

O SciCumulus é um SGWfC projetado para o gerenciamento de workflows científicos executados em paralelo e em ambientes em nuvem. Ele é responsável pela distribuição, controle e monitoramento das atividades de workflows científicos que se utilizam de técnicas de computação de alto desempenho (D. de Oliveira, Ogasawara, Baião, et al. 2010).

O SciCumulus, possui uma estrutura básica de fluxo de atividades e workflows, contendo relação de dependência entre atividades. Cada atividade está associada a um tipo de operação algébrica (E. S. Ogasawara et al. 2011) que determina, por exemplo, como os dados são consumidos e produzidos pela atividade. Essas operações podem ser do tipo Map, SplitMap, Reduce, Filter, SRQuery e JoinQuery.

A operação Map diz respeito a um mapeamento 1:1 entra a relação de entrada e de saída da atividade, em que para cada tupla de dados de entrada da relação de entrada é gerada apenas uma tupla de dados de saída. A operação SplitMap diz respeito a um mapeamento 1:m, em que m tuplas de dados de saída são geradas para cada tupla de dados de entrada. A operação Reduce é a operação inversa à operação de SplitMap, uma vez que consiste em gerar uma única tupla de dados de saída para n tuplas de dados de entrada, sendo, portanto, um mapeamento n:1. A operação Filter está relacionada com atividades de filtro, em que cada tupla de dados de entrada é copiada para a relação de saída da atividade caso a atividade permita, representando uma relação de 1:(0-1).

As duas últimas operações (SRQuery e JoinQuery) definem uma relação entre a entrada e a saída de n:m. A operação SRQuery permite a execução de uma expressão algébrica relacional sobre os dados de entrada da atividade, gerando m tuplas de saída a partir de n tuplas de entrada. Já a operação JoinQuery permite a geração de uma única relação de saída a partir de um conjunto de n relações de entrada.

(24)

11 No gerenciamento de workflows com execução em paralelo, cabe ressaltar o conceito de ativação. Ativação consiste em uma execução de uma atividade do worklfow que consomte um conjunto de tuplas específico. Em um workflow científico, cada atividade é composta por um conjunto de ativações a serem executadas em máquinas distintas, configurando a execução em paralelo da atividade. Cada ativação carrega consigo informações necessárias para sua execução, como dados de entrada e parâmetros da atividade à qual pertence.

A estrutura do SciCumulus pode ser divida em quatro camadas distintas, são elas: cliente, distribuição, execução e dados (D. de Oliveira, Ogasawara, Baião, et al. 2010; D. Oliveira et al. 2012). A primeira, camada cliente, é responsável por enviar as atividades ao ambiente de execução, podendo ser um ambiente em nuvem. A camada de distribuição distribui as atividades a serem executadas entre as máquinas que compõem o ambiente de execução. A camada de execução é responsável pela execução dessas atividades, bem como de qualquer programa requisitado por elas, mantendo registro de dados de proveniência ao longo da execução. Por fim, a camada de dados é responsável pela alocação de dados de entrada e saída, extraindo dados a serem alocados no banco de dados do workflow, além de manter registro de toda informação referente ao ambiente distribuído de execução.

2.3. Bioinformática

Bioinformática diz respeito à área da ciência responsável por aplicar conceitos e técnicas de tecnologia da informação a estudos de biologia molecular (Lengauer 2001). De acordo com Luscombe, Greenbaum, e Gerstein (2001), bioinformática é conceitualizar a biologia em termos de moléculas e aplicar técnicas de informática, provenientes das áreas de matemática aplicada, ciência da computação e estatística, a fim

(25)

12 de compreender e organizar a informação associada a essas moléculas em larga escala. Provê, portanto, meios para que possam ser feitas inferências a respeito da evolução, função e estrutura de sistemas biológicos.

Atualmente, a bioinformática é uma área que manipula grande quantidade de dados, principalmente devido ao avanço dos métodos de sequenciamento de nova geração das estruturas moleculares, como proteínas e genoma. Dessa forma, armazenar e manipular os dados se tornou um grande desafio dentro da área de bioinformática, uma vez que gerenciar experimentos científicos na área exige muito recurso computacional (Stevens, Zhao, e Goble 2007; D. de Oliveira et al. 2013).

A quantidade de recursos computacionais aumenta com a complexidade do problema de biologia que se pretende resolver, com a quantidade de dados consumidos e gerados e com os programas executados sobre esses dados. Uma solução para esse cenário é a utilização de técnicas de processamento paralelo e sistemas de gerência de experimentos em larga escala.

Assim, esse tipo de experimento científico pode ser fortemente apoiado pelos workflows científicos e os SGWfC descritos na subseção 2.2 desta seção, o que justifica a ampla utilização de workflows científicos na área de bioinformática. O biólogo ou bioinformata pode, então, utilizar o SciCumulus descrito na subseção 2.2 desta seção, tal e como demonstrado nas recentes publicações relacionadas (Ocaña et al. 2011).

2.3.1. Análises Filogenéticas

Experimentos de análise filogenética visam a construção de árvores filogenéticas que representem as relações evolutivas entre espécies organismos obtidas a partir do processamento de alinhamentos múltiplos de sequências (AMS).

(26)

13 Análises filogenéticas têm como objetivo analisar ocorrência de diferenciação entre organismos ao longo da evolução, bem como compreender as relações entre ancestrais e descendentes. Dessa forma, a análise é feita processando-se uma grande quantidade de sequências genômicas, com uso de algoritmos evolutivos computacionais já bem conceituados na área, como por exemplo, o método de máxima verossimilhança do programa RAxML (Stamatakis 2014) para a construção de árvores utilizado no SciPhy. Cabe mencionar que o processo de obtenção de árvores filogenéticas por esse método de máxima verossimilhança é normalmente custoso computacionalmente. No fim do processo, se espera obter a árvore mais representativa e/ou poder comparar essa árvore com um conjunto de outras árvores possíveis geradas com diferentes configurações de parâmetros, algoritmos ou programas para poder inferir hipóteses sobre as relações evolutivas e filogenéticas dos organismos em estudo.

Nesse contexto, o experimento científico de análises filogenéticas pode ser representado por meio de workflows científicos e de SGWfC (i.e. SciPhy) nas suas quatro atividades principais referentes à construção de AMS, formatação de arquivos, escolha do melhor modelo evolutivo e construção das árvores. Uma implementação desse workflow científico, SciPhy, é descrita na seção 3.

2.4. Mineração de Dados e Estruturas

Mineração de dados consiste no processo de extração de informação implícita presente em um conjunto de dados (Olafsson, Li, e Wu 2008). É uma área que vem crescendo cada vez mais devido ao aumento de dados armazenados, bem como sua complexidade, na medida em que se torna interessante a extração de informação de um conjunto extenso de dados (Da San Martino e Sperduti 2010).

(27)

14 Uma técnica muito utilizada no processo de mineração de dados é a detecção de ocorrências frequentes na base de dados a fim de se extrair um padrão. Para dados mais complexos, como ávores e grafos, a informação a ser minerada está relacionada à estrutura, de forma que subestruturas frequentes (Frequent Structure Mining – FSM) na base de dados sugerem um padrão presente nos dados (Da San Martino e Sperduti 2010). A técnica consiste em contar de maneira eficiente a frequência de todas as ocorrências e registrar apenas as ocorrências com frequência maior que uma tolerância.

No contexto deste projeto, a mineração de dados se dará sobre dados de domínio referentes e atribuídos às árvores filogenéticas. Assim, o objetivo é obter subárvores frequentes (Frequent SubTree – FST) a fim de detectar algum padrão de relação evolutiva nos dados filogenéticos.

2.4.1. Subárvores Frequentes

Em análises filogenéticas, a análise dos resultados está relacionada principalmente à inferência das relações evolutivas, à análise das estatísticas obtidas e à comparação entre árvores. Em geral, experimentos de análises filogenéticas resultam em uma coleção de árvores que representam as relações evolutivas e filogenéticas de um conjunto de espécies (Swenson et al. 2012). Assim, uma análise importante poderia ser feita sobre os dados de entrada (e.g. sequências biológicas) e saída (e.g. resultados estatísticos e árvores), relacionando, quando possível, informações de domínio específicas comuns contidas nos arquivos de uma ou mais árvores presentes em uma coleção. Muitas vezes, esta comparação é realizada manualmente pelo cientista e exige o conhecimento do especialista da área a respeito da importância do dado de domínio representativo (e.g. subárvores) a ser extraído, armazenado, comparado e/ou analisado.

(28)

15 Dessa forma, pode-se computar uma subárvore de máxima concordância (Maximum Agreement Subtree – MAST) que corresponde à maior subárvore comum a todas as árvores dadas como entrada. Quanto mais distintas são as árvores de entrada, menor é a MAST, uma vez que a similaridade entre as árvores é menor. Assim, para casos em que as árvores são muito distintas, a MAST não representa o máximo de informação que pode ser extraída da coleção (Deepak et al. 2014), como exemplificado na Figura 2.

Nesse contexto, então, o mais adequado seria computar as FSTs, como no algoritmo construtivo proposto por Deepak et al. (2014) utilizado neste projeto, já que não precisam ser comuns a todas as árvores, mas conseguem representar relações evolutivas frequentemente encontradas na coleção de árvores filogenéticas (Deepak et al. 2014).

O algoritmo EvoMiner de Deepak et al. (2014) visa computar FSTs a partir de árvores filogenéticas enraizadas, ou seja, árvores que contém um nó não-folha raíz. A ideia central do algoritmo está relacionada com o fato de que uma subávore de 𝑘 folhas é frequente se e somente se suas subárvores de 𝑘 − 1 folhas também são frequentes. Portanto, a obtenção de uma subárvore frequente de 𝑘 folhas deve ser a partir da união de duas subárvores de 𝑘 − 1 folhas.

Figura 2 – Motivação para uso de FST no lugar de MAST. Adaptado de Deepak et al. (2014)

(29)

16 Nesse contexto, Deepak et al. (2014) introduz o conceito de árvore prefixa como sendo a árvore obtida com a remoção da folha mais à direita e o conceito de classe equivalente, que consiste em um conjunto de árvores que compartilham a mesma árvore prefixa. Assim, as subárvores frequentes de 𝑘 folhas podem ser geradas pela união de duas subárvores 𝑇𝑥 e 𝑇𝑦 da mesma classe equivalente, tendo 𝑇𝑥 como sua árvore prefixa.

Essa união pode ser realizada de quatro formas diferentes, conforme a Figura 3.

Cada árvore gerada é, então, processada de forma a garantir que todas as suas subárvores de 𝑘 − 1 folhas são frequentes, uma vez que se alguma subárvore não for frequente, então a árvore gerada também não será. Se todas forem, no entanto, o algoritmo deve checar de a árvore de 𝑘 folhas também é frequente.

O processo de computar se todas as subárvores de 𝑘 − 1 folhas são frequentes é chamado de Downward-Closure e diz respeito à etapa mais custosa de um algoritmo construtivo de FSTs. Assim, (Deepak et al. 2014) utiliza uma representação em string

Figura 3 – Tipos de União entre Árvores de mesma Classe Equivalente. Retirado de Deepak et al. (2014)

(30)

17 canônica das árvores e subárvores visando a aplicação do conceito de fingerprint introduzido por Karp e Rabin (1987). Dessa forma, uma árvore de 𝑘 folhas pode ser representada em string obtida por um percurso Euler (Henzinger e King 1999) na árvore, conforme exemplo na Figura 4, e as strings de suas subárvores de 𝑘 − 1 folhas podem ser obtidas pela remoção de caracteres na string.

A fingerprint de cada subárvore de 𝑘 − 1 folhas pode ser, então, obtida a partir de uma fórmula matemática utilizando a fingerprint da árvore de 𝑘 folhas e a fingerprint de substrings prefixas calculadas previamente, como mostra o exemplo na Figura 5. No entanto, é preciso conhecimento prévio de qual substring deve ser removida da string original para que represente a nova árvore. Logo, é preciso buscar, na string, substrings do tipo DiU e analisar sua posição levando em conta que a string possui uma estrutura aninhada de Ds e Us para a remoção de D e U no caso em que a remoção da folha resulta em contração de nós na árvore, como no exemplo da Figura 5. Assim, é possível calcular a fingerprint da nova string em um passo dado que são conhecidas as substrings a serem removidas, bem como suas posições na string original.

1 2 3 4 DD1UD2UUDD3UD4UU

Figura 4 – Percurso Euler. D e U para descida e subida na árvore.

(31)

18 Uma vez calculadas as fingerprints de cada subárvore, classificá-las como frequentes consiste em verificar se essas fingerprints estão presentes em uma tabela hash de subárvores frequentes previamente construída, ou seja, verificar se são fingerprints já calculadas na iteração anterior, em que foram obtidas subárvores frequentes de 𝑘 − 1 folhas. Esse método evita a comparação direta entre estruturas de árvores que são, normalmente, computacionalmente custosas.

Assim, a comparação direta entre árvores é necessária apenas para cálculo da frequência das subárvores de 𝑘 folhas resultantes do processo de união cujas subárvores de 𝑘 − 1 folhas são frequentes. Esse processo é realizado para todos os tipos de árvores de 𝑘 folhas provenientes do processo de união.

Dessa forma, o algoritmo EvoMiner (Deepak et al. 2014) pode ser resumido como um processo construtivo de subárvores frequentes que está dividido em três etapas principais:

 Geração de subárvores candidatas de 𝑘 folhas por meio de união de subárvores 𝑘 − 1 folhas 1 2 4 𝐹𝑝 𝐷𝐷1𝑈𝐷2𝑈𝑈𝐷4𝑈 = 𝐹𝑝 𝐷𝐷1𝑈𝐷2𝑈𝑈𝐷𝐷3𝑈𝐷4𝑈 − 𝐹𝑝 𝐷𝐷1𝑈𝐷2𝑈𝑈𝐷𝐷3𝑈 × 2𝑙𝑒𝑛 𝐷4𝑈 + 𝐹𝑝 𝐷𝐷1𝑈𝐷2𝑈𝑈 × 2𝑙𝑒𝑛 𝐷4𝑈

Figura 5 – Aplicação de Cálculo de fingerprint (Karp e Rabin 1987) a Árvores

(32)

19  Verificação da frequência mínima de todas subárvores de 𝑘 − 1 folhas

contidas nas subárvores candidatas de 𝑘 folhas

 Verificação da frequência mínima das subárvores candidatas de 𝑘 folhas

Cada classe equivalente de subárvores de 𝑘 folhas é obtida por um conjunto de iterações compostas pelas etapas descritas acima. Dessa forma, ao final da execução do algoritmo EvoMiner, há 𝑁 classes equivalentes, em que a última classe equivalente possui as maiores subárvores frequentes do conjunto de árvores de entrada.

As subárvores presentes nas classes equivalentes resultantes são diretamente influenciadas pelo valor de frequência mínima exigida. Assim, para uma entrada de tamanho 𝑁 e frequência mínima de 1 𝑁⁄ , o último conjunto de classes equivalentes de subárvores de 𝑘 folhas possui como subárvores frequentes todas as árvores de entrada do processo de mineração. O valor de frequência mínima é, portanto, um parâmetro a ser ajustado pelo cientista que possui conhecimento a respeito do estudo a ser realizado.

(33)

20

3. SciPhy: Um Workflow Científico para Análises Filogenéticas

SciPhy (Ocaña et al. 2011) é um workflow científico desenvolvido para a análise filogenética de sequências genômicas, implementado utilizando o SciCumulus para sua execução paralela em nuvem, embora o workflow possa ser executado localmente. Os dados de domínio de saída do workflow são árvores filogenéticas representativas dos AMSs gerados no início da execução do workflow científico, podendo variar o algoritmo utilizado nas atividades, em especial os algoritmos de construção de árvores filogenéticas. O SciPhy é composto por cinco atividades: seleção de dados, AMS, eleição do melhor modelo evolutivo a partir do AMS, formatação de arquivos e construção de árvores filogenéticas (Figura 6). Algumas atividades podem ser consideradas auxiliares (i.e. seleção de dados e formatação de arquivos), uma vez que são utilizadas para filtragem ou conversão de formato de dados, não realizando qualquer operação de transformação. Assim, as demais atividades (i.e. AMS, eleição do melhor modelo evolutivo e construção de árvores filogenéticas) podem ser consideradas atividades principais.

(1) Seleção de Dados de Entrada dataselection

(2) Alinhamento Múltiplo de Sequências – MAFFT

mafft

(3) Adaptação de Formato de Dado readseq

(4) Seleção de Modelo Ótimo – ModelGenerator

modelgenerator

(5) Construção de Árvores Filogenéticas com Máxima Verossimilhança

RAxML PhyML

Figura 6 – Diagrama de Atividades de um Workflow SciPhy. RAxML e PhyML são programas destinados à mesma atividade.

(34)

21 A especificação de cada atividade do workflow, bem como do workflow como um todo, é feita através de um XML, conforme a Figura 7, em que são especificados informações sobre o ambiente de execução, dependência entre atividades, arquivos de execução e extração, além de especificar a maneira como os dados extraídos são registrados no bando de dados. A especificação de cada atividade contém relações e campos a serem interpretados para a implementação do banco de dados do workflow pelo SGWfC.

A atividade de seleção de dados é responsável por receber os dados de entrada do workflow e extrair informações como o nome do arquivo de entrada e o caminho do arquivo. O SGWfC, então, propaga os dados de entrada, bem como as informações extraídas deles para a próxima atividade do workflow: a atividade de AMS.

A atividade de AMS recebe os dados da atividade anterior e executa o programa de alinhamento mútiplo MAFFT 7.1 sobre as sequências de entrada provenientes da atividade de seleção de dados. O caminho para o arquivo de saída é registrado no banco de dados do workflow cientítifico junto com os dados propagados da atividade anterior.

A atividade de adaptação do formato dos dados executa o programa ReadSeq que converte o formato FASTA (do AMS retornado pelo MAFFT) para o formato PHYLIP,

(35)

22 uma vez que o programa utilizado pela atividade de seleção do melhor modelo evolutivo, ModelGenerator, requer um formato PHYLIP.

Após a seleção do melhor modelo evolutivo a partir dos alinhamentos múltiplos, os dados de domínio de saída dessa atividade são passados para a atividade seguinte: a atividade de construção de árvores filogenéticas. Essa atividade é responsável por eleger uma árvore filogenética representativa e pode ser executada com diversos programas. Neste projeto, serão utilizados os programas RAxML 7.2.8 e PhyML 3.0, que utilizam o conceito de máxima verossimilhança para seleção da árvore mais representativa. Esses programas normalmente têm como saída arquivos contendo árvores filogenéticas em formato Newick, que consiste em representação da árvore em parênteses aninhados, e precisam de um programa auxiliar para melhor visualização.

A atividade de construção de árvores filogenéticas registra os dados propagados pelas atividades anteriores, alguns dados numéricos utilizados na construção da árvore (e.g. valores de replicação de bootstrap e comprimento de ramos) e o caminho para o arquivo de dado de domínio resultante. Dessa forma, o cientista pode consultar diretamente os arquivos contento as árvores filogenéticas resultantes para análise do experimento científico, bem como seus respectivos dados de domínio.

Todas as atividades do SciPhy utilizam uma técnica de mapeamento para registrar os dados extraídos das saídas no banco de dados do workflow científico. Assim, cada atividade gera apenas uma entrada nas tabelas do banco de dados para cada entrada do workflow científico. Essa especificação é identificada no arquivo XML como atividades do tipo MAP.

(36)

23

4. SciPhyTreeMiner: SciPhy e Representação e Mineração de Árvores

Filogenéticas

A execução de um ou mais workflows científicos do experimento científico de análise filogenética, em geral, retorna uma grande quantidade de árvores filogenéticas a serem analisadas manualmente pelo cientista. Por se tratar de dados de domínio em árvore, o SciPhy não possui estrutura adequada para a representação desses dados a fim de permitir consultas e comparações através do banco de dados do workflow científico. Os dados de domínio, nesse caso, são registrados no banco de dados como caminhos para os arquivos de saída no sistema. Assim, para análise desses dados, o cientista deve consultar o caminho no banco de dados do workflow e, manualmente, abrir os arquivos de dados de domínio a serem analisados.

Nesse sentido, foi desenvolvido um novo workflow científico, SciPhyTreeMiner, como extensão do SciPhy (Figura 8), a fim de auxiliar a análise dos resultados de um experimento científico de análise filogenética, de forma a permitir que o cientista possa consultar e comparar os dados de domínio diretamente pelo banco de dados do workflow. Para isso, foram desenvolvidas duas atividades descritas nas seções 4.1 e 4.2: representação de árvores em formato tabular, a fim de permitir a consulta por meio de SQL à topologia da árvore filogenética, e mineração de árvores, a fim de retornar topologias frequentes evitando a comparação par a par entre árvores filogenéticas.

SciPhy

Representação de

Árvores

Mineração de

Árvores

(37)

24 O workflow SciPhyTreeMiner (Figura 9) foi formulado de forma a permitir que o cientista analise dados de domínio gerados tanto de entradas distintas quanto de programas de construção de árvores filogenéticas diferentes (e.g. RAxML e PhyML). Nesse sentido, além das atividades de mineração e representação, foi necessária a adição de duas atividades auxiliares: merge, que é responsável por unir dados das diferentes atividades de construção de árvores filogenéticas, e evoreduce, que é responsável por unir as árvores provenientes de todas as entradas em uma única entrada para o processo de mineração.

Assim, as árvores filogenéticas de diferentes programas de construção de árvores são concatenadas para cada entrada pela atividade (7), representadas pela atividade (8) e concatenadas totalmente pela atividade (9). Em seguida, a atividade (10) é responsável pela mineração e a atividade (11) pela representação das subárvores frequentes obtidas na atividade (10). (1) Seleção de Dados de Entrada dataselection (2) MAFFT mafft (3) Conversão de Formato de Dado readseq (4) ModelGenerator modelgenerator (5) RAxML raxml (6) PhyML phyml (7) Merge SQL merge (8) Representação treeparser (9) Reduce evoreduce (10) Mineração evominer_multiple (11) Representação evotreeparser

Figura 9 – Diagrama de Atividades do SciPhyTreeMiner: SciPhy com Representação e Mineração de Árvores

(38)

25 A atividade (9) evoreduce tem como finalidade concatenar as múltiplas entradas em uma única entrada de forma que possa ser repassada à atividade de mineração. Essa atividade é dispensável na medida em que a operação de reduce pode ser realizada diretamente na atividade de mineração. No entanto, para melhor organização dos dados, foi inserida a atividade auxiliar evoreduce que, além de reduzir as entradas, gera um novo nome de identificação da entrada, conforme a Figura 10.

As atividades do SciPhyTreeMiner estão listadas na Tabela 1, bem como seus nomes de identificação e suas relações de entrada e saída. Uma atividade adicional em relação à Figura 9 é a atividade addDummyEwkfid que consiste em copiar a coluna de identificação da execução do workflow para que seja utilizada como operando na atividade (9) de forma que todas as tuplas referentes à mesma execução sejam entradas da atividade (10).

Tabela 1 – Atividades e Relações do Workflow SciPhyTreeMiner Atividade Identificação Relação de

Entrada

Relação de Saída

(1) Seleção de Dados dataselection idataselection odataselection

(2) MAFFT mafft imafft omafft

(3) Adaptação de

Formato readseq ireadseq oreadseq

(4) Seleção de Modelos

Ótimos modelgenerator imodelgenerator omodelgenerator (5) Construção de Árvores

com RAxML raxml iraxml oraxml

(6) Construção de Árvores

com PhyML phyml iphyml ophyml

ENTRADA-1 ⋮ ENTRADA-N

ENTRADA-1_ENTRADA-N_N

(39)

26 (7) Agrupamento de Relações merge iphytree_raxml iphytree_phyml omerge (8) Representação de

Árvores treeparser itreeparser otreeparser

Clonagem de ID de

Execução addDummyEwkfid idummy_ewkfid odummy_ewkfid

(9) União de Entradas

Reduce evoreduce ievoreduce oevoreduce

(10) Mineração de

Árvores evominer_multiple ievominer oevominer

(11) Representação de

FSTs evotreeparser ievotreeparser oevotreeparser

4.1. Representação de Árvores Filogenéticas em Tabelas

A primeira extensão realizada no SciPhy consiste na adição de uma atividade que permita a consulta às topologias das árvores através do banco de dados do workflow, atividade (8) da Figura 9. Uma vez que o workflow se utiliza de banco de dados relacionais, a atividade deve, então, converter a árvore filogenética para um formato tabular.

Tendo em vista que uma árvore é um tipo particular de grafo (Cormen 2009), podemos utilizar representação de grafos para representar árvores filogenéticas. Assim, uma árvore filogenética pode ser representada por uma tabela de adjacência (Cormen 2009) adaptada, em que cada linha representa um nó da árvore contendo informações como taxonomia, identificação de nó e identificação de nó pai, como exemplificado pela tabela e figura abaixo.

Tabela 2 – Tabela de Adjacência de Árvore

Taxonomia ID_Nó ID_Pai

* 0 * Azul 1 0 * 2 0 Vermelho 3 2 Amarelo 4 2 * = sem valor Figura 11 – Árvore Exemplo para Tabela de

(40)

27 A fim de se aproveitar o SciCumulus, a extensão para representação dos dados de domínio se dará como uma atividade adicional ao workflow SciPhy. A atividade adicional, então, é responsável por reescrever os dados de domínio em forma tabular e por fornecer ao SciCumulus um extrator que permita a leitura e escrita dessas tabelas no banco de dados.

Embora essa adaptação pudesse ser realizada como o desenvolvimento de um novo extrator da atividade de construção de árvores, a adição de uma nova atividade permite que a representação seja feita em uma única atividade quando utilizado vários métodos de construção de árvores (Figura 9). Assim, é gerada apenas uma tabela contendo todos os dados de domínio de construção de árvores, facilitando as consultas SQL aos dados de domínio. Essa configuração permite, também, que o registro de outros dados resultantes da atividade de construção de árvores, como valores de parâmetros ou dados numéricos, sejam mantidos como registros da execução da atividade, uma vez que cada atividade ocupa uma tabela relacional no banco de dados.

A atividade treeparser, então, é responsável por traduzir o formato Newick das árvores filogenéticas em um formato tabular como o descrito nesta seção. O formato tabular é, então, registrado no banco de dados por meio de um extrator, fazendo com que a tabela referente a essa atividade seja uma tabela de adjacência de árvores, como na Tabela 3.

Tabela 3 – Tabela de Registro de Árvores Filogenéticas em Banco de Dados

ID tree_reference taxon_name node_id parent_id

0 Tree_1 None 0 None

1 Tree_1 Taxon_1 1 0

2 Tree_1 None 2 0

3 Tree_1 Taxon_2 3 2

(41)

28

5 Tree_2 None 0 None

6 Tree_2 Taxon_2 1 0 7 Tree_2 None 2 0 8 Tree_2 Taxon_3 3 2 9 Tree_2 None 4 2 10 Tree_2 Taxon_1 5 4 11 Tree_2 Taxon_4 6 4

A primeira coluna, tree_reference, guarda o nome da árvore filogenética convertida para o formato tabular. É necessário carregar a referência da árvore uma vez que a execução do workflow científico para várias entradas resulta na representação de várias árvores filogenéticas.

As demais colunas (i.e. taxon_name, node_id e parente_id) dizem respeito às colunas da Tabela 1, descrita no início desse capítulo. A taxonomia é necessária para manter o acesso à filogenia da árvore, e as identificações de nó e nó pai são necessárias para consulta das relações entre nós. O campo taxon_name de um nó interno recebe o valor None por se tratar de um nó sem taxonomia.

Essa atividade, então, permite que o cientista realize consultas SQL a respeito das topologias representadas na tabela. Na Tabela 3, por exemplo, pode-se consultar irmãos de Taxon_2 na árvore Tree_1 selecionando ocorrências que possuam parente_id igual ao parente_id de Taxon_2 e que tenham tree_reference igual a Tree_1. Maiores detalhes a respeito de consultas SQL a serem realizadas sobre esse tipo de tabela são apresentados no capítulo 5, onde é realizada uma análise experimental do SciPhyTreeMiner.

Em relação à implementação, foi utilizado Python 2.7 e Dendropy v4.0 (Sukumaran e Holder 2010) para o programa a ser executado na atividade (8). Essa, por sua vez, foi adicionada ao XML do workflow no SciCumulus com suas especificações. Trata-se de uma atividade do tipo SplitMap (E. S. Ogasawara et al. 2011), uma vez que para cada entrada de dado do workflow, são necessárias várias entradas na tabela do banco de dados,

(42)

29 onde cada uma representa um nó de cada árvore filogenética de entrada. Assim, o resultado é semelhante à Tabela 3 já descrita.

4.2. Mineração de Árvores Filogenéticas

A segunda extensão realizada no SciPhy consiste na adição de um conjunto de atividades que permita ao cientista a consulta a topologias frequentes no conjunto de árvores filogenéticas proveniente das atividades de construção de árvores filogenéticas. Assim, para retornar topologias frequentes, este projeto utiliza o algoritmo EvoMiner proposto por Deepak et al. (2014) que utiliza a ideia construtiva de subárvores frequentes, bem como a ideia de fingerprint proposto por Karp e Rabin (1987), conforme descrito no capítulo 2.

Para este projeto, o algoritmo EvoMiner foi implementado utilizando Python 2.7 e Dendropy v4.0 (Sukumaran e Holder 2010). É esperado como entrada, um arquivo contendo os destinos das árvores a serem mineradas, bem como seus nomes de referência. As árvores filogenéticas de entrada, então, são forçadas a serem enraizadas. A forma como a raíz é defnida é diretamente influenciada pela forma como a árvore está escrita no formato Newick. Dessa forma, todas as árvores são inseridas ao processo de mineração como árvores enraizadas a fim de manter as garantias feitas por Deepak et al. (2014).

O algoritmo inicia o processo iterativo e construtivo a partir de subárvores frequentes de três folhas computadas por força bruta em um passo inicial. As subárvores frequentes subsequentes são, então, computadas seguindo os passos do algoritmo já descrito. O programa retorna, então, dois arquivos contendo subárvores frequentes: um contendo todas as subárvores frequentes obtidas separadas por número de folhas e outro contendo somente as subárvores frequentes com o número máximo de folhas alcançado pelo algoritmo.

(43)

30 Dessa forma, a saída da atividade (10), evominer_multiple, também pode ser utilizada como entrada para o algoritmo de representação de árvores filogenéticas descrito anteriormente, auxiliando a visualização das subárvores frequentes obtidas. A atividade de representação, no entanto, precisa ser adaptada para suportar a coluna da tabela referente à frequência das árvores, resultando em uma nova atividade (11) evotreeparser (Figura 9).

(44)

31

5. Análise Experimental do SciPhyTreeMiner

O primeiro cenário experimental a ser descrito consiste em duas execuções do workflow SciPhyTreeMiner realizadas em apenas uma máquina local para dois conjuntos distintos de entradas contendo duas entradas distintas cada. Assim, é possível avaliar o comportamento do workflow para múltiplas entradas e múltiplas execuções. A Tabela 4 resume o cenário inicial da análise experimental do workflow proposto SciPhyTreeMiner.

Tabela 4 – Cenário Experimental

A análise do workflow consiste em consultas SQL à base de dados de proveniência do SciCumulus referentes ao workflow SciPhyTreeMiner. Essas consultas podem ser classificadas em: (i) consultas de desempenho (e.g. tempo de execução do workflow e suas atividades), (ii) consultas de monitoramento (e.g. da execução runtime das atividades do workflow), e (iii) consultas analíticas, referentes aos dados de domínio. Cabe mencionar que este projeto tem foco nas consultas relacionadas às atividades (8) e (10), bem como aos dados de domínio. Nesse caso, as consultas aos dados de domínio serão feitas sobre os dados referentes às atividades (8) e (10).

5.1. Consultas de Atividades

O workflow SciPhyTreeMiner possui algumas atividades adicionais em relação ao SciPhy, o que torna interessante a análise da execução dessas atividades a fim de verificar o impacto de sua adição na performance do workflow científico.

Workflow SciPhyTreeMiner

Tag do Workflow Tag de Execução Nº de Entradas Nome das Entradas

sciphytreeminer wftreeminer_1-1 2 ORTHOMCL337

ORTHOMCL358

sciphytreeminer wftreeminer_1-2 2 ORTHOMCL256

(45)

32 As consultas a seguir utilizam as tabelas de registro de dados de execução eworkflow e eactivity a fim de retornar o tempo de execução de cada atividade. São tabelas que contém informações referentes à execuções de cada atividade e do workflow como um todo. São utilizados, principalmente, os campos ewkfid e wkfid, que corresponde à identificação de cada execução do workflow nas tabelas eworkflow e eactivity respectivamente, e os campos tag e tagexec da tabela eworkflow que correspondem aos nomes do workflow e de cada execução do workflow respectivamente.

Consulta SQL 1 e Consulta SQL 2 descrevem o código em SQL correspondente a essa consulta, em que cada consulta retorna o tempo das atividades de cada execução do workflow: wftreeminer_1-1 e wftreeminer_1-2. Figura 12 e Figura 13 contém os resultados das consultas abaixo.

Consulta SQL 1 – Retorna Tempo de Execução das Atividades da Execução wftreeminer_1-1 do SciPhyTreeMiner

SELECT act.tag, ewf.tagexec,

EXTRACT ('epoch' FROM(act.endtime-act.starttime)) AS duration

FROM eworkflow ewf, eactivity act WHERE ewf.ewkfid = act.wkfid

AND ewf.tag = 'sciphytreeminer'

AND ewf.tagexec = 'wftreeminer_1-2'

ORDER BY duration

SELECT act.tag, ewf.tagexec,

EXTRACT ('epoch' FROM(act.endtime-act.starttime)) AS duration

FROM eworkflow ewf, eactivity act WHERE ewf.ewkfid = act.wkfid

AND ewf.tag = 'sciphytreeminer'

AND ewf.tagexec = 'wftreeminer_1-1'

ORDER BY duration

Consulta SQL 2 – Retorna Tempo de Execução das Atividades da Execução wftreeminer_1-2 do SciPhyTreeMiner

(46)

33 As consultas acima permitem verificar que a atividade que mais demanda tempo é a atividade de seleção de modelos ótimos representada pela atividade modelgenerator. As atividades adicionais evominer_multiple, treeparser, evoreduce, evotreeparser e addDummyEwkfid possuem tempo de execução visivelmente menor que a atividade

Figura 12 - Resultados da Consulta SQL 1: Tempo de Execução de Atividades de wftreeminer_1-1

Figura 13 – Resultados da Consulta SQL 2: Tempo de Execução de Atividades de wftreeminer_1-2

(47)

34 modelgenerator para esse cenário. A atividade adicional que mais consome tempo é a atividade referente à mineração dos dados de domínio: evominer_multiple. As atividades de representação de árvores filogenéticas treeparser e evotreeparser possuem, para esse caso, pouca influência no tempo total de execução do workflow.

5.2. Consultas de Representação de Árvores Filogenéticas

A atividade de representação de árvores filogenéticas foi inserida no workflow a fim de permitir que o cientista possa consultar a estrutura das árvores inferidas utilizando consultas SQL à base de dados que armazena os dados de domínio dos workflows científicos. Assim, foram elaboradas algumas consultas a serem realizadas nos dados gerados a partir da atividade de representação das árvores filogenéticas inferidas pelos programas RAxML e PhyML durante as execuções do workflow SciPhyTreeMiner.

A Consulta SQL 3 retorna todos os ancestrais de uma folha específica dentro de uma árvore especificada. No caso, a consulta retorna todos os nós ancestrais da folha de taxonomia 8 na árvore proveniente da construção de árvores com o programa RAxML a partir da entrada ORTHOMCL320. A Figura 14 contém os resultados.

Consulta SQL 3 – Retorna Nós Ancestrais da Espécie 8 na Árvore Inferida pelo RAxML

WITH RECURSIVE qr AS (

SELECT eTable.tree_reference, eTable.taxon_name,

eTable.node_id, eTable.parent_id

FROM sciphytreeminer.otreeparser AS eTable

WHERE eTable.tree_reference LIKE '%ORTHOMCL320%RAxML'

AND eTable.taxon_name = '8'

UNION ALL

SELECT eTable.tree_reference, eTable.taxon_name,

eTable.node_id, eTable.parent_id

FROM sciphytreeminer.otreeparser AS eTable JOIN qr ON qr.parent_id = eTable.node_id AND qr.tree_reference = eTable.tree_reference)

(48)

35 A Consulta SQL 3 pode ser variada de forma a obter os ancestrais da mesma espécie em mais árvores. O percurso utilizado para construir a representação treeparser foi um percurso em nível, de forma que o campo parente_id tem sempre valor menor que o campo node_id. A forma como a árvore é percorrida influencia apenas no valor de identificação dos nós, mas a relação entre eles é mantida. Assim, a árvore pode ser facilmente reconstruída.

No contexto de ancestralidade, é comum o cientista ter interesse em consultar nós ancestrais comuns entre duas ou mais espécies na árvore filogenética. A Consulta SQL 4 retorna ancestrais comuns às espécies 2 e 6 na árvore inferida pelo PhyML a partir da entrada ORTHOMCL337. A Figura 16 mostra os resultados que podem ser verificados através da árvore representada na Figura 15, em que os ancestrais comuns estão marcados por um círculo preto.

Figura 14 – Resultados da Consulta SQL 3: Nós Ancestrais de uma Folha

id 1

id 4

Figura 15 - Árvore Filogenética Construída pelo PhyML para a Entrada ORTHOMCL337

Referências

Documentos relacionados

A baixa taxa de desconto ao longo dos anos de produção do campo, para o cálculo da função objetivo, aliada a baixa produção de água que a locação de

 A alocação dinâmica é muito utilizada em problemas de estrutura de dados como por exemplo, listas encadeadas, pilhas, filas, arvores binárias e grafos ...  O interessante

A presença do brometo na composição química das zeólitas modificadas também foi detectada;  O processo de adsorção do surfactante sobre a superfície do material zeolítico

A rede de teste 118 IEEE representada na figura 4.3 foi a rede que serviu de base para a aplicação da metodologia descrita e para os estudos de Data Mining apresentados nos

A interação treinamento de natação aeróbico e dieta rica em carboidratos simples mostraram que só treinamento não é totalmente eficiente para manter abundância de

Estes resultados apontam para melhor capacidade de estabelecimento inicial do siratro, apresentando maior velocidade de emergência e percentual de cobertura do solo até os 60

Entendendo, então, como posto acima, propõe-se, com este trabalho, primeiramente estudar a Lei de Busca e Apreensão para dá-la a conhecer da melhor forma, fazendo o mesmo com o

A variação do pH da fase móvel, utilizando uma coluna C8 e o fluxo de 1,2 mL/min, permitiu o ajuste do tempo de retenção do lupeol em aproximadamente 6,2 minutos contribuindo para