5.1. Fluxo para geração do Roadmap

Documentos relacionados
4 Velvet 4.1. Estrutura VelvetH VelvetG

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

3 Montagem de Fragmentos

Curso: Banco de Dados I. Conceitos Iniciais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Banco de Dados. SGBDs. Professor: Charles Leite

Sistemas de Gerência de Bancos de Dados. Módulo 1 - Armazenamento

GBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM/BCC

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Sistemas da Informação. Banco de Dados I. Edson Thizon

Banco de Dados. Perspectiva Histórica dos Bancos de Dados. Prof. Walteno Martins Parreira Jr

Banco de Dados Fundamentos Básicos. Hélder Antero Amaral Nunes

Ambiente de desenvolvimento

Processamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Processamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

CP Introdução à Informática Prof. Msc. Carlos de Salles

Banco de Dados. Introdução. Profa. Flávia Cristina Bernardini

Revisando Banco de Dados. Modelo Relacional

DDL). O resultado da compilação dos parâmetros DDLs é

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

BCD29008 Banco de dados

SSC510 Arquitetura de Computadores 1ª AULA

Bancos de Dados Notas de Aula Introdução Prof. Dr. Daniel A. Furtado

Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Victor Hugo Andrade Soares monitor João Vitor dos Santos Tristão Primeiro Trabalho Prático

Banco de Dados I. Prof. Edson Thizon

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Curso PostgreSQL - Treinamento PostgreSQL - Fundamental

Universidade Federal do Maranhão

Sistema Operacional. Etapa

Laboratório de Banco de Dados. Prof. Luiz Vivacqua.

Técnico em Informática. Banco de Dados. Profª Ana Paula Mandelli

ANÁLISE E PROJETO DE BANCO DE DADOS

Evandro Deliberal Aula 03

Controle de Transação

INFORMÁTICA: Informação automática

BCD29008 Banco de dados

Análise empírica de algoritmos de ordenação

Análise Comparativa entre Bancos de Dados NoSQL para Realização de Cache de Banco de Dados em Aplicações Web

Instalação e Manutenção de Computadores Sandra Silva

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Banco de Dados e Aplicações em Negócios: Introdução.

BANCO DE DADOS 2 TRANSAÇÃO

Banco de Dados - Conceitos. Baseado no material da Profa. Vania Bogorny (UFSC)

MANUAL DO USUÁRIO SISTEMA GERENCIADOR DE SENHAS VERSÃO SERVIDOR

Técnicas de Recuperação em Banco de Dados

Introdução à Computação

Sistema de Banco de Dados. UNIDADE 1 Introdução aos Sistemas de Bancos de Dados Professor: Armando Hage

Terceiro Trabalho Prático. Este trabalho tem como objetivo ordenar um arquivo de dados e implementar as operações cosequenciais de merging e matching.

Os efeitos do paralelismo e relações de thesaurus em uma ferramenta de busca em bases textuais

Aula 2 BD Introdução. Profa. Elaine Faria UFU

Processamento de Transações

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

Sistemas de Memória. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD

Processamento de Transações

Palavras-chave: (banco de dados; prontuário médico; paciente); deve vir logo abaixo do resumo

Algoritmos Computacionais

Banco de Dados I. Sejam bem-vindos! Prof. Fred Lucena. 1

Computadores podem ser úteis em problemas que envolvem: Grande número de dados. Grande número de cálculos. Complexidade. Precisão.

Introdução a Ciência da Computação Estrutura e Organização das Informações PROFESSORA CINTIA CAETANO

Conceitos Básicos. Fundação Centro de Análise, Pesquisa e Inovação Tecnológica Instituto de Ensino Superior - FUCAPI. Disciplina: Banco de Dados

Trabalho Prático. Descrição do arquivo de dados

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

Instruções Servidor TeoremaEE

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Sistemas de Banco de Dados

DESENVOLVIMENTO DE SOFTWARE PARA ANÁLISE DO ELEITORADO BRASILEIRO COM DADOS ABERTOS

Organização e Arquitetura de Computadores I

Aula 05. Fundamentos de Hardware e Software. Prof. Dr. Dilermando Piva Jr.

Introdução aos Sistemas Operacionais

Conceitos Básicos de Programação

4 Processo de Transformação

Hospedagem Cloud Especificação e Requisitos. Termo de Referência nº 7/2018

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

SISTEMAS OPERACIONAIS

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

Puca Huachi Vaz Penna

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

Projeto de Algoritmos

Fundamentos de Sistemas Operacionais

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Estudos de Caso Sistema de Sincronização dos Dados Acadêmicos do SAU e do AulaNet

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

UMA INTERFACE DE GERENCIAMENTO DE REDES DEFINIDAS POR SOFTWARE

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados

Etapa III - Implementação de Operadores da Álgebra Relacional; Etapa IV - Comparação experimental de varredura sequencial x acesso aleatório

Informática I. Aula /09/2006 1

Barramento. Prof. Leonardo Barreto Campos 1

SGBDs NoSQL Modelos e Sistemas de Colunas e Grafos. Aluno: Jorge Dias Disciplina: IN940

Simulado para CFPS. Questões de Propósito, Tipo e Fronteira. 1. Um dos objetivos da Análise de Pontos de Função é:

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Sistema Operacionais II. Aula: Virtualização

Transcrição:

46 5 VelvetH-DB Os Sistemas Gerenciadores de Banco de Dados (SGBDs), foram criados com o intuito de permitir o armazenamento e manipulação de grandes volumes de dados, fornecendo uma aplicação que garanta, de forma transparente para o usuário, um gerenciamento de memória eficiente além da garantia das propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade), em suas transações. Como parte do objetivo desta dissertação, propomos a implementação do VelvetH-DB, que é uma abordagem baseada em banco de dados para a geração dos Roadmaps, que tem como objetivo criar uma solução robusta e eficaz da fase de geração de anotações do VelvetH. Quando o volume de dados a ser processado pelo VelvetH não cabe em memória principal, o sistema operacional passa a fazer o uso do SWAP em disco, tornando a aplicação drasticamente mais lenta[9], e em caso de falha, todo o processamento realizado, que podem ser dias de trabalho [9] são perdidos e o processo não pode ser reiniciado a partir do ponto de interrupção. No VelvetH-DB, conseguiremos a robustez desejada através da propriedade de Consistência, garantindo desta forma a continuidade no processamento mesmo em casos onde há falha na máquina. Outra funcionalidade alcançada com a implementação proposta está ligada à propriedade de Durabilidade. Quando surgem novas bibliotecas de sequências para serem processadas, todo o trabalho de geração do Roadmap tem que ser feito novamente, não sendo possível processar apenas o conjunto novo de dados e incluir ao final do processamento já realizado. Na abordagem em banco de dados, iremos encurtar o tempo de processamento de novas bibliotecas evitando desperdício de tempo de processamento de análises já realizadas, procedendo de maneira incremental.

47 5.1. Fluxo para geração do Roadmap O fluxo para a geração do Roadmap através da implementação do VelvetH original, como descrito na figura 20, é relativamente simples. O usuário, através de linha de comando, executa a aplicação com seus parâmetros e a lista dos arquivos contendo as sequências a serem processadas. O programa executa as etapas, já descritas na secção 4.4, salvando em disco os arquivos de saída, sequences e Roadmap. Figura 20 Fluxo de geração do Roadmap através do VelvetH sem modificações. A solução proposta nesta dissertação, o VelvetH-DB, utiliza para fase inicial de padronização das sequências uma versão alterada do VelvetH, usando a saída deste como entrada para a nova implementação com persistência em banco de dados, conforme demostrado na Figura 21. É pensado como contribuição futura a implementação desta fase de padronização dos dados existente no VelvetH na solução VelvetH-DB.

48 Figura 21 Fluxo para a geração do Roadmap através do VelvetH-BD. 5.2. Implementação Para a implementação deste trabalho foi escolhido o SGBD de código aberto PostgreSQL, versão 9.3. Foi escolhido este SGBD pois, além de ser um software estabilizado e difundido, há no grupo de pesquisas BioBD PUC-Rio, experiência em alterações no código deste SGBD. A implementação aqui proposta, consiste em uma alteração no VelvetH original para gerar um outro formato para o arquivo padronizado de sequências e um conjunto de funções de banco de dados, escritas em PL/pgSQL, que é a linguagem estruturada do próprio PostgreSQL. As funções criadas cobrem a fase 2 do Velvet, processando o arquivo padronizado com as sequências, dividindo cada sequência em k-mers e gerando as anotações das repetições entre as sequências já processadas. Ao final escreve-se um arquivo Roadmap que possuiu a mesma estrutura do Roadmap gerado pela aplicação original e pode ser utilizado pelo VelvetG, para a geração do grafo e completitude da montagem. 5.2.1. Alteração do VelvetH Foi realizada uma alteração no código fonte do VelvetH com o intuito de gerar um outro arquivo de saída, sem o cabeçalho das sequências, colocando todas as informações em uma única linha, conforme mostrado na Figura 22 a seguir, visando

49 facilitar o processo de importação das sequências e suas informações na fase de carregamento das sequencias na solução proposta. Figura 22 Arquivo de saída do VelvetH alterado, colocando todas as informações da sequência em uma única linha O código fonte desta alteração está disponível em http://www.inf.pucrio.br/~msilva/labbio/velvet_1.2.10-alterado/. 5.3. Modelagem em banco de dados relacional Figura 23: O esquema relacional conta com 5 tabelas, conforme ilustra o esquema na SEQUENCES: Armazena as informações originais das sequências geradas pelo VelvetH modificado. o ID: Chave primária auto incremental da tabela, é o identificador único da sequência o CAT: Categoria da sequência, informação gerada pelo VelvetH durante a padronização o READ: Conteúdo da sequência, conjunto de caractere o DUMMY: Identificador da sequência gerada pelo VelvetH, armazenado para conferência, mas não utilizada pois a aplicação permite inserir novas bibliotecas PRESEQUENCES: Armazena as informações das sequências ajustadas, onde é substituido o caractere N pelo caractere A, conforme realizado no VelvetH original.

50 o ID: Identificador único da sequência o READ: Conteúdo da sequência com os caracteres N trocados por A. IDENTIFICATION: Armazena as informações dos k-mers únicos identificados nas sequências o K-MER: Conteúdo do k-mer, conjunto de caractere o IDINT: Posição relativa do k-mer na sequência o ID: Identificador único da sequência o POS: Posição relativa do k-mer na sequência ROADMAP: Armazena as informações das anotações de sobreposições encontradas entre as sequências o ID: Identificador único da sequência que foi processada o OVERLAPPED_READ: Identificador único da sequência onde foi encontrado o k-mer repetido o POS_IN_READ: Posição relativa do k-mer na sequência processada o POS_IN_OVERLAPPED_READ: Posição relativa do k- mer na sequência onde foi encontrado o k-mer repetido o NUMB_OF_CONTINUOS_KMER_OVERLAPPED: Quantidade de k-mers sobrepostos em sequência processada. o ANNOTATION_ORDER: Ordem da anotação TEMPFILE: Armazena temporariamente a estrutura de dados para a geração dos arquivos o LINE: Conteúdo da linha a ser colocada no arquivo o ID: Número sequencial da linha, para ordenação na hora de exportar o arquivo para disco.

51 5.4. Funções no SGBD 4 funções: Figura 23 Esquema relacional do VelvetH-DB Para fazer o processamento das sequências e gerar o Roadmap, foram criadas Maestra Importa Arquivo Processa Roadmap Gera Output Todas escritas em PL/pgSQL e na Figura 24 mostra-se o diagrama de sequência para a execução da aplicação.

52 5.4.1. Maestra Figura 24 Diagrama de sequência das funções do VelvetH-BD É a função principal e possui a responsabilidade de fazer às chamadas as outras funções da aplicação. Tem como parâmetros de entrada o arquivo padronizado gerado pelo VelvetH alterado e o tamanho do k-mer, retorna os arquivos do Roadmap e Sequences. 5.4.2. Importa Arquivo Função responsável pela leitura do arquivo padronizado das sequências, persistindo os dados na tabela SEQUENCES e gerando a tabela PRESEQUENCES com a substituição do caractere N das sequências pelo caractere A. Esta alteração é realizada de forma arbitrária pelo Velvet, não foi encontrada explicação em documentações e artigos dos criadores. Quando existe o caractere N em uma sequência. Isso significa que aquela base nitrogenada não pode ser lida no processo de sequenciamento. A aplicação assume como erro e altera para o caractere A. 5.4.3. Processa Roadmap Nesta função as sequências registradas na tabela PRESEQUENCES são recuperadas e os k-mers são extraídos e incluídos na tabela IDENTIFICATION quando o kmer já se encontrada na tabela, uma anotação é criada e escrita na tabela

53 ROADMAP registrando a repetição, lógica semelhante a estudada na secção 4.4.2.2. 5.4.4. GeraOutput Ao final do processamento das sequências, esta função gera na tabela TEMPFILE as tuplas no formato do arquivo sequences e gera um arquivo texto em disco. Em seguinte, apaga os dados desta tabela e gera as linhas no formato do arquivo Roadmap, também exportando um arquivo texto em disco, finalizando assim o processo. 5.5.Testes de Execução Afim de demonstrar a eficácia e eficiência da aplicação VelvetH-DB, realizamos um teste de execução com duas bibliotecas de dados, uma pequena e executável por uma máquina típica de prateleira, e um grupo de dados não executável neste tipo de máquina. Foi criada uma máquina virtual, através do Virtual Box (V4.3.34), com uma instalação de sistema operacional Ubuntu 64 (V14.04 LTS) e 8GB de memória RAM disponíveis, além de 2 processadores (Intel Core i7-4510u CPU @ 2.00GHz 2) e 1TB de espaço em disco. Configurada para rodar sem SWAP ativo no sistema operacional, afim de medir o limite de uso da memória RAM. O resultado da execução das duas aplicações, apresentado na Figura 25, expõe que a implementação proposta é menos eficiente que a aplicação tradicional quando o conteúdo cabe na memória principal da máquina. Entretanto, a aplicação VelvetH-DB se mostra eficaz nos casos onde a memória RAM da máquina não é suficiente para comportar toda massa de dados. No caso de teste executado o tempo para a montagem do arquivo sequences e Roadmap foram de 156h. Figura 25 Resultados da execução do VelvetH e o VelvetH-BD

54 5.6. Conclusão Neste capítulo foram apresentadas as motivações de uma implementação baseada em banco de dados. Descrito o fluxo de funcionamento proposto por esta nova aplicação, o esquema de dados relacional e as funções criadas para fazer o mapeamento das sobreposições das sequências em um banco de dados relacional. No próximo capítulo apresentaremos as conclusões e objetivos alcançados deste trabalho de dissertação de mestrado.