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

Propaganda
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
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
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.
iii
Aos meus pais e ao meu irmão,
por todo amor e apoio.
iv
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.
A todos, muito obrigada.
v
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.
vi
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.
Keywords: Scientific Workflows, Domain Data, Phylogenetic Analyses, Data Mining.
vii
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
Referências Bibliográficas .............................................................................................. 49
viii
Í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
ix
Í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
Tabela 4 – Cenário Experimental ................................................................................... 31
x
Í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
xi
Í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
Frequência de cada Execução ......................................................................................... 40
xii
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
XML – Extensible Markup Language
xiii
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
1
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).
2
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, é
3
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.
4
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.
5
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).
6
Composição
Concepção
Reuso
Dados de
Proveniência
Consulta
Distribuição
Visualização
Monitoramento
Análise
Execução
Figura 1 – Ciclo de vida de um experimento científico. Adaptado de Mattoso et al.
(2010)
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
7
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
8
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.
9
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.
10
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
11
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).
12
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).
13
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.
14
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).
(a) Árvores de entrada
(b) MAST
(c) FSTs
Figura 2 – Motivação para uso de FST no lugar de MAST. Adaptado de
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.
15
Figura 3 – Tipos de União entre Árvores de mesma Classe Equivalente. Retirado
de Deepak et al. (2014)
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
16
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.
1
2 3
4
DD1UD2UUDD3UD4UU
Figura 4 – Percurso Euler. D e U para
descida e subida na árvore.
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.
17
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.
1
2
4
𝐹𝑝 𝐷𝐷1𝑈𝐷2𝑈𝑈𝐷4𝑈
= 𝐹𝑝 𝐷𝐷1𝑈𝐷2𝑈𝑈𝐷𝐷3𝑈𝐷4𝑈
− 𝐹𝑝 𝐷𝐷1𝑈𝐷2𝑈𝑈𝐷𝐷3𝑈 × 2𝑙𝑒𝑛
+ 𝐹𝑝 𝐷𝐷1𝑈𝐷2𝑈𝑈 × 2𝑙𝑒𝑛
𝐷4𝑈
𝐷4𝑈
Figura 5 – Aplicação de Cálculo de fingerprint (Karp e
Rabin 1987) a Árvores
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
18

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.
19
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
(4) Seleção de Modelo Ótimo –
ModelGenerator
modelgenerator
(3) Adaptação de Formato de Dado
readseq
(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.
20
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.
Figura 7 – Especificação de uma Atividade no XML do workflow
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,
21
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.
22
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.
Representação de
Árvores
SciPhy
Mineração de
Árvores
Figura 8 – SciPhyTreeMiner: Extensão do SciPhy
23
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
(6) PhyML
phyml
(8) Representação
treeparser
(7) Merge SQL
merge
(2) MAFFT
mafft
(9) Reduce
evoreduce
(3) Conversão de
Formato de Dado
readseq
(4) ModelGenerator
modelgenerator
(10) Mineração
evominer_multiple
(5) RAxML
raxml
(11) Representação
evotreeparser
Figura 9 – Diagrama de Atividades do SciPhyTreeMiner: SciPhy com
Representação e Mineração de Árvores
24
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.
ENTRADA-1
ENTRADA1_ENTRADA-N_N
⋮
ENTRADA-N
Figura 10 – Redução do Nome da Entrada
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
dataselection
mafft
Relação de
Entrada
idataselection
imafft
Relação de
Saída
odataselection
omafft
readseq
ireadseq
oreadseq
Atividade
Identificação
(1) Seleção de Dados
(2) MAFFT
(3) Adaptação de
Formato
(4) Seleção de Modelos
Ótimos
(5) Construção de Árvores
com RAxML
(6) Construção de Árvores
com PhyML
modelgenerator
imodelgenerator omodelgenerator
raxml
iraxml
oraxml
phyml
iphyml
ophyml
25
(7) Agrupamento de
Relações
(8) Representação de
Árvores
Clonagem de ID de
Execução
(9) União de Entradas
Reduce
(10) Mineração de
Árvores
(11) Representação de
FSTs
merge
iphytree_raxml
iphytree_phyml
omerge
treeparser
itreeparser
otreeparser
addDummyEwkfid
idummy_ewkfid
odummy_ewkfid
evoreduce
ievoreduce
oevoreduce
evominer_multiple
ievominer
oevominer
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
*
Azul
*
Vermelho
Amarelo
ID_Nó
0
1
2
3
4
* = sem valor
ID_Pai
*
0
0
2
2
Figura 11 – Árvore
Exemplo para Tabela de
Adjacência (Tabela 1)
26
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
0
1
2
3
4
tree_reference
Tree_1
Tree_1
Tree_1
Tree_1
Tree_1
taxon_name
None
Taxon_1
None
Taxon_2
Taxon_3
node_id
0
1
2
3
4
parent_id
None
0
0
2
2
27
5
6
7
8
9
10
11
Tree_2
Tree_2
Tree_2
Tree_2
Tree_2
Tree_2
Tree_2
None
Taxon_2
None
Taxon_3
None
Taxon_1
Taxon_4
0
1
2
3
4
5
6
None
0
0
2
2
4
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,
28
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.
29
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).
30
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
Tag do Workflow
Workflow SciPhyTreeMiner
Tag de Execução
Nº de Entradas
sciphytreeminer
wftreeminer_1-1
2
sciphytreeminer
wftreeminer_1-2
2
Nome das Entradas
ORTHOMCL337
ORTHOMCL358
ORTHOMCL256
ORTHOMCL320
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.
31
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.
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 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
Consulta SQL 2 – Retorna Tempo de Execução das Atividades da
Execução wftreeminer_1-2 do SciPhyTreeMiner
32
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
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
33
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.
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)
SELECT * FROM qr
Consulta SQL 3 – Retorna Nós Ancestrais da Espécie 8 na Árvore Inferida
pelo RAxML
34
Figura 14 – Resultados da Consulta SQL 3: Nós Ancestrais de uma Folha
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.
id 1
id 4
Figura 15 - Árvore Filogenética Construída pelo PhyML para a
Entrada ORTHOMCL337
35
SELECT X.tree_reference, X.node_id
FROM (WITH RECURSIVE qr AS (
SELECT t.tree_reference, t.taxon_name,
t.node_id, t.parent_id
FROM sciphytreeminer.otreeparser AS t
WHERE t.tree_reference LIKE
'%ORTHOMCL337%phyml%'
AND t.taxon_name = '2'
UNION ALL
SELECT t.tree_reference, t.taxon_name,
t.node_id, t.parent_id
FROM sciphytreeminer.otreeparser AS t
JOIN qr ON qr.parent_id = t.node_id
AND qr.tree_reference = t.tree_reference)
SELECT * FROM qr) X
WHERE X.node_id IN (SELECT node_id
FROM (WITH RECURSIVE q AS (
SELECT t.tree_reference, t.taxon_name,
t.node_id, t.parent_id
FROM sciphytreeminer.otreeparser AS t
WHERE t.tree_reference LIKE
'%ORTHOMCL337%phyml%'
AND t.taxon_name = '6'
UNION ALL
SELECT t.tree_reference, t.taxon_name,
t.node_id, t.parent_id
FROM sciphytreeminer.otreeparser AS t
JOIN q ON q.parent_id = t.node_id
AND q.tree_reference = t.tree_reference)
SELECT * FROM q) AS X)
Consulta SQL 4 – Retorna Nós Ancestrais Comuns às Espécies 6 e 2 na
Árvore Inferida pelo PhyML a partir da Entrada ORTHOMCL337
Figura 16 – Resultados da Consulta SQL 4: Nós Ancestrais Comuns a duas
Espécies
Outra consulta de interesse a ser feita sobre uma árvore filogenética é o tamanho do
caminho entre duas espécies na árvore. Essa consulta poderia ser realizada utilizando a
Consulta SQL 4 como ponto de partida. Nesse caso, basta contar as entradas retornadas
36
pela Consulta SQL 3 a partir do menor ancestral comum obtido pela Consulta SQL 4, que
poderia ser obtido restringindo a consulta à primeira entrada encontrada. Identificando
esse resultado como 𝐿𝐶𝐴 2,6 , a Consulta SQL 5 mostra o código necessário para a
obtenção do tamanho do caminho entre as espécies 2 e 6. O resultado da consulta, no
caso, é de 3.
WITH RECURSIVE q AS (
SELECT t. tree_reference, t.node_id, t.parent_id
FROM sciphytreeminer.otreeparser AS t
WHERE t.tree_reference LIKE '%ORTHOMCL337%phyml%'
AND t.node_id = LCA(2,6)
UNION ALL
SELECT t.tree_reference, t.node_id, t.parent_id
FROM sciphytreeminer.otreeparser AS t
JOIN q ON q.node_id = t.parent_id
AND q.tree_reference = t.tree_reference
AND q.node_id IN (SELECT s.node_id
FROM (WITH RECURSIVE qr AS (
SELECT t.tree_reference, t.node_id,
t.parend_id
FROM sciphytreeminer.otreeparser AS t
WHERE t.tree_reference LIKE
'%ORTHOMCL337%phyml%'
AND t.taxon_name = '6'
UNION ALL
SELECT t.tree_reference, t.node_id,
t.parent_id
FROM sciphytreeminer.otreeparser AS t
JOIN qr ON qr.parent_id = t.node_id
AND qr.tree_reference =
t.tree_reference)
SELECT * FROM qr) AS s))
SELECT COUNT(*) FROM q
Consulta SQL 5 – Retorna Tamanho do Caminho entre as Espécies 6 e 2 na
Árvore Inferida pelo PhyML a partir de ORTHOMCL337
A atividade de representação de árvores filogenéticas, portanto, permite ao cientista
consultar toda a estrutura das árvores utilizando consultas à base de dados direcionadas
para o tipo de informação desejada. Dessa forma, o cientista não mais precisa acessar
37
diretamente o sistema de arquivos do experimento e obtém as informações de forma mais
prática e limpa.
5.3. Consultas de Mineração de Árvores Filogenéticas
A atividade de mineração de árvores retorna um conjunto de subárvores frequentes
que podem ser armazenas e consultadas através da atividade de representação. Dessa
forma, as consultas referentes à topologia das subárvores frequentes se assemelham às
consultas realizadas e propostas na seção 5.2.
A execução dessa atividade gera dois arquivos, que podem ser adaptados como
entrada para a atividade de representação. Por conveniência, apenas a saída contendo as
maiores subárvores frequentes foram extraídas para o banco de dados. A tabela resultante
é semelhante à retornada pela atividade treeparser e é identificada como evotreeparser
para se referir à representação das árvores filogenéticas provenientes da mineração de
árvores.
Para análise, foi considerado o valor de frequência mínima como sendo 0,5, de forma
que as maiores subárvores frequentes não são iguais às árvores filogenéticas de entrada.
Assim, além das consultas realizadas na seção 5.2, o cientista pode ter interesse em saber
quantas subárvores frequentes maximais foram obtidas. A Consulta SQL 6, portanto,
retorna quantas subárvores frequentes maximais há na tabela por execução e a Consulta
SQL 7 retorna o tamanho em folhas das subárvores maximais. Figura 17 e Figura 18
contêm os resultados dessas consultas.
38
SELECT ewf.tagexec, evocount.maximum_fsts
FROM (SELECT ev.ewkfid, COUNT(*) AS maximum_fsts
FROM (SELECT DISTINCT evo.ewkfid,
evo.tree_reference
FROM schiphytreeminer.oevotreeparser AS
evo) AS ev
GROUP BY ev.ewkfid) AS evocount
INNER JOIN eworkflow AS ewf
ON ewf.ewkfid = evocount.ewkfid
Consulta SQL 6 – Retorna Número de Subárvores Frequentes
Maximais em cada Execução
Figura 17 - Resultados da Consulta SQL 6:
Número de FSTs Maximais em Cada Execução
SELECT ewf.tagexec, evocount.tree_reference,
evocount.n_leaves
FROM (SELECT ewf.ewkfid, tree.tree_reference,
tree.n_leaves
FROM (SELECT evo.tree_reference,
COUNT(evo.taxon_name) AS n_leaves
FROM sciphytreeminer.oevotreeparser AS evo
WHERE evo.taxon_name != 'None'
GROUP BY evo.tree_reference) AS tree
INNER JOIN (SELECT DISTINCT evo.ewkfid,
evo.tree_reference
FROM sciphytreeminer.oevotreeparser
AS evo) AS ewf
ON ewf.tree_reference = tree.reference) AS evocount
INNER JOIN eworkflow AS ewf
ON ewf.ewkfid = evocount.ewkfid
Consulta SQL 7 – Retorna o Número de Folhas nas Subárvores Maximais de
cada Execução
39
Figura 18 – Resultados da Consulta SQL 7: Número de Folhas
das FSTs Maximais de cada Execução
Além das consultas relacionadas à quantidade de subárvores frequentes maximais e
o tamanho delas, é possível, também, realizar consultas relacionadas à frequência de cada
subárvore frequente maximal. A Consulta SQL 8 retorna os nomes de referência das
subárvores frequentes maximais de maior frequência. A Figura 19 contém os resultados
e mostra que, nesse cenário experimental, as maiores subárvores frequentes com
frequência mínima de 0,5 possuem frequência igual à mínima tolerada.
SELECT ewf.tagexec, evocount.tree_reference,
evocount.n_leaves
FROM (SELECT ewf.ewkfid, tree.tree_reference,
tree.n_leaves
FROM (SELECT DISTINCT evo.tree_reference,
evo.frequency
FROM sciphytreeminer.oevotreeparser AS evo
INNER JOIN (SELECT mevo.tree_reference,
MAX(mevo.frequency)
FROM
sciphytreeminer.oevotreeparser AS mevo
GROUP BY mevo.tree_reference)
AS maxevo
ON evo.frequency = maxevo.frequency) AS tree
INNER JOIN (SELECT DISTINCT evo.ewkfid,
evo.tree_reference
FROM sciphytreeminer.oevotreeparser
AS evo) AS ewf
ON ewf.tree_reference = tree.reference) AS evocount
INNER JOIN eworkflow AS ewf
ON ewf.ewkfid = evocount.ewkfid
Consulta SQL 8 – Retorna Nome de Referência das FSTs Maximais de
Máxima Frequência de cada Execução
40
Figura 19 – Resultados da Consulta SQL 8: FSTs Maximais de Máxima
Frequência de cada Execução
O quão rígido é o valor de frequência mínima depende das entradas do workflow,
bem como do número de entradas. As árvores filogenéticas inferidas nas execuções
possuem 10 espécies, de forma que subárvores frequentes maximais de 7 folhas em 50%
das árvores inferidas pode resultar em maior confiança sobre a inferência dessas relações.
É provável que essa ocorrência de subárvores frequentes em 50% esteja relacionada às
árvores inferidas a partir da mesma entrada e por programas de construção de árvores
diferentes, uma vez que se espera que os programas de construção de árvores retornem,
para uma mesma entrada, árvores filogenéticas similares. Entretanto, são conclusões a
respeito dos dados de domíno que devem ser realizadas por parte dos cientistas.
É possível realizar as consultas 6, 7, 8 a partir das subárvores frequentes e detectar
ancestrais comuns ou caminhos mais frequentes na coleção de árvores de entrada. A
combinação das duas atividades de mineração e representação, portanto, permite uma
análise direta das relações evolutivas mais recorrentes entre as árvores filogenéticas
estudadas, sem que seja feita a análise comparativa manual entre as árvores inferidas.
Dessa forma, para um caso de múltiplas entradas, ter acesso a relações recorrentes
simplifica a análise dos dados de domínio, bem como permite a detecção de informações
inalcançáveis manualmente.
41
6. Avaliação de Desempenho do Workflow SciPhyTreeMiner
Workflows científicos, muitas vezes, são utilizados no processamento de um grande
volume de dados. É essencial, portanto, verificar o comportamento do workflow proposto
neste projeto à medida em que se aumenta o número de entradas. Para essa análise, foram
realizadas 4 execuções do workflow SciPhyTreeMiner utilizando 2 núcleos em uma
máquina virtual com processador Intel Core i7-3537U 2GHz, 4GB de memória RAM,
60GB de disco e sistema operacional Ubuntu 64-bit, em que as quantidades de dados de
entrada foram 10, 20, 50 e 100.
O Gráfico 1 apresenta os tempos de execução do workflow para cada conjunto de
entrada. Na janela proposta para o tamanho do conjunto de entrada, o workflow possui
uma tendência linear no tempo de execução em relação ao número de entradas. É visível,
portanto, que o SciPhyTreeMiner é um workflow sensível ao tamanho da entrada.
Tempo Total de Execução do Workflow (2 núcleos)
80
73,245
70
Tempo (h)
60
50
40
37,42586222
30
20
17,3489425
10
7,436668611
0
0
20
40
60
80
100
120
Número de Entradas do Workflow
Gráfico 1 – Tempo Total de Execução do SciPhyTreeMiner
42
No entanto, para avaliar o nível de contribuição deste projeto, é necessário avaliar o
desempenho das atividades propostas em relação às atividades já presentes no SciPhy. As
atividades auxiliares que dizem respeito a operações SQL consomem relativamente pouco
tempo, de forma que a análise é interessante apenas sobre as atividades principais
treeparser, evominer_multiple e evotreeparser.
O Gráfico 2 apresenta o tempo escalado total de execução de cada atividade para
cada conjunto de entrada, em que a tendência linear é mantida. O tempo de execução das
atividades mafft, modelgenerator, raxml, phyml e treeparser é inversamente proporcional
ao número de cores utilizado, uma vez que cada entrada pode ser processada
paralelamente. Entretanto, as atividades evominer_multiple e evotreeparser mantêm o
tempo de execução aproximadamente constante independente do número de núcleos.
Dessa forma, embora a atividade evominer_multiple tenha consumido menor tempo
de execução à medida em que se aumentou o conjunto de entradas, esse tempo não pode
ser melhorado com o aumento do número de núcleos utilizados.
Tempo Total de Execução das Atividades Principais
2
Tempo (log10 h)
1
0
0
20
40
60
80
100
120
-1
-2
-3
-4
Número de Entradas do Workflow
mafft
modelgenerator
raxml
treeparser
evominer_multiple
evotreeparser
phyml
Gráfico 2 – Tempo Total de Execução das Atividades do SciPhyTreeMiner
43
O Gráfico 3 expõe que a atividade evominer_multiple ultrapassa as atividades phyml
e raxml a partir de 50 entradas no workflow quando avaliado o tempo médio de execução.
Vale lembrar que, pela configuração do SciPhyTreeMiner, a atividade evominer_multiple
recebe como entrada sempre o dobro do número de entradas do workflow, uma vez que
recebe N da atividade raxml e N da atividade phyml. Segundo o Gráfico 3, portanto, a
atividade phyml consome, em média, para uma entrada o mesmo tempo que a atividade
evominer_multiple consome para processar 100 entradas.
Tempo Médio de Execução das Atividades Principais Por
Número de Entradas do Workflow
35
Tempo médio (min)
30
25
20
15
10
5
0
0
20
40
60
80
100
120
Número de Entradas do Workflow
mafft
modelgenerator
raxml
treeparser
evominer_multiple
evotreeparser
phyml
Gráfico 3 – Tempo Médio de Execução das Atividades do SciPhyTreeMiner
Dessa forma, o desempenho do workflow proposto é tal que o tempo de execução é
diretamente proporcional ao volume de informação agregada pela sua execução. Isto é,
mesmo que o tempo de execução da atividade evominer_multiple no Gráfico 3 ultrapasse,
em algum momento, o tempo de execução da atividade mais demorada, modelgenerator,
44
haverá sempre ganho de informação a respeito dos dados de domínio. Assim, a vantagem
da utilização da atividade de mineração está na agregação de informação que a atividade
proporciona, não no tempo de execução.
45
7. Conclusão
É comum o uso de workflows científicos em experimentos de análises filogenéticas,
uma vez que se trata de um estudo que requer simulações computacionais custosas por
fazer inferências a partir de um grande número de sequências proteicas. A execução
desses workflows, no entanto, retornam dados crus que sem a análise por parte do cientista
não possuem significado. Dessa forma, os dados de domínio provenientes das execuções
de workflows científicos devem ser estudados manualmente, tornando inviável a análise
no caso em que a quantidade de entradas é grande, pois gera uma grande quantidade de
dados de domínio na saída.
Sob essa motivação, foi implementado um workflow científico que auxiliasse na
análise desses dados de domínio, permitindo que o cientista tenha acesso direto às
relações evolutivas presentes nas árvores filogenéticas como um todo e às relações mais
recorrentes presentes no conjunto de dados de domínio de saída da execução do workflow.
Para isso, foi implementado um conversor de árvores filogenéticas em formato
Newick para um formato tabular, que representa as relações entre cada nó da árvore.
Dessa forma, é possível armazenar as árvores filogenéticas no banco de dados do
worklfow e permitir ao cientista consultas direcionadas a partes específicas da topologia
das árvores filogenéticas. No entanto, é possível perceber que as consultas a essas tabelas
exigem amplo conhecimento de SQL, o que pode ser inviável para cientistas não
familiarizados. Nesse sentido, este projeto pode ser estendido de forma a acoplar à base
de dados do workflow ferramentas que permitam consultas mais simples aos caminhos
presentes nas árvores filogenéticas.
Além disso, foi implementado um algoritmo capaz de listar todas as subárvores
frequentes no conjunto de árvores filogenéticas de saída, de forma a permitir acesso a
46
relações recorrentes entre algumas espécies. Uma análise profunda das subárvores
frequentes por parte do cientista, portanto, pode resultar em informações que a análise
separada das árvores filogenéticas inferidas não é capaz de detectar. Associada à atividade
de representação de árvores filogenéticas em tabelas, a atividade de mineração de árvores
permite ao cientista pontos de vista diferentes a respeito dos dados de domínio.
Cabe lembrar que as atividades de representação e mineração de árvores filogenéticas
são atividades que podem ser desacopladas do workflow científico proposto e acopladas
a outros workflows existentes, uma vez que aceitam como entrada qualquer conjunto de
árvores, desde que passadas da forma descrita neste projeto.
Consultas à base de dados do workflow e análises a respeito de seu desempenho
permitiram verificar que o workflow possui tempo de execução linear em relação ao
número de entradas. Esse tempo pode ser melhorado com o aprimoramento da
infraestrutura computacional, mas possui um limite inferior dependente da atividade de
mineração, uma vez que essa possui apenas uma ativação. Esse limite, no entanto, pode
ser melhorado com a aplicação de técnicas de paralelismo ao algoritmo de mineração.
A atividade de mineração, por sua vez, possui tempo de execução crescente em
relação ao número de entradas, mas ganha valor à medida em que gera informação a
respeito dos dados de filogenia em cenários em que a análise manual é inviável.
Entretanto, a atividade força as árvores de entrada a serem enraizadas, de forma que, se
enraizadas em nós errados, pode retornar falsos resultados. Assim, este projeto também
pode ser estendido permitindo que o cientista escolha o nó raíz ou substituindo o
algoritmo de mineração utilizado por um outro algoritmo que minere árvores tanto
enraizadas quanto não-enraizadas.
Ainda assim, o workflow SciPhyTreeMiner cumpre o objetivo de agregar informação
à fase de análise dos dados de domínio de workflows de filogenia, uma vez que permite
47
realizar consultas a relações evolutivas e verificar relações evolutivas mais recorrentes
dentro de uma coleção de árvores filogenéticas por meio da base de dados do workflow
científico.
48
Referências Bibliográficas
Altintas, I., C. Berkley, E. Jaeger, M. Jones, B. Ludascher, e S. Mock. 2004. “Kepler: an
extensible system for design and execution of scientific workflows.” In , 423–
24. IEEE. doi:10.1109/SSDM.2004.1311241.
Callahan, Steven P., Juliana Freire, Emanuele Santos, Carlos E. Scheidegger, Cláudio T.
Silva, e Huy T. Vo. 2006. “VisTrails: Visualization Meets Data Management.”
In , 745. ACM Press. doi:10.1145/1142473.1142574.
Cardoso, L.F., J.M. de Souza, e C. Marques. 2002. “A collaborative approach to the
reuse of scientific experiments in the Bill of Experiments tool.” In , 296–301.
COPPE/UFRJ. doi:10.1109/CSCWD.2002.1047704.
Cormen, Thomas H., org. 2009. Introduction to algorithms. 3rd ed. Cambridge, Mass:
MIT Press.
Da San Martino, Giovanni, e Alessandro Sperduti. 2010. “Mining Structured Data.”
IEEE Computational Intelligence Magazine 5 (1): 42–49.
doi:10.1109/MCI.2009.935308.
Deelman, Ewa, e Ann Chervenak. 2008. “Data Management Challenges of DataIntensive Scientific Workflows.” In , 687–92. IEEE.
doi:10.1109/CCGRID.2008.24.
Deelman, Ewa, Dennis Gannon, Matthew Shields, e Ian Taylor. 2009. “Workflows and
E-Science: An Overview of Workflow System Features and Capabilities.”
Future Generation Computer Systems 25 (5): 528–40.
doi:10.1016/j.future.2008.06.012.
Deelman, Ewa, Gaurang Mehta, Gurmeet Singh, Mei-Hui Su, e Karan Vahi. 2007.
“Pegasus: Mapping Large-Scale Workflows to Distributed Resources.” In
Workflows for E-Science, organizado por Ian J. Taylor, Ewa Deelman, Dennis
B. Gannon, e Matthew Shields, 376–94. London: Springer London.
http://link.springer.com/10.1007/978-1-84628-757-2_23.
Deepak, Akshay, David Fernández-Baca, Srikanta Tirthapura, Michael J. Sanderson, e
Michelle M. McMahon. 2014. “EvoMiner: Frequent Subtree Mining in
Phylogenetic Databases.” Knowledge and Information Systems 41 (3): 559–90.
doi:10.1007/s10115-013-0676-0.
de Oliveira, Daniel, Kary A.C.S. Ocaña, Eduardo Ogasawara, Jonas Dias, João
Gonçalves, Fernanda Baião, e Marta Mattoso. 2013. “Performance Evaluation of
Parallel Strategies in Public Clouds: A Study with Phylogenomic Workflows.”
Future Generation Computer Systems 29 (7): 1816–25.
doi:10.1016/j.future.2012.12.019.
de Oliveira, Daniel, Eduardo Ogasawara, Fernanda Baião, e Marta Mattoso. 2010.
“SciCumulus: A Lightweight Cloud Middleware to Explore Many Task
Computing Paradigm in Scientific Workflows.” In , 378–85. IEEE.
doi:10.1109/CLOUD.2010.64.
de Oliveira, Daniel, Eduardo Ogasawara, Fernando Seabra, Vítor Silva, Leonardo
Murta, e Marta Mattoso. 2010. “GExpLine: A Tool for Supporting Experiment
Composition.” In Provenance and Annotation of Data and Processes,
organizado por Deborah L. McGuinness, James R. Michaelis, e Luc Moreau,
6378:251–59. Berlin, Heidelberg: Springer Berlin Heidelberg.
http://link.springer.com/10.1007/978-3-642-17819-1_28.
49
de Oliveira, Frederico T., Leonardo Murta, Claudia Werner, e Marta Mattoso. 2008.
“Using Provenance to Improve Workflow Design.” In Provenance and
Annotation of Data and Processes, organizado por Juliana Freire, David Koop, e
Luc Moreau, 5272:136–43. Berlin, Heidelberg: Springer Berlin Heidelberg.
http://link.springer.com/10.1007/978-3-540-89965-5_15.
Felsenstein, Joseph. 2004. Inferring phylogenies. Sunderland, Mass: Sinauer Associates.
Henzinger, Monika R., e Valerie King. 1999. “Randomized fully dynamic graph
algorithms with polylogarithmic time per operation.” Journal of the ACM 46 (4):
502–16. doi:10.1145/320211.320215.
Karp, Richard M., e Michael O. Rabin. 1987. “Efficient randomized pattern-matching
algorithms.” IBM Journal of Research and Development 31 (2): 249–60.
doi:10.1147/rd.312.0249.
Lengauer, Thomas, org. 2001. Bioinformatics– From Genomes to Drugs. Methods and
Principles in Medicinal Chemistry. Weinheim, FRG: Wiley-VCH Verlag GmbH
& Co. KGaA. http://doi.wiley.com/10.1002/3527601481.
Luscombe, N. M., D. Greenbaum, e M. Gerstein. 2001. “What Is Bioinformatics? A
Proposed Definition and Overview of the Field.” Methods of Information in
Medicine 40 (4): 346–58.
Mattoso, Marta, Claudia Werner, Guilherme Horta Travassos, Vanessa Braganholo,
Eduardo Ogasawara, Daniel De Oliveira, Sergio Manuel Serra Da Cruz, Wallace
Martinho, e Leonardo Murta. 2010. “Towards Supporting the Life Cycle of
Large Scale Scientific Experiments.” International Journal of Business Process
Integration and Management 5 (1): 79. doi:10.1504/IJBPIM.2010.033176.
Ocaña, Kary A. C. S., Daniel de Oliveira, Eduardo Ogasawara, Alberto M. R. Dávila,
Alexandre A. B. Lima, e Marta Mattoso. 2011. “SciPhy: A Cloud-Based
Workflow for Phylogenetic Analysis of Drug Targets in Protozoan Genomes.”
In Advances in Bioinformatics and Computational Biology, organizado por
Osmar Norberto de Souza, Guilherme P. Telles, e Mathew Palakal, 6832:66–70.
Berlin, Heidelberg: Springer Berlin Heidelberg.
http://link.springer.com/10.1007/978-3-642-22825-4_9.
Ogasawara, Eduardo, Carlos Paulino, Leonardo Murta, Cláudia Werner, e Marta
Mattoso. 2009. “Experiment Line: Software Reuse in Scientific Workflows.” In
Scientific and Statistical Database Management, organizado por Marianne
Winslett, 5566:264–72. Berlin, Heidelberg: Springer Berlin Heidelberg.
http://link.springer.com/10.1007/978-3-642-02279-1_20.
Ogasawara, Eduardo S., Daniel de Oliveira, Patrick Valduriez, Jonas Dias, Fabio Porto,
e Marta Mattoso. 2011. “An Algebraic Approach for Data-Centric Scientific
Workflows.” PVLDB 4 (12): 1328–39.
Olafsson, Sigurdur, Xiaonan Li, e Shuning Wu. 2008. “Operations Research and Data
Mining.” European Journal of Operational Research 187 (3): 1429–48.
doi:10.1016/j.ejor.2006.09.023.
Oliveira, Daniel, Eduardo Ogasawara, Kary Ocaña, Fernanda Baião, e Marta Mattoso.
2012. “An Adaptive Parallel Execution Strategy for Cloud-Based Scientific
Workflows: ADAPTIVE PARALLEL EXECUTION STRATEGY.”
Concurrency and Computation: Practice and Experience 24 (13): 1531–50.
doi:10.1002/cpe.1880.
Pevsner, Jonathan. 2009. Bioinformatics and functional genomics. 2nd ed. Hoboken,
N.J: Wiley-Blackwell.
50
Stamatakis, A. 2014. “RAxML Version 8: A Tool for Phylogenetic Analysis and PostAnalysis of Large Phylogenies.” Bioinformatics 30 (9): 1312–13.
doi:10.1093/bioinformatics/btu033.
Stevens, Robert, Jun Zhao, e Carole Goble. 2007. “Using Provenance to Manage
Knowledge of in Silico Experiments.” Briefings in Bioinformatics 8 (3): 183–94.
doi:10.1093/bib/bbm015.
Sukumaran, Jeet, e Mark T. Holder. 2010. “DendroPy: A Python Library for
Phylogenetic Computing.” Bioinformatics (Oxford, England) 26 (12): 1569–71.
doi:10.1093/bioinformatics/btq228.
Swenson, Krister M., Eric Chen, Nicholas D. Pattengale, e David Sankoff. 2012. “The
Kernel of Maximum Agreement Subtrees.” IEEE/ACM Transactions on
Computational Biology and Bioinformatics / IEEE, ACM 9 (4): 1023–31.
doi:10.1109/TCBB.2012.11.
Travassos, G. H., e M. O. Barros. 2003. “Contributions of In Virtuo and In Silico
Experiments for the Future of Empirical Studies in Software Engineering.” 2nd
Workshop on Empirical Software Engineering the Future of Empirical Studies
in Software Engineering 117-130.
Zhao, Yong, Mihael Hategan, Ben Clifford, Ian Foster, Gregor von Laszewski,
Veronika Nefedova, Ioan Raicu, Tiberiu Stef-Praun, e Michael Wilde. 2007.
“Swift: Fast, Reliable, Loosely Coupled Parallel Computation.” In , 199–206.
IEEE. doi:10.1109/SERVICES.2007.63.
51
Download