Dissertação

{en_GB=Library of efficient algorithms for phylogenic analysis} {} EVALUATED

{pt=As relações evolucionárias entre diferentes espécies são geralmente inferidas através de análise filogenética, que fornece árvores filogenéticas, que podem ser computadas através de perfis alélicos construídos sequenciando regiões específicas das sequências e abstraíndo-as em índices categóricos. Com o aumento de trocas de pessoas e mercadorias, as epidemias têm-se tornado muito importantes, e combinar informações de datasets específicos por país pode agora revelar padrões de propagação desconhecidos. O fluxo de análise filogenética é composto principalmente por quatro passos consecutivos, o cálculo de distâncias, a correção de distâncias, o algoritmo de inferência, e a otimização local. Existem muitas ferramentas de filogenia, porém muitas implementam apenas alguns destes passos e servem apenas um propósito, por exemplo um tipo de algoritmos. Outro problema é serem muitas vezes difíceis de usar e integrar, porque cada uma tem a sua API. Este projeto resultou numa biblioteca que implementa os quatro passos do fluxo, é eficiente, extensível, reutilizável, e portável, e fornece APIs comuns e documentação. Esta difere das outras no sentido em que, é capaz de parar e resumir o fluxo em qualquer passo, e foi construída para ser continuamente estendida e não servir apenas um propósito. Os benchmarks de tempo conduzidos sobre esta biblioteca mostram que as suas implementações dos algoritmos estão conforme as suas complexidades de tempo teóricas. Os benchmarks de memória demonstram que as implementações dos algoritmos de NJ seguem uma complexidade de memória linear, enquanto que as implementações dos algoritmos de MST e GCP seguem uma complexidade de memória quadrática., en=Evolutionary relationships between species are usually inferred through phylogenetic analysis, which provides phylogenetic trees computed from allelic profiles built by sequencing specific regions of the sequences and abstracting them to categorical indexes. With growing exchanges of people and merchandise, epidemics have become increasingly important, and combining information of country-specific datasets can now reveal unknown spreading patterns. The phylogenetic analysis workflow is mainly composed of four consecutive steps, the distance calculation, distance correction, inference algorithm, and local optimization steps. There are many phylogenetic tools out there, however most implement only some of these steps and serve only one single purpose, such as one type of algorithm. Another problem with these is that they are often hard to use and integrate, since each of them has its own API. This project resulted a library that implements the four steps of the workflow, and is highly performant, extensible, reusable, and portable, while providing common APIs and documentation. It also differs from other tools in the sense that, it is able to stop and resume the workflow whenever the user desires, and it was built to be continuously extended and not just serve a single purpose. The time benchmarks conducted on this library show that its implementations of the algorithms conform to their theoretical time complexity. Meanwhile, the memory benchmarks showcase that the implementations of the NJ algorithms follow a linear memory complexity, while the implementations of the MST and GCP algorithms follow a quadratic memory complexity.}
{pt=filogenia, inferência, algoritmos, árvores, en=phylogeny, inference, algorithms, trees}

janeiro 13, 2021, 16:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

Alexandre Paulo Lourenço Francisco

Departamento de Engenharia Informática (DEI)

Professor Associado

ORIENTADOR

Cátia Raquel Jesus Vaz

ISEL - Instituto Superior De Engenharia De Lisboa

Professor Adjunto