Representações cache eficientes para montagem de fragmentos baseada em grafos de de Bruijn de sequências biológicas

Submitted by Pedro Barros (pedro.silvabarros@ufpe.br) on 2018-08-01T20:18:15Z No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Jamerson Felipe Pereira Lima.pdf: 1541250 bytes, checksum: ccefce36b254aed5273279c3a4600f9f (MD5) === Approved for e...

Full description

Bibliographic Details
Main Author: LIMA, Jamerson Felipe Pereira
Other Authors: http://lattes.cnpq.br/7085832229021609
Language:Portuguese
Published: Universidade Federal de Pernambuco 2018
Subjects:
Online Access:https://repositorio.ufpe.br/handle/123456789/25352
id ndltd-IBICT-oai-repositorio.ufpe.br-123456789-25352
record_format oai_dc
collection NDLTD
language Portuguese
sources NDLTD
topic Ciência da computação
Biologia computacional
spellingShingle Ciência da computação
Biologia computacional
LIMA, Jamerson Felipe Pereira
Representações cache eficientes para montagem de fragmentos baseada em grafos de de Bruijn de sequências biológicas
description Submitted by Pedro Barros (pedro.silvabarros@ufpe.br) on 2018-08-01T20:18:15Z No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Jamerson Felipe Pereira Lima.pdf: 1541250 bytes, checksum: ccefce36b254aed5273279c3a4600f9f (MD5) === Approved for entry into archive by Alice Araujo (alice.caraujo@ufpe.br) on 2018-08-02T20:09:33Z (GMT) No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Jamerson Felipe Pereira Lima.pdf: 1541250 bytes, checksum: ccefce36b254aed5273279c3a4600f9f (MD5) === Made available in DSpace on 2018-08-02T20:09:33Z (GMT). No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Jamerson Felipe Pereira Lima.pdf: 1541250 bytes, checksum: ccefce36b254aed5273279c3a4600f9f (MD5) Previous issue date: 2017-02-20 === FACEPE === O estudo dos genomas dos seres vivos têm sido impulsionado pelos avanços na biotecnologia ocorridos desde a segunda metade do Séc. XX. Particularmente, o desenvolvimento de novas plataformas de sequenciamento de alto desempenho ocasionou a proliferação de dados brutos de fragmentos de sequências nucleicas. Todavia, a montagem dos fragmentos de DNA continua a ser uma das etapas computacionais mais desafiadoras, visto que a abordagem tradicional desse problema envolve a solução de problemas intratáveis sobre grafos obtidos a partir dos fragmentos, como, por exemplo, a determinação de caminhos hamiltonianos. Mais recentemente, soluções baseadas nos grafos de de Bruijn (gdB), também obtidos a partir dos fragmentos sequenciados, têm sido adotadas. Nesse caso, o problema da montagem relaciona-se com o de encontrar caminhos eulerianos, o qual possui soluções polinomiais conhecidas. Embora apresentem custo computacional teórico mais baixo, ainda demandam, na prática, grande poder computacional, face ao volume de dados envolvido. Por exemplo, a representação empregada por algumas ferramentas para o gdB do genoma humano pode alcançar centenas de gigabytes. Faz-se necessário, portanto, o emprego de técnicas algorítmicas para manipulação eficiente de dados em memória interna e externa. Nas arquiteturas computacionais modernas, a memória é organizada de forma hierárquica em camadas: cache, memória RAM, disco, rede, etc. À medida que o nível aumenta, cresce a capacidade de armazenagem, porém também o tempo de acesso. O ideal, portanto, seria manter a informação limitada o mais possível aos níveis inferiores, diminuindo a troca de dados entre níveis adjacentes. Para tal, uma das abordagens são os chamados algoritmos cache-oblivious, que têm por objetivo reduzir o número de trocas de dados entre a memória cache e a memória principal sem que seja necessário para tanto introduzir parâmetros relativos à configuração da memória ou instruções para a movimentação explícita de blocos de memória. Uma outra alternativa que vêm ganhando ímpeto mais recentemente é o emprego de estruturas de dados ditas sucintas, ou seja, estruturas que representam a informação usando uma quantidade ótima de bits do ponto de vista da teoria da informação. Neste trabalho, foram implementadas três representações para os gdB, com objetivo de avaliar seus desempenhos em termos da utilização eficiente da memória cache. A primeira corresponde a uma implementação tradicional com listas de adjacências, usada como referência, a segunda é baseada em estruturas de dados cache-oblivious, originalmente descritas para percursos em grafos genéricos, e a terceira corresponde a uma representação sucinta específica para os gdB, com otimizações voltadas ao melhor uso da cache. O comportamento dessas representações foi avaliado quanto à quantidade de acessos à memória em dois algoritmos, nomeadamente o percurso em profundidade (DFS) e o tour euleriano. Os resultados experimentais indicam que as versões tradicional e cache-oblivious genérica apresentam, nessa ordem, os menores números absolutos de cache misses e menores tempos de execução para dados pouco volumosos. Entretanto, a versão sucinta apresenta melhor desempenho em termos relativos, considerando-se a proporção entre o número de cache misses e a quantidade de acessos à memória, sugerindo melhor desempenho geral em situações extremas de utilização de memória. === The study of genomes was boosted by advancements in biotechnology that took place since the second half of 20th century. In particular, the development of new high-throughput sequencing platforms induced the proliferation of nucleic sequences raw data. Although, DNA assembly, i.e., reconstitution of original DNA sequence from its fragments, is still one of the most computational challenging steps. Traditional approach to this problem concerns the solution of intractable problems over graphs that are built over the fragments, as the determination of Hamiltonian paths. More recently, new solutions based in the so called de Bruijn graphs, also built over the sequenced fragments, have been adopted. In this case, the assembly problem relates to finding Eulerian paths, for what polynomial solutions are known. However, those solutions, in spite of having a smaller computational cost, still demand a huge computational power in practice, given the big amount of data involved. For example, the representation employed by some assembly tools for a gdB of human genome may reach hundreds of gigabytes. Therefore, it is necessary to apply algorithmic techniques to efficiently manipulate data in internal and external memory. In modern computer architectures, memory is organized in hierarchical layers: cache, RAM, disc, network, etc. As the level grows, the storage capacity is also bigger, as is the access time (latency). That is, the speed of access is smaller. The aim is to keep information limited as much as possible in the highest levels of memory and reduce the need for block exchange between adjacent levels. For that, an approach are cache-oblivious algorithms, that try to reduce the the exchange of blocks between cache and main memory without knowing explicitly the physical parameters of the cache. Another alternative is the use of succinct data structures, that store an amount of data in space close to the minimum information-theoretical. In this work, three representations of the de Bruijn graph were implemented, aiming to assess their performances in terms of cache memory efficiency. The first implementation is based in a traditional traversal algorithm and representation for the de Bruijn graph using adjacency lists and is used as a reference. The second implementation is based in cache-oblivious algorithms originally described for traversal in general graphs. The third implementation is based in a succinct representation of the de Bruijn graph, with optimization for cache memory usage. Those implementations were assessed in terms of number of accesses to cache memory in the execution of two algorithms, namely depth-first search (DFS) and Eulerian tour. Experimental results indicate that traditional and generic cache-oblivious representations show, in this order, the least absolute values in terms of number of cache misses and least times for small amount of data. However, the succinct representation shows a better performance in relative terms, when the proportion between number of cache misses and total number of access to memory is taken into account. This suggests that this representation could reach better performances in case of extreme usage of memory.
author2 http://lattes.cnpq.br/7085832229021609
author_facet http://lattes.cnpq.br/7085832229021609
LIMA, Jamerson Felipe Pereira
author LIMA, Jamerson Felipe Pereira
author_sort LIMA, Jamerson Felipe Pereira
title Representações cache eficientes para montagem de fragmentos baseada em grafos de de Bruijn de sequências biológicas
title_short Representações cache eficientes para montagem de fragmentos baseada em grafos de de Bruijn de sequências biológicas
title_full Representações cache eficientes para montagem de fragmentos baseada em grafos de de Bruijn de sequências biológicas
title_fullStr Representações cache eficientes para montagem de fragmentos baseada em grafos de de Bruijn de sequências biológicas
title_full_unstemmed Representações cache eficientes para montagem de fragmentos baseada em grafos de de Bruijn de sequências biológicas
title_sort representações cache eficientes para montagem de fragmentos baseada em grafos de de bruijn de sequências biológicas
publisher Universidade Federal de Pernambuco
publishDate 2018
url https://repositorio.ufpe.br/handle/123456789/25352
work_keys_str_mv AT limajamersonfelipepereira representacoescacheeficientesparamontagemdefragmentosbaseadaemgrafosdedebruijndesequenciasbiologicas
_version_ 1718865429340880896
spelling ndltd-IBICT-oai-repositorio.ufpe.br-123456789-253522019-01-21T19:26:32Z Representações cache eficientes para montagem de fragmentos baseada em grafos de de Bruijn de sequências biológicas LIMA, Jamerson Felipe Pereira http://lattes.cnpq.br/7085832229021609 FONSECA, Paulo Gustavo Soares da Ciência da computação Biologia computacional Submitted by Pedro Barros (pedro.silvabarros@ufpe.br) on 2018-08-01T20:18:15Z No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Jamerson Felipe Pereira Lima.pdf: 1541250 bytes, checksum: ccefce36b254aed5273279c3a4600f9f (MD5) Approved for entry into archive by Alice Araujo (alice.caraujo@ufpe.br) on 2018-08-02T20:09:33Z (GMT) No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Jamerson Felipe Pereira Lima.pdf: 1541250 bytes, checksum: ccefce36b254aed5273279c3a4600f9f (MD5) Made available in DSpace on 2018-08-02T20:09:33Z (GMT). No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Jamerson Felipe Pereira Lima.pdf: 1541250 bytes, checksum: ccefce36b254aed5273279c3a4600f9f (MD5) Previous issue date: 2017-02-20 FACEPE O estudo dos genomas dos seres vivos têm sido impulsionado pelos avanços na biotecnologia ocorridos desde a segunda metade do Séc. XX. Particularmente, o desenvolvimento de novas plataformas de sequenciamento de alto desempenho ocasionou a proliferação de dados brutos de fragmentos de sequências nucleicas. Todavia, a montagem dos fragmentos de DNA continua a ser uma das etapas computacionais mais desafiadoras, visto que a abordagem tradicional desse problema envolve a solução de problemas intratáveis sobre grafos obtidos a partir dos fragmentos, como, por exemplo, a determinação de caminhos hamiltonianos. Mais recentemente, soluções baseadas nos grafos de de Bruijn (gdB), também obtidos a partir dos fragmentos sequenciados, têm sido adotadas. Nesse caso, o problema da montagem relaciona-se com o de encontrar caminhos eulerianos, o qual possui soluções polinomiais conhecidas. Embora apresentem custo computacional teórico mais baixo, ainda demandam, na prática, grande poder computacional, face ao volume de dados envolvido. Por exemplo, a representação empregada por algumas ferramentas para o gdB do genoma humano pode alcançar centenas de gigabytes. Faz-se necessário, portanto, o emprego de técnicas algorítmicas para manipulação eficiente de dados em memória interna e externa. Nas arquiteturas computacionais modernas, a memória é organizada de forma hierárquica em camadas: cache, memória RAM, disco, rede, etc. À medida que o nível aumenta, cresce a capacidade de armazenagem, porém também o tempo de acesso. O ideal, portanto, seria manter a informação limitada o mais possível aos níveis inferiores, diminuindo a troca de dados entre níveis adjacentes. Para tal, uma das abordagens são os chamados algoritmos cache-oblivious, que têm por objetivo reduzir o número de trocas de dados entre a memória cache e a memória principal sem que seja necessário para tanto introduzir parâmetros relativos à configuração da memória ou instruções para a movimentação explícita de blocos de memória. Uma outra alternativa que vêm ganhando ímpeto mais recentemente é o emprego de estruturas de dados ditas sucintas, ou seja, estruturas que representam a informação usando uma quantidade ótima de bits do ponto de vista da teoria da informação. Neste trabalho, foram implementadas três representações para os gdB, com objetivo de avaliar seus desempenhos em termos da utilização eficiente da memória cache. A primeira corresponde a uma implementação tradicional com listas de adjacências, usada como referência, a segunda é baseada em estruturas de dados cache-oblivious, originalmente descritas para percursos em grafos genéricos, e a terceira corresponde a uma representação sucinta específica para os gdB, com otimizações voltadas ao melhor uso da cache. O comportamento dessas representações foi avaliado quanto à quantidade de acessos à memória em dois algoritmos, nomeadamente o percurso em profundidade (DFS) e o tour euleriano. Os resultados experimentais indicam que as versões tradicional e cache-oblivious genérica apresentam, nessa ordem, os menores números absolutos de cache misses e menores tempos de execução para dados pouco volumosos. Entretanto, a versão sucinta apresenta melhor desempenho em termos relativos, considerando-se a proporção entre o número de cache misses e a quantidade de acessos à memória, sugerindo melhor desempenho geral em situações extremas de utilização de memória. The study of genomes was boosted by advancements in biotechnology that took place since the second half of 20th century. In particular, the development of new high-throughput sequencing platforms induced the proliferation of nucleic sequences raw data. Although, DNA assembly, i.e., reconstitution of original DNA sequence from its fragments, is still one of the most computational challenging steps. Traditional approach to this problem concerns the solution of intractable problems over graphs that are built over the fragments, as the determination of Hamiltonian paths. More recently, new solutions based in the so called de Bruijn graphs, also built over the sequenced fragments, have been adopted. In this case, the assembly problem relates to finding Eulerian paths, for what polynomial solutions are known. However, those solutions, in spite of having a smaller computational cost, still demand a huge computational power in practice, given the big amount of data involved. For example, the representation employed by some assembly tools for a gdB of human genome may reach hundreds of gigabytes. Therefore, it is necessary to apply algorithmic techniques to efficiently manipulate data in internal and external memory. In modern computer architectures, memory is organized in hierarchical layers: cache, RAM, disc, network, etc. As the level grows, the storage capacity is also bigger, as is the access time (latency). That is, the speed of access is smaller. The aim is to keep information limited as much as possible in the highest levels of memory and reduce the need for block exchange between adjacent levels. For that, an approach are cache-oblivious algorithms, that try to reduce the the exchange of blocks between cache and main memory without knowing explicitly the physical parameters of the cache. Another alternative is the use of succinct data structures, that store an amount of data in space close to the minimum information-theoretical. In this work, three representations of the de Bruijn graph were implemented, aiming to assess their performances in terms of cache memory efficiency. The first implementation is based in a traditional traversal algorithm and representation for the de Bruijn graph using adjacency lists and is used as a reference. The second implementation is based in cache-oblivious algorithms originally described for traversal in general graphs. The third implementation is based in a succinct representation of the de Bruijn graph, with optimization for cache memory usage. Those implementations were assessed in terms of number of accesses to cache memory in the execution of two algorithms, namely depth-first search (DFS) and Eulerian tour. Experimental results indicate that traditional and generic cache-oblivious representations show, in this order, the least absolute values in terms of number of cache misses and least times for small amount of data. However, the succinct representation shows a better performance in relative terms, when the proportion between number of cache misses and total number of access to memory is taken into account. This suggests that this representation could reach better performances in case of extreme usage of memory. 2018-08-02T20:09:33Z 2018-08-02T20:09:33Z 2017-02-20 info:eu-repo/semantics/publishedVersion info:eu-repo/semantics/masterThesis https://repositorio.ufpe.br/handle/123456789/25352 por Attribution-NonCommercial-NoDerivs 3.0 Brazil http://creativecommons.org/licenses/by-nc-nd/3.0/br/ info:eu-repo/semantics/openAccess Universidade Federal de Pernambuco Programa de Pos Graduacao em Ciencia da Computacao UFPE Brasil reponame:Repositório Institucional da UFPE instname:Universidade Federal de Pernambuco instacron:UFPE