Bioinformática DCC/FCUP

Documentos relacionados
Motantagem de Contigs de sequências de genomas e Transcriptomas. Introdução

Probabilidade. Luiz Carlos Terra

Métricas de Software

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Inteligência Artificial

Prof. Daniela Barreiro Claro

TESTES SOCIOMÉTRICOS

EGEA ESAPL - IPVC. Resolução de Problemas de Programação Linear, com recurso ao Excel

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Sites dinâmicos. Com Expression Web TI2009/10 EWD_1. Filipa Pires da Silva (2009)

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

UM JOGO BINOMIAL 1. INTRODUÇÃO

Engenharia de Software II

Tratamento e Análise de Dados e Informações (TADI)

Entropia, Entropia Relativa

Software PHC com MapPoint 2007

Pressuposições à ANOVA

DIMENSÕES DE PESQUISA EM ENGENHARIA DE SOFTWARE

Recorrendo à nossa imaginação podemos tentar escrever números racionais de modo semelhante: 1 2 =

Exercício. Exercício

de fevereiro de 2002

ALGORITMOS E COMPLEXIDADE PROBLEMAS E ALGORITMOS

Plano de Projeto. Tema 3. Gerência de Projetos Profa. Susana M. Iglesias

,QVWDODomR. Dê um duplo clique para abrir o Meu Computador. Dê um duplo clique para abrir o Painel de Controle. Para Adicionar ou Remover programas

Sistemas Distribuídos

AULA 07 Distribuições Discretas de Probabilidade

Capítulo 1. Importação de Dados de Instituições Financeiras - Arquivo TXT 3

Carlos de Salles Soares Neto Segundas e Quartas, 17h40 às 19h10

FORMAÇÃO WORDPRESS. Desenvolvimento de sites com a plataforma Wordpress. Abel Soares abelbarbosasoares@gmail.com

ATuLCo. Manual de Instruções. Gestor de Agência de Viagens. ATuLCo Gestor de Agencia de Viagens. Horário Abreu Nr António Felgueiras Nr.

Notas de aplicativos: Serviço de Nuvem OneTouch AT

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

M3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações

Sejam P1(x1,y1) e P2(x2,y2) pontos pertencentes ao plano. A equação da reta pode ser expressa como: ou

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Ondas EM no Espaço Livre (Vácuo)

Programação para Internet I 4. XML. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

VIII Oficinas de Formação A Escola na Sociedade da Informação e do Conhecimento praticar ao Sábado. E-learning. 3 de Março de 2007

aplicação arquivo Condições Gerais de Utilização

Tabelas Hash. Aleardo Manacero Jr.

Princípios e Conceitos de Desenho de Software. Projeto de Sistemas de Software Prof. Rodrigo Ribeiro

Testes de Hipóteses Estatísticas

COMO CRIAR LANDING PAGES DE SUCESSO. Tudo sobre a Página Perfeita! COLMÉIA SITES

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

ENGENHARIA DE SOFTWARE

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access

Observando embalagens

Tipos de investigação educacional diferenciados por:

Arquitecturas de Software Enunciado de Projecto

Pós-Graduação em Computação Distribuída e Ubíqua

Tipos de problemas de programação inteira (PI) Programação Inteira. Abordagem para solução de problemas de PI. Programação inteira

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

Disciplina: Unidade III: Prof.: Período:

Graphing Basic no Excel 2007

A matemática e o genoma. Resumo

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA SOCIEDADE PONTO VERDE

Matemática Discreta - 08

Material e Métodos Resultados e Discussão

AULA 19 Análise de Variância

QUESTÕES PARA A 3ª SÉRIE ENSINO MÉDIO MATEMÁTICA 2º BIMESTE SUGESTÕES DE RESOLUÇÕES

SISTEMAS DISTRIBUÍDOS

Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.)

2. ALGORITMOS. Unesp Campus de Guaratinguetá

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

Probabilidade e Estatística

1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18

Apontamento técnico No. 5, Fevereiro de 2014 Como pedir apoio através do Ajuda Online do CAICC

Objetivo do Portal da Gestão Escolar

Deadlocks. Sistemas Operacionais - Professor Machado

Indíce. Indice ) Identificar a sua persona (Cliente ideal)...erro! Indicador não definido. Exemplo... 4

4.4 Limite e continuidade

Análise de Requisitos

Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão

Métodos de Estudo & Investigação Científica. Elaborando um projeto de pesquisa

GIL, Antonio Carlos. Como elaborar projetos de pesquisa. São Paulo, Editora Atlas,

Códigos de bloco. Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2

J.I.T. - Just In Time

atualização gratuita *para clientes Solutio com contrato de manutenção ativo.

Deswik.Sched. Sequenciamento por Gráfico de Gantt

MANUAL DO INSTALADOR XD EM AMBIENTES MICROSOFT WINDOWS

Arquitetura TCP/IP. Apresentado por: Ricardo Quintão

FONSECA, LUCIANO DUARTE FERRAMENTAS DE DIAGNÓSTICO ERD COMMANDER

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DA RESPESCAGEM DO 2 o TESTE

Aula 03. Processadores. Prof. Ricardo Palma

MÓDULO 2 Topologias de Redes

Contratar um plano de saúde é uma decisão que vai além da pesquisa de preços. Antes de

COBRANÇA BANCÁRIA CAIXA

Subsequência comum mais longa Em inglês, Longest Common Subsequence (LCS)

Modelo Relacional Normalização Diagramas E-R e Tabelas Originadas

Primeira Lista de Exercícios de Métodos Numéricos II Primeiro semestre de 2015

Universidade Federal de Goiás Campus Catalão Departamento de Matemática

Novembro. Áreas Curriculares. Propostas de Operacionalização

SEO sem Limites - 3 Passos Básicos de SEO

ENG1000 Introdução à Engenharia

Transcrição:

Bioinformática DCC/FCUP 2012/2013 Pedro Ribeiro Unidade 2 Assemblagem de Genomas (baseado nos slides de Sushmita Roy/UWisconsin)

Objectivos desta unidade Sequenciação e assemblagem Problema da mais pequena superstring Algoritmos greedy e algoritmos não polinomiais Alguns conceitos de teoria de grafos Caminhos de Euler Caminhos de Hamilton K-mer s Grafos de debruijn Alguns algoritmos populares para assemblagem

Sequenciação Sequenciação de DNA: Processo para determinar a ordem dos nucleótidos numa molécula de DNA.

Tipos de sequenciação Sequenciação de novo (ou resequenciação): Sequenciar sem conhecimento prévio da sequência, começando do zero Sequenciação por mapeamento (mapping assembly): Sequenciar com conhecimento prévio de sequência similar (backbone). nova sequência é parecida, mas não necessariamente igual. A

Problema da sequenciação Não conseguimos ler um genoma inteiro. Apenas (pequenos) pedaços! Descobrindo uma sequência de um genoma: Fragmentar o genoma em strings mais pequenas Sequenciar/ler as strings pequenas Assemblar (juntar) as strings no genoma (string maior )

Assemblagem de fragmentos

Puzzle de DNA

Diferentes tipos de sequenciação Sanger (chain termination) : 800bp-1000bp 454: 300bp-400bp Illumina: 35bp-150bp Helicos: 30bp

Exemplo: Sequenciação Sanger Foi desenvolvida em 1977 por Frederick Sanger. Durante 25 anos foi a mais usada Uma explicação em português (med.up.pt) Um resumo : Uso de ddntps (didesoxirribonucleosídeos trifosfatados) Desnaturação da cadeia de dupla hélice para síntese in vivo Uso de primers para início da síntese com DNA polimerase Baixas concentrações de ddntps em relação a dntps (as normais) O ddntp é aleatoriamente colocado na posição da base correspondente O ddntp quebra a síntese na sua posição O ddntp está marcado com moléculas fluorescentes de diferentes cores Por electroforese separam-se os vários fragmentos (cadeias truncadas) Ordem em que os fragmentos determina a ordem da cadeia complementar Sequenciação automática cria um cromatograma

Exemplo: Sequenciação Sanger

Gerações de Sequenciação 1 a geração: Sanger automatizada in vivo (amplificação através de colónias de bactérias) 800bp-1000bp com erro baixo Lenta (paralelização muito limitada) e Cara ( $2400 por milhão de bases) vs 2 a geração: 454, Illumina, SOLiD,... in vitro (amplificação em arrays) 30bp - 400bp Rápida (paralelização alta) e mais barata ($0.05 a $2 por milhão de bases) Agora vamos ter a 3 a geração (mais rápida, mais barata, sequências longas)

Custo da sequenciação Custos da análise? Custos do armazenamento? Exoma: 1% do genoma que codifica proteínas (exões)

Assemblagem de novo Input: Um conjunto de leituras (strings) - {s 1, s 2,..., s n } Output: A superstring que melhor explica as leituras O que é isto de melhor explica?

O problema da mais pequena superstring (SSP) Descobrir uma string s tal que: todas as leituras s 1, s 2,..., s n são substrings de s s é tão pequena quanto possível Assumindo que: As leituras são 100% correctas Leituras idênticas são da mesma localização do genoma melhor = mais simples

Exemplo de SSP Dada a leitura: {ACG, CGA, CGC, CGT, GAC, GCG, GT A, T CG} Qual a mais pequena superstring? T CGACGCGT A

Exemplo de SSP Dada a leitura: {ACG, CGA, CGC, CGT, GAC, GCG, GT A, T CG} Qual a mais pequena superstring? T CGACGCGT A - tamanho 10

SSP SSP é computacionalmente difícil De facto SSP é NP-completo Problema NP: Não conhecemos algoritmo polinomial, mas não sabemos se existe Podemos verificar solução em tempo polinomial Problema NP-completo: Problema NP Pelo menos tão difícil como outros problemas NP (NP-hard) Todos os problemas NP podem ser reduzidos a ele

Algoritmos para SSP Força Bruta Algoritmo guloso/ganancioso/ávido (greedy) Overlap Layout Consensus (caminhos de Hamilton) Grafos de Debruijn (caminhos de Euler)

Força Bruta Testar todas as hipóteses possíveis (todas as permutações das leituras)...

Força Bruta Testar todas as hipóteses possíveis (todas as permutações das leituras) ACG CGA CGC CGT GAC GCG GT A T CG ACGACGCGT GACGCGT AT CG - tamanho 20 ACG CGA CGC CGT GAC GCG T CG GT A ACGACGCGT GACGCGT CGT A - tamanho 20 ACG CGA CGC CGT GAC GT A GCG T CG ACGACGCGT GACGT AGCGT CG - tamanho 21... Proibitivo mesmo para n pequeno!

Algoritmo Greedy Uma estratégia greedy escolhe a melhor resposta imediata, tomando máximos locais para descobrir uma solução; Não garante a optimalidade da solução Uma estratégia greedy simples para SSP: Enquanto n o strings > 1: juntar as duas strings com mais overlap Overlap: tamanho da maior substring comum (prefixo/sufixo)...

Algoritmo Greedy Uma estratégia greedy escolhe a melhor resposta imediata, tomando máximos locais para descobrir uma solução; Não garante a optimalidade da solução Uma estratégia greedy simples para SSP: Enquanto n o strings > 1: juntar as duas strings com mais overlap Overlap: tamanho da maior substring comum (prefixo/sufixo) {ACG, CGA, CGC, CGT, GAC, GCG, GT A, T CG} {ACGCGA, CGC, CGT, GAC, GCG, GT A, T CG} - ACG+CGA (overlap = 2) {ACGCGA, CGT, GAC, GCG, GT A, T CG} - ACGCGA + CGC (overlap = 3) {ACGCGA, CGT A, GAC, GCG, T CG} - CGT + GTA (overlap = 2) {ACGCGA, GCGT A, GAC, T CG} - CGTA + GCG (overlap = 2) {ACGCGA, GCGT A, T CGAC} - TCG + GAC (overlap = 1) {GCGT ACGCGA, T CGAC} - GCGTA + ACGCGA (overlap = 1) {GCGT ACGCGAT CGAC} - GCGTACGCGA + TCGAC (overlap = 0) GCGT ACGCGAT CGAC - tamanho 15

Conceitos básicos de grafos O que é um grafo? Um conjunto de nós ou vértices (V) e das suas ligações ou arestas (E) As ligações descrevem uma relação entre os nós Grau de um vértice: número de arestas (indegree e outdegree) Caminho de u para v: conjunto de arestas ligadas entre u e v Ciclo: caminho que começa e termino no mesmo nó

Overlap Layout Consensus (OLC) 1. Overlap: Criação de grafo de overlaps 2. Layout: descoberta de caminho 3. Consensus: com o caminho, reconstruir a sequência

OLC - Construção do grafo de overlaps Para um conjunto de leituras S, construir um grafo direcionado com pesos Cada leitura é um nó do vértice Existem arestas entre todos os vértices (grafo completo) Peso de cada aresta = overlap entre as strings de cada nós overlap(s i, s j ) = tamanho do maior sufixo de s i que é prefixo de s j overlap(aga, GAT) = 2 AGA tem sufixo GA GAT tem prefixo GA

OLC: exemplo de grafo de overlaps Seja S = {AGA, GAT, T CG, GAG}

OLC: exemplo de grafo de overlaps Seja S = {AGA, GAT, T CG, GAG}

OLC: exemplo de grafo de overlaps Seja S = {AGA, GAT, T CG, GAG}

OLC: Layout Identificar caminhos no grafo que correspondam a segmentos do genoma O caso geral é descobrir um caminho de Hamilton: Caminho que visita todos os vértices uma única vez...

OLC: Layout Identificar caminhos no grafo que correspondam a segmentos do genoma O caso geral é descobrir um caminho de Hamilton: Caminho que visita todos os vértices uma única vez

OLC: Caminhos de Hamilton Descobrir se um grafo tem ou não caminho de hamilton é computacionalmente complicado (NP-completo) Descobrir o menor caminho de hamilton também o é: É similar ao Traveling Salesman Problem (TSP) TSP é muito estudado e existem muitas heurísticas Grafos de overlap continuam a ser usados frequentemente na assemblagem

OLC: Consensus Uma vez tendo o caminho temos a nossa sequência Está implícito na ordem dos nós no layout...

OLC: Consensus Uma vez tendo o caminho temos a nossa sequência Está implícito na ordem dos nós no layout AGA GAG GAT TCG AGAGATCG

OLC: Resumo OLC: Overlap Layout Consensus Overlap: calcular as subtrings comuns e construir o grafo Layout: arranjar as leituras com base no grafo Solução exacta é computacionalmente complicada São usadas heurísticas (aproximações), como por ex. greedy Consensus: reconstuir a sequência original

Mais teoria de grafos Caminho de Euler: um caminho que inclui todas as arestas (uma única vez) Ciclo de Euler: um caminho de Euler que começa e termina no mesmo nó Descobrir um ciclo de Euler é computacionalmente simples Algoritmo linear no número de arestas do grafo

Um pouco de história O problema das 7 pontes de Königsberg Existe algum caminho pela cidade que passe uma única vez por cada ponte? Este problema foi resolvido 1735 por Leonhard Euler É historicamente importante e deu as bases para a teoria de grafos

Ciclos de Euler Grafo conexo: grafo onde existem caminhos entre todos os vértices Nó balançado: n o arestas de saída = n o arestas entrada [indegree(v) = outdegree(v)] Teorema: um grafo conexo dirigido tem um ciclo de Euler se e só se todos os seus vértices são balançados Existe uma algoritmo linear para descobrir ciclos de Euler

Algoritmo para descobrir um ciclo de Euler Algoritmo de Hierholzer Começar em qualquer vértice v e ir percorrendo arestas não usadas até voltar a v Não é possível ficar preso nalgum lado que não v para cada aresta de entrada, existe uma aresta de saída. Pode acontecer que se faça um ciclo não completo. Nesse caso: Escolher um vértice w ao longo do ciclo que tenha arestas não usadas Percorrer um caminho a partir de w até voltar a w Juntar este novo ciclo ao ciclo anterior Repetir o processo até termos ciclo euleriano ( completo )

Algoritmo para descobrir um ciclo de Euler

Algoritmo para descobrir um ciclo de Euler

Algoritmo para descobrir um ciclo de Euler

Caminhos de Euler Mas nós queriamos caminhos e não ciclos de Euler Nó semi-balançado: indegree(v) - outdegree(v) = 1 Teorema: um grafo conexo dirigido tem um caminho de Euler se e só se contém no máximo dois nós semi-balançados (sendo todos os outros balançados) Para balançar o grafo é so adicionar uma aresta e depois podemos calcular um ciclo. O caminho de Euler começa num dos nós semi-balançados e termina no outro

Exemplo de balanceamento

Exemplo de balanceamento

Espectro de uma sequência k-mer: string de tamanho k O espectro k-mer de uma sequência S é o conjunto de todos os k-mers da sequência (substrings de tamanho k) Exemplo para ATTACAG Espectro de 3-mer: ATT, TTA, TAC, ACA, CAG Espectro de 4-mer: ATTA, TTAC, TACA, ACAG

Grafo debruijn Num grafo de debruijn: Uma aresta é um k-mer da sequência S Os nós correspondem a (k 1)-mers A direcção é de um prefixo de tamanho k 1 para um sufixo de tamanho k 1 Exemplo: ATG, TGG, TGC, GTG, GGC, GCA, GCG, CGT

Grafo debruijn em Assemblagem Seguir uma metodologia euleriana assente em grafos debruijn Descobrir uma sequência contendo todos os k-mers é Descobrir um caminho de Euler no grafo debruijn! Um resultado possível: ATGGCGTGCA

Grafo debruijn em Assemblagem Um caminho de Euler é uma possível assemblagem No entanto podem existir muitos ciclos diferentes! Escolher um deles

Estratégias de Sequenciação Como sequenciar na prática uma cadeia longa de DNA? Leitura directa Sequenciação hierárquica (top-down) Sequenciação shotgun (bottom-up)

Leitura directa Ler sequencialmente uma região Apenas possível para cadeias pequenas (milhares bp) Metodologia exemplo: primer walking (chromossome walking) Criar primer que alinha com o início da sequênca Fazer leitura Criar primer que alinha com o final da leitura Repetir isto com o novo primer até chegar ao final

Sequenciação hierárquica vs shotgun

Sequenciação shotgun Pegar numa sequência grande e obter muitas leituras pequenas As leituras pequenas são em ordem e posição aleatória Tentar reconstruir a sequência grande com base nos overlaps

Sequenciação shotgun Podemos combinar para obter uma sequenciação hierárquica com shotgun

Algumas definições Leitura paired-end : usa os dois lados do fragmento e devolve duas sequências, uma do início e outra do fim contig: sequência contígua de nucleótidos scaffold (andaime): vários contigs, ordenados, potencialmente com buracos no meio (gaps)

Uma visão global

Algumas problemas na sequenciação Repetições Difícil saber onde começam e acabam as repetições As leituras podem não ser suficientemente longas O genoma humano tem muitas repetições SINEs (Short interspersed elements, 300bp) LINEs (Long interspersed elements, 1000 bps) Duplicação de genes Erros Como distinguir erros de leitura de erros de overlap?

Como é feito na prática? Um pouco de todas as técnicas que vimos até agora Uso extensivo de heurísticas A melhor metodologia depende de várias coisas Tamanho das leituras Quantidade de repetições Existência de leituras paired-end A sequenciação é normalmente feita de forma iterativa, com contigs e scaffolds e potencialmente uso de leitura directa para preencher gaps

Output de uma leitura Muitas das plataformas de sequência produzem um ficheiro fastq @SEQ_ID GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCAC +! *((((***+))%%%++)(%%%%).1***-+* ))**55CCF>>>>>>CCCC Qualidade da leitura medida com pontuação phred Logaritmicamente relacionada com a probabilidade de uma base estar errada Exemplo: Q = 10 log 10 P

Algumas métricas de sequenciação Cobertura de uma leitura C = n I/L n: número de leituras I: tamanho de cada leitura L: tamanho do fragmento a sequenciar Qual a cobertura necessária? Modelo de Lander-Waterman (assumindo distribuição uniforme de leituras) diz que com C=10 teremos 1 região com gap por cada milhão de nucleótidos

Algumas métricas de sequenciação Qualidade de uma assemblagem Estatística N50 O tamanho I de um contig tal que todos os contigs de tamanho menor que I cobrem 50% da assemblagem Mede conectividade Mais usada em drafts (sequenciação preliminares, não completas ) Quanto mais alta, melhor De maneira análoga podem ser definidas estatísticas NX

Alguns algoritmos implementados Overlap layout consensus Celera Assembler Desenvolvido para o genoma humano Arachne Caminhos Eulerianos (grafos debruijn) velvet

Velvet Grafos debruijn Gerar os k-mers das leituras Simplificar (merge) cadeias lineares Correcção de erros (remover pontas e bolhas ) Lidar com repetições

Velvet - geração do grafo

Velvet - geração do grafo

Velvet - Simplificação Remover cadeias lineares

Velvet - Erros Remover pontas (tips) e bolhas (bubbles) Pontas: cadeias que não continuma e menores que um determinado valor Bolhas: algoritmo bus tour (usa BFS) mais informação da cobertura, qualidade, etc

Velvet - Repetições No fundo é tentar ligar dois longos contigs Usa extensivo de informação paired-read Módulo especializado: antes Breadcrumbs, agora Pebble (usa comprimentos)

Velvet - Saber mais Software disponível para download: velvet Artigo original: Velvet: Algorithms for de novo short read assembly using de Bruijn graphs (2008) Novo módulo para repetições: Pebble and Rock Band: Heuristic Resolution of Repeats and Scaffolding in the Velvet Short-Read de Novo Assembler (2009)

Alguns projectos actuais de sequenciação 1000 Genomas: um estudo da variação genética humana 1001 Genomas: um estudo da variação genética na planta Arabidopsis thaliana i5k: sequenciação de 5000 insectos e outros artrópodes genome10k: sequenciação de 10,000 espécies vertebradas (zoo genómico) human microbiome: sequenciação de microorganismos relacionados com humanos GOLD: Genomes Online Database

Sumário da Unidade Definições de sequenciação e assemblagem Problema da mais pequena superstring (SSP) Metodologias baseadas em grafos Algoritmos greedy Caminhos de Hamilton Caminhos de Euler Grafos debruijn Dificuldades Erros Repetições Assemblagem na prática Baseados nas metodologias dadas Muito pós-processamento não trivial Muitos projectos de sequenciação e assemblagem a decorrer

Componentes de Avaliação Exame: terá perguntas sobre esta unidade Mini-trabalho: grafo de overlaps e estratégia greedy para caminho de hamilton Apresentação de artigo: poderá incidir sobre um artigo desta temática. Exemplos: Simpson, J.T. & Durbin, R. Efficient de novo assembly of large genomes using compressed data structures. Genome Research 22, gr.126953.111- (2011). Salzberg, S.L. et al. GAGE: A critical evaluation of genome assemblies and assembly algorithms. Genome Research 22, 557-67 (2011). Projecto: poderá incidir sobre este tema: Criação de ferramenta: criar um assemblador usando grafos debruijn com algumas capacidades de correcção de erros/repetições Revisão do estado da arte: comparar várias metodologias e/ou software Aplicação: usar um software existente para assemblar dados sintéticos ou reais