SlideShare uma empresa Scribd logo
1 de 81
Grafos de Bruijn para
identificação de variações
genéticas usando GBS
MARCOS CASTRO
GRUPO DE BIOINFORMÁTICA - UNIFESP
Grafos ...
- Conjunto de bolinhas (vértices ou nós) e linhas (arestas ou arcos).
◦ vértices: entidades (exemplo: uma pessoa)
◦ arestas: relação entre as entidades (exemplo: Adenina é amiga da Guanina)
Adenina Guanina
amiga
2
... de Bruijn ...
Nicolaas de Bruijn (1946)
◦ superstring problem: encontrar a menor superstring circular que contém todas as possíveis
substrings de tamanho “k” de um dado alfabeto.
◦ Supor o alfabeto de dois elementos (n = 2) {0, 1} e k = 3
◦ k-mers: substrings de tamanho “k”
◦ Se k = 3, então temos 3-mers
◦ Todos os 3-mers: 000, 001, 010, 011, 100, 101, 110, 111 (total de mers: n ^ k)
◦ A menor superstring circular é: 0001110100
◦ Essa superstring contém todos os 3-mers onde cada 3-mer aparece apenas uma vez.
◦ Como resolver? Dica: pontes de Konigsberg
exponenciação
Isso é um grafo.
3
.... de Bruijn ....
Nó: (k – 1)-mer
Aresta: liga um (k – 1)-mer a outro (k – 1)-mer se o sufixo do primeiro for igual ao prefixo do
segundo.
Arestas representam todos os possíveis k-mers.
Um ciclo euleriano representa a menor superstring que contém cada k-mer apenas uma vez.
Solução: algoritmo de Euler.
001 010
0010
4
..... de Bruijn .....
Importante:
◦ Ciclo euleriano: inicia em um nó, visita cada aresta apenas uma vez e retorna ao nó de origem
Se as arestas representam todos os possíveis k-mers...
... então foi por isso que o matemático Nicolaas de Bruijn conseguiu formar a menor superstring
contendo todos os k-mers onde cada k-mer aparece somente uma vez!
E se ao invés de euleriano, tivéssemos um ciclo hamiltoniano?
◦ Problema NP-Completo
◦ Caixeiro-viajante
◦ Não se conhece um algoritmo eficiente para achar ciclo hamiltoniano!
5
... identificação de variações genéticas ...
Diferença entre os indivíduos.
Exemplo de forma de variação genética: SNP.
SNP = polimorfismo de base única
A detecção de variações genéticas é importante para o entendimento evolutivo!
6
... usando GBS
GBS = genotipagem por sequenciamento.
É um método para descoberta de marcadores moleculares e genotipagem de alto desempenho.
◦ Exemplo de marcador molecular: SNP
◦ Genotipagem: processo de definir o genótipo.
◦ Genótipo: conjunto de genes.
◦ Gene: segmento de uma molécula de DNA.
Vantagens da técnica de GBS:
◦ Produz um grande volume de dados em pouco tempo (rápido)
◦ Baixo custo
Por que o interesse em SNP?
◦ Supor uma doença que é causada por um único nucleotídeo diferente em um único gene.
7
Sequenciando...
Sequenciar: determinar a sequência de nucleotídeos de uma molécula de DNA.
Os sequenciadores não conseguem trabalhar com a molécula de DNA completa de uma vez...
◦ Solução: shotgun (quebra em fragmentos)
genoma
fragmentos
8
Por que sequenciar?
Para compreender melhor o genoma de uma determinada espécie, levantar as causas de
possíveis doenças, indicar tratamentos adequados, entender melhor como a vida funciona,
selecionar os melhores indivíduos...
9
Métodos de sequenciamento
Sanger (1977) foi o primeiro.
Sanger foi superado pelas tecnologias NGS (next-gen sequencing).
Melhorias do NGS: rapidez, custo, necessita de menos DNA ...
Exemplo de sequenciadores: Illumina, Solid.
Uma das vantagens do Illumina: custo relativamente baixo.
Tecnologias NGS geram milhares de reads por amostra.
◦ Revolução
◦ Grande volume de dados (big data)
◦ Desafios?
fragmento de DNA sequenciado
10
Desafios Big Data
No Sanger não havia tantos dado$$$.
Tecnologias NGS produzem (muitos)^10 dados.
◦ Alto grau de paralelismo
O que fazer com um dilúvio de dados?
◦ Preciso pensar em métodos que processem tudo isso rapidamente!
◦ Novos algoritmos, softwares...
Objetivo: fazer com que esses dados façam algum sentido.
Produzir conhecimento a partir do processamento e análise dos dados.
Tirar algum proveito das informações contidas nos milhares de reads!
11
Tamanho dos reads – Sanger vs NGS
Lembrando: reads são fragmentos sequenciados
Sanger: 800-1000 pb
NGS: 35-100 pb
Conclusão: tecnologias NGS produzem reads menores (short reads).
Qual a consequência disso?
NGS sacrifica o comprimento do read em detrimento da velocidade.
Short reads: custo menor.
Short reads adicionam uma dificuldade a mais no pós-sequenciamento: montagem.
12
ponto fraco
Nem tão “short” assim...
Quando surgiram, as tecnologias NGS produziam sequências muito curtas.
Ao longo dos últimos anos, o tamanho médio dos reads NGS vem se aproximando do tamanho
médio conseguido por reads baseados na técnica de Sanger.
◦ Pesquise sobre pirosequenciamento.
13
Montagem
E depois do sequenciamento? É preciso realizar a montagem.
Montagem = reconstrução da sequência original (sequence assembly).
Analogia: quebra-cabeça.
Princípio básico: sobreposição (overlap). Como representar a sobreposição?
14
Montagem
15
Short reads, big challenges
É mais complexo se trabalhar com montagem de short reads.
Quanto menor o fragmento, mais complexo é o processo de montagem.
A possibilidade de ocorrer sobreposição é maior porque as regiões se repetem.
Diminui a possibilidade de unir corretamente estas sobreposições.
Desafio: lidar com o problema das repetições!
Diante desse novo cenário, novas ferramentas de montagem precisam ser desenvolvidas.
16
Montagem - Complexidade
Grande número de fragmentos
+
Erros de sequenciamento
=
Problema NP-Difícil
Os assemblers, através de uma série de pré e pós-processamentos nos dados, tentam eliminar
ou pelo menos diminuir os desafios.
17
Montagem – mais problemas...
Os montadores precisam lidar com topologias problemáticas nos grafos que modelam as
relações entre os reads.
Vamos ver essas topologias mais para frente, mas elas são causadas basicamente por:
◦ Repetições do genoma
◦ Polimorfismos
◦ Erros de sequenciamento
Isso tudo afeta o processo de montagem tornando-o mais custoso computacionalmente!
18
Tipos de montagens
1) O bioinformata possui um genoma de referência
◦ Compara-se áreas semelhantes entre os dois genomas para alinhamento das sequências.
2) O bioinformata não possui um genoma de referência
◦ Tem-se apenas a informação gerada pelos sequenciadores.
◦ Chamada montagem de novo (ab initio)
A montagem de novo é um problema NP-Difícil [Pop, 2009].
Problema NP-Difícil, analogia: procurar uma agulha na floresta Amazônica. Um campo de busca
muito extenso!
19
Montagem – Abordagens (paradigmas)
Existem algumas abordagens para realizar a montagem de genomas:
◦ Estratégia gulosa (greedy algorithms)
◦ OLC (overlap-layout-consensus)
◦ Metaheurísticas (exemplo: algoritmos genéticos)
◦ Grafos De Bruijn
20
Algoritmos gulosos (greedy)
Paradigma guloso: faz escolhas locais.
Algoritmo:
◦ 1) Realizam-se os alinhamentos par a par de todos os fragmentos;
◦ 2) Escolhe-se dois fragmentos com a maior sobreposição;
◦ 3) Junta-se os fragmentos escolhidos;
◦ 4) Repete-se os passos 2 e 3 até restar somente um fragmento.
Algoritmos gulosos são “míopes”, não enxergam mais para frente.
Imagine regiões repetidas que sejam mais extensas do que o tamanho dos reads...
A utilização da informação global (maior abrangência) é prejudicada pelas escolhas locais.
Essa abordagem não funciona bem com short reads.
21
Algoritmos gulosos (greedy)
Existem alguns assemblers que se baseiam no paradigma guloso.
Exemplos: Phrap, SSAKE, SHARCGS. VCAKE
Por que eles geram resultados diferentes?
◦ Eles se baseiam em algoritmos gulosos, mas cada um realiza processamentos diferentes que levam a
resultados diferentes.
22
OLC (overlap-layout-consensus)
Cada read é representado por um nó (vértice).
A aresta é determinada pela sobreposição entre os fragmentos (reads).
Primeiro realiza-se um processo de comparação par a par dos reads.
◦ Muito custoso, tempo quadrático para realizar as comparações.
Considere k = 3:
◦ ACTGCT
◦ CTGCT (overlap de tamanho 5)
◦ GCTAA (overlap de tamanho 3)
23
ACTGCT
CTGCT
GCTAA
Metaheurísticas
Exemplo: Algoritmo Genético (GA)
Possível modelagem:
◦ k genes
◦ Cada gene armazena um read
◦ Um bom indivíduo da população possui genes adjacentes que compartilham sobreposições entre um
sufixo do gene “i” e um prefixo do gene “j”.
◦ A sequência consenso seria a união de todas as sobreposições entre os genes consecutivos.
◦ read1: ACTGAC
◦ read2: GACTCG
24
R1 R2Indivíduo:
read1 read2
Grafos de Bruijn (DBG)
Não representa diretamente os reads.
◦ Cada read é representado por várias substrings de tamanho k.
◦ Cada read de tamanho k possui sobreposição de k – 1 caracteres com seus vizinhos.
Os nós são todos os k-mers (substrings de tamanho k).
Arestas correspondem a exatamente (k – 1)-overlaps entre os nós (edge centric definition).
O sufixo (k – 2) tem que ser igual ao prefixo (k – 2).
Considere ACTG, se k = 3 então temos dois k-mers: {ACT, CTG}
25
ACT CTG
Grafos de Bruijn
E se eu tiver vários reads?
Exemplo de reads:
◦ ACTG
◦ CTGC
◦ TGCT
Considere k = 3, todos os 3-mers: {ACT, CTG, TGC, GCT}
26
ACT CTG TGC GCT
Grafos de Bruijn
E se adicionarmos uma redundância?
Reads:
◦ ACTG
◦ ACTG
◦ CTGC
◦ CTGC
◦ TGCT
27
ACT CTG TGC GCT
Grafos de Bruijn
Um erro de sequenciamento (ao final de um read):
Reads:
◦ ACTG
◦ CTGC
◦ CTGA
◦ TGCT
28
ACT CTG TGC GCT
TGA
desse read originou o k-mer TGA
Grafos de Bruijn
Qual o efeito de um SNP (ou um erro de sequenciamento dentro de um read)?
Considere os reads e k = 3:
◦ AGTCTGA
◦ AGTTTGA
29
AGT
GTT TTT TTG
TGA
GTC TCT CTG
Grafos de Bruijn
Qual o efeito de uma pequena repetição (repeat) no grafo?
Considere os reads e k = 3:
◦ ACTG
◦ CTGC
◦ TGCT
◦ GCTG
◦ CTGA
◦ TGAT
30
ACT CTG TGC
GAT TGA GCT
Grafos de Bruijn
Não faz o processo de comparação par a par como na abordagem OLC.
Bastante empregado para short reads (Illumina data).
São permitidas apenas sobreposições exatas.
Possibilidade de abordagem via circuito hamiltoniano e euleriano.
Encontrar caminho euleriano é a base do assembler EULER (Pevzner).
É aconselhável fazer correções de erros antes e após a montagem para obter bons resultados.
31
Grafos de Bruijn – Topologias
Topologias problemáticas
◦ Erosão (spurs) – geralmente provocadas por erros de sequenciamento.
◦ Bolha (bubble) – caminho que se divide em dois e depois converge novamente no mesmo caminho.
Causados por erros de sequenciamento ou polimorfismo, ambos no meio de reads.
◦ Corda desgastada (frayed rope) – caminhos que convergem e novamente se dividem. Criadas quando há
áreas de repetições (repeat) no genoma.
◦ Ciclo: caminho que converge em si mesmo. Criado por regiões repetidas.
32
erosão bolha corda desgastada ciclo
Topologias problemáticas - Tratamentos
Antes, vamos ler sobre emparelhamento máximo...
Seja um grafo G(V,E) onde V é o conjunto de vértices e E é o conjunto de arestas.
Seja M um conjunto de arestas tal que M ⊂ E.
Emparelhamento máximo: encontrar o maior |M| possível.
Emparelhamento máximo
33
1 2 3
a b c
Topologias problemáticas - Tratamentos
Emparelhamento máximo para erosão:
Para obter o conjunto P, basta calcular as componentes conexas do grafo após o
emparelhamento.
Método para encontrar emparelhamento máximo: Ford-Fulkerson (fluxo em rede).
34
X
Topologias problemáticas - Tratamentos
Emparelhamento máximo para bolha:
P é o conjunto de caminhos obtidos do emparelhamento (é apenas uma das possibilidades).
35
Topologias problemáticas - Tratamentos
Emparelhamento máximo para corda desgastada:
Alterne as arestas excluídas com suas vizinhas para obter mais possibilidades de
emparelhamento 
36
Emparelhamentos novamente...
Para que serve o emparelhamento?
◦ Obter caminhos longos e isolar caminhos curtos.
Mas eu tenho vários emparelhamentos, qual escolher?
◦ Essa decisão pode ser tomada com base no peso das arestas.
◦ Que legal!! Tenho mais um problema: emparelhamento máximo de peso máximo!!
O objetivo é produzir caminhos que abrangerão reads corretos.
Reads incorretos vão ficar isolados em caminhos bastante curtos (exemplo: vértice único).
Esses pequenos caminhos podem ser detectados antes da geração de contigs maiores.
37
Emparelhamento máx. de peso máx.
O peso serve para evitar outras possibilidades de emparelhamento, no caso abaixo não há outra
possibilidade.
Áreas com erro de sequenciamento tendem a ter menos cobertura.
38
SNPs novamente...
SNP é o caso em que dois reads semelhantes possuem uma base diferente no meio de suas
sequências.
Esses SNPs geram topologias cujas possibilidades de emparelhamento não devem ser
descartadas.
Desafio: saber quando é um erro de sequenciamento e quando é um SNP.
Perguntas:
◦ Qual é a topologia?
◦ Corda desgastada: são claramente situações que ocorrem por repeats.
◦ Mas e se não for tão claro assim para uma outra topologia?
39
Grafos de Bruijn - Assemblers
DNA Euler (Pevzner)
◦ Responsável pela popularização dos grafos de Bruijn.
◦ É melhor tratar o problema de caminho euleriano no grafo de Bruijn do que caminho hamiltoniano 
◦ Vértices de área de repeat são visitados mais de uma vez.
◦ Pevzner propôs a abordagem Eulerian Superpath.
◦ Objetivo: encontrar um super-caminho euleriano que respeite os caminhos de cada read.
40
Grafos de Bruijn - Assemblers
Velvet (Zerbino)
◦ São vários algoritmos para manipulação dos grafos de Bruijn.
◦ Cada nó é um conjunto de k-mers que se sobrepõem em k – 1 bases.
◦ A sequência constituída pelas últimas bases de cada um destes k-mers do nó forma a sequência do nó.
◦ Cada nó N é “colado” a um nó gêmeo Ñ que contém todos os k-mers que representam a sequência
reversa daqueles presentes no nó N.
◦ Bloco: cada par de um nó e seu nó gêmeo.
◦ Se há uma conexão entre A e N, então há uma conexão no sentido inverso entre os seus nós gêmeos Ñ
para Ã.
◦ Todo k-mer é armazenado junto com seu complemento reverso.
◦ Keep calm e vá para o próximo slide...
41
Velvet - estrutura
42
conjunto de k-mers
que se sobrepõem em
k – 1 bases
sequência formada
pelas últimas bases
Eu sou o nó gêmeo 
conexão
conexão inversa
bloco
Grafos de Bruijn - Assemblers
AbySS (Simpson)
◦ Sistemas computacionais distribuídos.
◦ Benefício: superar limitação de memória para grandes e complexos genomas.
◦ Possibilitou a montagem de 3.5 bilhões de reads (genoma humano).
◦ Grafo k-mer distribuído em diversos nós (computadores).
◦ A localização do k-mer deve ser facilmente obtida.
◦ Função hash busca dividir de forma equilibrada o número de vértices em cada nó da rede.
43
Parâmetro k
Já que você é um k-mexpert, vamos falar sobre o tal do k.
Estudos dizem (e o google também):
◦ o k não deve ser menor do que a metade do tamanho do read.
O k tem uma influência significativa na qualidade do assembly!
A escolha do k é um trade-off entre especificidade e sensibilidade.
Se você diminui o k, aumenta a possibilidade de mais ocorrências de um dado k-mer em uma
dada sequência, ou seja, tem-se uma menor especificidade já que a chance de se encontrar
sobreposição entre reads não relacionados de fato aumenta.
Sensibilidade: a chance de encontrar sobreposição que de fato exista entre os fragmentos.
44
Grafos de Bruijn vs OLC
Qual o melhor?
Historicamente:
◦ OLC: long reads
◦ Grafos de Bruijn: short reads
45
Assembly na teoria
Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez.
Qual a sequência solução?
46
CAT
GAT
ATT TTA TAC ACA
CAA
Assembly na teoria
Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez.
Resposta: G
47
CAT
GAT
ATT TTA TAC ACA
CAA
Assembly na teoria
Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez.
Resposta: GA
48
CAT
GAT
ATT TTA TAC ACA
CAA
Assembly na teoria
Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez.
Resposta: GAT
49
CAT
GAT
ATT TTA TAC ACA
CAA
Assembly na teoria
Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez.
Resposta: GATT
50
CAT
GAT
ATT TTA TAC ACA
CAA
Assembly na teoria
Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez.
Resposta: GATTA
51
CAT
GAT
ATT TTA TAC ACA
CAA
Assembly na teoria
Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez.
Resposta: GATTAC
52
CAT
GAT
ATT TTA TAC ACA
CAA
Assembly na teoria
Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez.
Resposta: GATTACA
53
CAT
GAT
ATT TTA TAC ACA
CAA
Assembly na teoria
Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez.
Resposta: GATTACAT
54
CAT
GAT
ATT TTA TAC ACA
CAA
Assembly na teoria
Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez.
Resposta: GATTACATT
55
CAT
GAT
ATT TTA TAC ACA
CAA
Assembly na teoria
Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez.
Resposta: GATTACATTA
56
CAT
GAT
ATT TTA TAC ACA
CAA
Assembly na teoria
Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez.
Resposta: GATTACATTACAA
57
CAT
GAT
ATT TTA TAC ACA
CAA
Assembly na teoria
Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez.
Resposta: GATTACATTACAA
58
CAT
GAT
ATT TTA TAC ACA
CAA
Assembly na prática
Realidade: é muito difícil achar um caminho único por todo o grafo.
Se você não consegue achar um caminho euleriano para o grafo ...
... retorne um conjunto de caminhos cobrindo o grafo, tal que todos os possíveis assemblies
possuam esses caminhos.
O assembly passa a ser um conjunto de caminhos!
Conclusão: se o grafo não for euleriano (e não vai ser mesmo), simplique ele ao máximo para
encontrar subgrafos eulerianos!
59
Assembly na prática
Qual o conjunto de caminhos?
60
GAG AGT GTG
TGACTG GAC ACCACT
GAA AAT ATG
Assembly na prática
Qual o conjunto de caminhos? {ACTGA, TGACC, TGAGTGA, TGAATGA}
61
GAG AGT GTG
TGACTG GAC ACCACT
GAA AAT ATG
Contigs (continuous sequences)
Um contig é um conjunto de sequências sobrepostas.
62
Contigs
Objetivo da montagem: produzir contigs a partir dos short reads!
No grafo: contig é uma sequência formada pelo caminho maximal.
Qual é o contig para o grafo acima?
63
GAT ATG TCT CTG TGA
Contigs
Objetivo da montagem: produzir contigs a partir dos short reads!
No grafo: contig é uma sequência formada pelo caminho maximal.
Qual é o contig para o grafo acima? GATCTGA
64
GAT ATG TCT CTG TGA
Construindo contigs a partir do grafo
Buscar caminhos disjuntos longos (regiões contínuas da molécula de DNA).
Tente achar a cobertura mínima de caminhos
◦ Número mínimo de caminhos disjuntos que consigam abranger todos os vértices do grafo de modo que
tais caminhos comecem e terminem em vértices de grau de entrada e saída iguais a 0.
Por que minimizar o número de caminhos?
◦ Para obter caminhos mais longos.
Contigs mais longos fazem mais sentido biologicamente!
65
minimum edge cover
Construindo contigs a partir do grafo
Construa contigs a partir do grafo:
66
ACT CTG TGC
TGA GCTGAT
Construindo contigs a partir do grafo
Construa contigs a partir do grafo:
67
ACT CTG TGC
TGA GCTGAT
Construindo contigs a partir do grafo
Construa contigs a partir do grafo:
68
ACT CTG TGC
TGA GCTGAT
Construindo contigs a partir do grafo
Construa contigs a partir do grafo:
Contig 1: CTGCTG
69
ACT CTG TGC
TGA GCTGAT
Construindo contigs a partir do grafo
Construa contigs a partir do grafo:
Contig 1: CTGCTG
70
ACT CTG TGC
TGA GCTGAT
Construindo contigs a partir do grafo
Construa contigs a partir do grafo:
Contig 1: CTGCTG, Contig 2: TGAT
71
ACT CTG TGC
TGA GCTGAT
Construindo contigs a partir do grafo
Construa contigs a partir do grafo:
Contig 1: CTGCTG, Contig 2: CTGAT, Contig 3: ACTG
72
ACT CTG TGC
TGA GCTGAT
Qualidade dos contigs
Existem métricas para avaliar a qualidade dos contigs.
Exemplo: N50 (similar a mediana, mas tem um maior peso para contigs mais longos).
Digamos que a sua montagem produziu 8 contigs de tamanhos:
◦ 3, 3, 15, 24, 39, 45, 54 e 114.
Para obter o N50, basta ordenar os contigs em ordem descrescente do tamanho e somar 1 a 1...
Quando a soma ultrapassar a metade (N50), o tamanho do contig da vez é o N50.
Para o nosso exemplo:
◦ Soma total dos tamanhos: 300 (150 é a metade)
◦ Soma = 114 + 54 = 168 > 150 (opa, passou da metade)
◦ Conclusão: o N50 seria o contig de tamanho 54.
73
Scaffolds (supercontigs)
Que tal juntar os contigs?
A informação de que dois contigs são vizinhos é muito importante.
Conjuntos de contigs que podem ser colocados numa mesma região são chamados de scaffolds.
Scaffolds = contigs maiores incluindo gaps.
74
gap
Scaffolds (supercontigs)
Como podemos modelar a construção de scaffolds em grafos?
◦ Contigs correspondem aos nós.
◦ A conexão de pares de read correspondem às arestas.
◦ Caminho de custo mínimo (problema de otimização).
Scaffolding problem: determinar a orientação, ordem dos contigs e os tamanhos dos gaps entre
contigs consecutivos. Isso é um desafio!
É possível saber a distância entre os reads através da construção da biblioteca e, com isso,
estimar a distância entre contigs.
Exemplos de scaffolders: Velvet, GRASS
75
Como os assemblers trabalham?
De uma maneira bem simples e resumida:
◦ Utilizam os reads como entrada para a construção do grafo.
◦ Correção nos grafos: erros de sequenciamento são removidos.
◦ Simple paths (contigs) são retornados e eventualmente scaffolds.
76
Como os assemblers trabalham?
Os montadores geralmente aplicam uma tecnologia de montagem de acordo com o tipo de read
que eles manipulam.
Para short reads, a abordagem de grafo de Bruijn é bastante utilizada.
Percebe-se que a estrutura de grafos k-mer é a mais utilizada entre os assemblers.
Tendência: os montadores mais novos são os que mais utilizam os grafos k-mer.
◦ Por que? Evita comparação par a par de sobreposição (isso é muito custoso).
77
Assemblers vs Tecnologia
78
Genoma da cana-de-açúcar
A construção de um método que consiga extrair informações relevantes do grafo de Bruijn é
muito importante para uma melhor compreensão do genoma de uma espécie.
A cana tem uma grande importância econômica (biocombustíveis).
A cana possui um genoma complexo
◦ Poliploide
◦ Genoma extenso
◦ Repetições
A identificação de variações genéticas através de um método que utilize os grafos de Bruijn
podem contribuir para uma melhor compreensão do genoma dessa espécie.
Filosofia: compreender para melhorar...
79
Grafos de Bruijn - Código
Uma simples implementação de DBG em Python:
◦ https://github.com/marcoscastro/bruijn_graph
80
Dúvidas?
81
mcastrosouza@live.com

Mais conteúdo relacionado

Mais procurados

Teste do Qui quadrado
Teste do Qui quadradoTeste do Qui quadrado
Teste do Qui quadradoFabiane Paim
 
Marcadores moleculares em plantas
Marcadores moleculares em plantasMarcadores moleculares em plantas
Marcadores moleculares em plantasUERGS
 
PCR- Reação em cadeia pela DNA POLIMERASE!
PCR- Reação em cadeia pela DNA POLIMERASE!PCR- Reação em cadeia pela DNA POLIMERASE!
PCR- Reação em cadeia pela DNA POLIMERASE!Hemilly Rayanne
 
Aprendizagem por reforço
Aprendizagem por reforçoAprendizagem por reforço
Aprendizagem por reforçoLuís Nunes
 
Anotação molecular
Anotação molecularAnotação molecular
Anotação molecularUERGS
 
Aula 12 – Sistema de Numeração (Conversão de Bases)
Aula 12 – Sistema de Numeração (Conversão de Bases)Aula 12 – Sistema de Numeração (Conversão de Bases)
Aula 12 – Sistema de Numeração (Conversão de Bases)Vitor Hugo Melo Araújo
 
Aprendizado de máquina
Aprendizado de máquinaAprendizado de máquina
Aprendizado de máquinaparasite
 
Labirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafosLabirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafosBruno Oliveira
 
Aula 1 introdução e estatística descritiva
Aula 1   introdução e  estatística descritivaAula 1   introdução e  estatística descritiva
Aula 1 introdução e estatística descritivaRodrigo Rodrigues
 
2015 functional genomics variant annotation and interpretation- tools and p...
2015 functional genomics   variant annotation and interpretation- tools and p...2015 functional genomics   variant annotation and interpretation- tools and p...
2015 functional genomics variant annotation and interpretation- tools and p...Gabe Rudy
 
Coeficiente de variação
Coeficiente de variaçãoCoeficiente de variação
Coeficiente de variaçãoTuane Paixão
 
Graph kernels
Graph kernelsGraph kernels
Graph kernelsLuc Brun
 

Mais procurados (20)

Estrutura do gene
Estrutura do geneEstrutura do gene
Estrutura do gene
 
Teste do Qui quadrado
Teste do Qui quadradoTeste do Qui quadrado
Teste do Qui quadrado
 
Marcadores moleculares em plantas
Marcadores moleculares em plantasMarcadores moleculares em plantas
Marcadores moleculares em plantas
 
PCR- Reação em cadeia pela DNA POLIMERASE!
PCR- Reação em cadeia pela DNA POLIMERASE!PCR- Reação em cadeia pela DNA POLIMERASE!
PCR- Reação em cadeia pela DNA POLIMERASE!
 
Analise de clusters
Analise de clustersAnalise de clusters
Analise de clusters
 
Aprendizagem por reforço
Aprendizagem por reforçoAprendizagem por reforço
Aprendizagem por reforço
 
Anotação molecular
Anotação molecularAnotação molecular
Anotação molecular
 
Aula 12 – Sistema de Numeração (Conversão de Bases)
Aula 12 – Sistema de Numeração (Conversão de Bases)Aula 12 – Sistema de Numeração (Conversão de Bases)
Aula 12 – Sistema de Numeração (Conversão de Bases)
 
Principal component analysis
Principal component analysisPrincipal component analysis
Principal component analysis
 
Pcr
Pcr Pcr
Pcr
 
Aprendizado de máquina
Aprendizado de máquinaAprendizado de máquina
Aprendizado de máquina
 
Labirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafosLabirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafos
 
Grafos
GrafosGrafos
Grafos
 
Rnn and lstm
Rnn and lstmRnn and lstm
Rnn and lstm
 
Análise de Agrupamentos (Clusters)
Análise de Agrupamentos (Clusters)Análise de Agrupamentos (Clusters)
Análise de Agrupamentos (Clusters)
 
Aula 1 introdução e estatística descritiva
Aula 1   introdução e  estatística descritivaAula 1   introdução e  estatística descritiva
Aula 1 introdução e estatística descritiva
 
07 writer
07   writer07   writer
07 writer
 
2015 functional genomics variant annotation and interpretation- tools and p...
2015 functional genomics   variant annotation and interpretation- tools and p...2015 functional genomics   variant annotation and interpretation- tools and p...
2015 functional genomics variant annotation and interpretation- tools and p...
 
Coeficiente de variação
Coeficiente de variaçãoCoeficiente de variação
Coeficiente de variação
 
Graph kernels
Graph kernelsGraph kernels
Graph kernels
 

Destaque

ALgoritmo Genético - Escalonamento
ALgoritmo Genético - EscalonamentoALgoritmo Genético - Escalonamento
ALgoritmo Genético - EscalonamentoAdilmar Dantas
 
Bioinformática com Rosalind utilizando Python
Bioinformática com Rosalind utilizando PythonBioinformática com Rosalind utilizando Python
Bioinformática com Rosalind utilizando PythonMarcos Castro
 
Bioinformática com Biopython
Bioinformática com BiopythonBioinformática com Biopython
Bioinformática com BiopythonMarcos Castro
 
Ferramentas para Bioinformática
Ferramentas para BioinformáticaFerramentas para Bioinformática
Ferramentas para BioinformáticaMarcos Castro
 
A importância da Bioinformática
A importância da BioinformáticaA importância da Bioinformática
A importância da BioinformáticaMarcos Castro
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizadosThiago Ghisi
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de SoftwareMaurício Aniche
 
Computação com DNA - Modelo baseado em Stickers
Computação com DNA - Modelo baseado em StickersComputação com DNA - Modelo baseado em Stickers
Computação com DNA - Modelo baseado em StickersMarcos Castro
 
Apresentação Python e Games - Python Brasil 11 - 2015
Apresentação Python e Games - Python Brasil 11 - 2015Apresentação Python e Games - Python Brasil 11 - 2015
Apresentação Python e Games - Python Brasil 11 - 2015Julio Cesar Eiras Melanda
 
qt-project.org and Qt 5
qt-project.org and Qt 5qt-project.org and Qt 5
qt-project.org and Qt 5thiagomacieira
 
Aprendizagem Supervisionada I
Aprendizagem Supervisionada IAprendizagem Supervisionada I
Aprendizagem Supervisionada ILuís Nunes
 
Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)Marcos Castro
 
Algoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMPAlgoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMPMarcos Castro
 
Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de ProgramaçãoMarcos Castro
 
Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Marcos Castro
 
Árvores de Decisão
Árvores de DecisãoÁrvores de Decisão
Árvores de DecisãoMarcos Castro
 

Destaque (20)

ALgoritmo Genético - Escalonamento
ALgoritmo Genético - EscalonamentoALgoritmo Genético - Escalonamento
ALgoritmo Genético - Escalonamento
 
Bioinformática com Rosalind utilizando Python
Bioinformática com Rosalind utilizando PythonBioinformática com Rosalind utilizando Python
Bioinformática com Rosalind utilizando Python
 
Bioinformática com Biopython
Bioinformática com BiopythonBioinformática com Biopython
Bioinformática com Biopython
 
Ferramentas para Bioinformática
Ferramentas para BioinformáticaFerramentas para Bioinformática
Ferramentas para Bioinformática
 
A importância da Bioinformática
A importância da BioinformáticaA importância da Bioinformática
A importância da Bioinformática
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de Software
 
Bioinformática
BioinformáticaBioinformática
Bioinformática
 
Bioinformática
BioinformáticaBioinformática
Bioinformática
 
Computação com DNA - Modelo baseado em Stickers
Computação com DNA - Modelo baseado em StickersComputação com DNA - Modelo baseado em Stickers
Computação com DNA - Modelo baseado em Stickers
 
Apresentação Python e Games - Python Brasil 11 - 2015
Apresentação Python e Games - Python Brasil 11 - 2015Apresentação Python e Games - Python Brasil 11 - 2015
Apresentação Python e Games - Python Brasil 11 - 2015
 
qt-project.org and Qt 5
qt-project.org and Qt 5qt-project.org and Qt 5
qt-project.org and Qt 5
 
Aprendizagem Supervisionada I
Aprendizagem Supervisionada IAprendizagem Supervisionada I
Aprendizagem Supervisionada I
 
Apostila grafos
Apostila grafosApostila grafos
Apostila grafos
 
Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)
 
Algoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMPAlgoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMP
 
Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de Programação
 
Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)
 
IDE Falcon C++
IDE Falcon C++IDE Falcon C++
IDE Falcon C++
 
Árvores de Decisão
Árvores de DecisãoÁrvores de Decisão
Árvores de Decisão
 

Semelhante a Grafos de Bruijn para identificação de variações genéticas usando GBS

Agrupamento de sequências biológicas
Agrupamento de sequências biológicasAgrupamento de sequências biológicas
Agrupamento de sequências biológicasMarcos Castro
 
Inteligência Artificial Parte 6 [IA]
Inteligência Artificial Parte 6 [IA]Inteligência Artificial Parte 6 [IA]
Inteligência Artificial Parte 6 [IA]ronaldo ramos
 
Colored de Bruijn Graphs
Colored de Bruijn GraphsColored de Bruijn Graphs
Colored de Bruijn GraphsMarcos Castro
 
Com red2011q1mirisola grafosaleatoriossmallworld
Com red2011q1mirisola grafosaleatoriossmallworldCom red2011q1mirisola grafosaleatoriossmallworld
Com red2011q1mirisola grafosaleatoriossmallworldGabriel Teodoro
 
Inteligencia artificial 2
Inteligencia artificial 2Inteligencia artificial 2
Inteligencia artificial 2Nauber Gois
 
Manual solucoes-redes-tanenbaum
Manual solucoes-redes-tanenbaumManual solucoes-redes-tanenbaum
Manual solucoes-redes-tanenbaumJoao Sousa
 
Redes Neurais Aplicacoes
Redes Neurais AplicacoesRedes Neurais Aplicacoes
Redes Neurais Aplicacoessemanact2007
 
Aula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoAula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoEduardo de Lucena Falcão
 
Algorítimos Genéticos
Algorítimos GenéticosAlgorítimos Genéticos
Algorítimos Genéticosiaudesc
 
Introdução às Redes Neurais - Parte 2/2
Introdução às Redes Neurais - Parte 2/2Introdução às Redes Neurais - Parte 2/2
Introdução às Redes Neurais - Parte 2/2Bruno Catão
 
Sequencias e-series
Sequencias e-seriesSequencias e-series
Sequencias e-seriesjhujha
 
Particionamento cassandra
Particionamento   cassandraParticionamento   cassandra
Particionamento cassandraserdg
 
Manual solucoes redes_tanenbaum
Manual solucoes redes_tanenbaumManual solucoes redes_tanenbaum
Manual solucoes redes_tanenbaumredesinforma
 

Semelhante a Grafos de Bruijn para identificação de variações genéticas usando GBS (20)

Agrupamento de sequências biológicas
Agrupamento de sequências biológicasAgrupamento de sequências biológicas
Agrupamento de sequências biológicas
 
Inteligência Artificial Parte 6 [IA]
Inteligência Artificial Parte 6 [IA]Inteligência Artificial Parte 6 [IA]
Inteligência Artificial Parte 6 [IA]
 
Big data
Big dataBig data
Big data
 
Colored de Bruijn Graphs
Colored de Bruijn GraphsColored de Bruijn Graphs
Colored de Bruijn Graphs
 
Com red2011q1mirisola grafosaleatoriossmallworld
Com red2011q1mirisola grafosaleatoriossmallworldCom red2011q1mirisola grafosaleatoriossmallworld
Com red2011q1mirisola grafosaleatoriossmallworld
 
Inteligencia artificial 2
Inteligencia artificial 2Inteligencia artificial 2
Inteligencia artificial 2
 
Manual solucoes-redes-tanenbaum
Manual solucoes-redes-tanenbaumManual solucoes-redes-tanenbaum
Manual solucoes-redes-tanenbaum
 
Redes Neurais Aplicacoes
Redes Neurais AplicacoesRedes Neurais Aplicacoes
Redes Neurais Aplicacoes
 
Aula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoAula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvido
 
Grafos
GrafosGrafos
Grafos
 
4 groebner danton4 dissertacao
4 groebner danton4 dissertacao4 groebner danton4 dissertacao
4 groebner danton4 dissertacao
 
Algorítimos Genéticos
Algorítimos GenéticosAlgorítimos Genéticos
Algorítimos Genéticos
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
Palestra simulação3
Palestra simulação3Palestra simulação3
Palestra simulação3
 
Redes Neuronais
Redes NeuronaisRedes Neuronais
Redes Neuronais
 
Introdução às Redes Neurais - Parte 2/2
Introdução às Redes Neurais - Parte 2/2Introdução às Redes Neurais - Parte 2/2
Introdução às Redes Neurais - Parte 2/2
 
Sequencias e-series
Sequencias e-seriesSequencias e-series
Sequencias e-series
 
Particionamento cassandra
Particionamento   cassandraParticionamento   cassandra
Particionamento cassandra
 
Expert Systems Enabled for WEB Using Inference Based Hyperlink
Expert Systems Enabled for WEB Using  Inference Based  HyperlinkExpert Systems Enabled for WEB Using  Inference Based  Hyperlink
Expert Systems Enabled for WEB Using Inference Based Hyperlink
 
Manual solucoes redes_tanenbaum
Manual solucoes redes_tanenbaumManual solucoes redes_tanenbaum
Manual solucoes redes_tanenbaum
 

Mais de Marcos Castro

Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de ProgramaçãoMarcos Castro
 
Redes Neurais Artificiais
Redes Neurais ArtificiaisRedes Neurais Artificiais
Redes Neurais ArtificiaisMarcos Castro
 
Problema do Caixeiro Viajante
Problema do Caixeiro ViajanteProblema do Caixeiro Viajante
Problema do Caixeiro ViajanteMarcos Castro
 
Metaheurística Simulated Annealing
Metaheurística Simulated AnnealingMetaheurística Simulated Annealing
Metaheurística Simulated AnnealingMarcos Castro
 
Expressões Regulares com Python 3
Expressões Regulares com Python 3Expressões Regulares com Python 3
Expressões Regulares com Python 3Marcos Castro
 
Programação dinâmica
Programação dinâmicaProgramação dinâmica
Programação dinâmicaMarcos Castro
 
Busca em largura - BFS
Busca em largura - BFSBusca em largura - BFS
Busca em largura - BFSMarcos Castro
 
Análise Assintótica
Análise AssintóticaAnálise Assintótica
Análise AssintóticaMarcos Castro
 
Listas, tuplas, conjuntos e dicionários
Listas, tuplas, conjuntos e dicionáriosListas, tuplas, conjuntos e dicionários
Listas, tuplas, conjuntos e dicionáriosMarcos Castro
 
Python - Dicionários
Python - DicionáriosPython - Dicionários
Python - DicionáriosMarcos Castro
 
Backtracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntosBacktracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntosMarcos Castro
 
Longest palindromic subsequence (LPS)
Longest palindromic subsequence (LPS)Longest palindromic subsequence (LPS)
Longest palindromic subsequence (LPS)Marcos Castro
 
Estruturas de dados com C++ e STL
Estruturas de dados com C++ e STLEstruturas de dados com C++ e STL
Estruturas de dados com C++ e STLMarcos Castro
 

Mais de Marcos Castro (19)

Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de Programação
 
Arquivos FASTQ
Arquivos FASTQArquivos FASTQ
Arquivos FASTQ
 
Redes Neurais Artificiais
Redes Neurais ArtificiaisRedes Neurais Artificiais
Redes Neurais Artificiais
 
Problema do Caixeiro Viajante
Problema do Caixeiro ViajanteProblema do Caixeiro Viajante
Problema do Caixeiro Viajante
 
Metaheurística Simulated Annealing
Metaheurística Simulated AnnealingMetaheurística Simulated Annealing
Metaheurística Simulated Annealing
 
Expressões Regulares com Python 3
Expressões Regulares com Python 3Expressões Regulares com Python 3
Expressões Regulares com Python 3
 
Algoritmos gulosos
Algoritmos gulososAlgoritmos gulosos
Algoritmos gulosos
 
Programação dinâmica
Programação dinâmicaProgramação dinâmica
Programação dinâmica
 
Busca em largura - BFS
Busca em largura - BFSBusca em largura - BFS
Busca em largura - BFS
 
Análise Assintótica
Análise AssintóticaAnálise Assintótica
Análise Assintótica
 
Listas, tuplas, conjuntos e dicionários
Listas, tuplas, conjuntos e dicionáriosListas, tuplas, conjuntos e dicionários
Listas, tuplas, conjuntos e dicionários
 
Python - Set
Python - SetPython - Set
Python - Set
 
Python - Dicionários
Python - DicionáriosPython - Dicionários
Python - Dicionários
 
Tabela Hash
Tabela HashTabela Hash
Tabela Hash
 
Binary heap
Binary heapBinary heap
Binary heap
 
Fila de prioridades
Fila de prioridadesFila de prioridades
Fila de prioridades
 
Backtracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntosBacktracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntos
 
Longest palindromic subsequence (LPS)
Longest palindromic subsequence (LPS)Longest palindromic subsequence (LPS)
Longest palindromic subsequence (LPS)
 
Estruturas de dados com C++ e STL
Estruturas de dados com C++ e STLEstruturas de dados com C++ e STL
Estruturas de dados com C++ e STL
 

Grafos de Bruijn para identificação de variações genéticas usando GBS

  • 1. Grafos de Bruijn para identificação de variações genéticas usando GBS MARCOS CASTRO GRUPO DE BIOINFORMÁTICA - UNIFESP
  • 2. Grafos ... - Conjunto de bolinhas (vértices ou nós) e linhas (arestas ou arcos). ◦ vértices: entidades (exemplo: uma pessoa) ◦ arestas: relação entre as entidades (exemplo: Adenina é amiga da Guanina) Adenina Guanina amiga 2
  • 3. ... de Bruijn ... Nicolaas de Bruijn (1946) ◦ superstring problem: encontrar a menor superstring circular que contém todas as possíveis substrings de tamanho “k” de um dado alfabeto. ◦ Supor o alfabeto de dois elementos (n = 2) {0, 1} e k = 3 ◦ k-mers: substrings de tamanho “k” ◦ Se k = 3, então temos 3-mers ◦ Todos os 3-mers: 000, 001, 010, 011, 100, 101, 110, 111 (total de mers: n ^ k) ◦ A menor superstring circular é: 0001110100 ◦ Essa superstring contém todos os 3-mers onde cada 3-mer aparece apenas uma vez. ◦ Como resolver? Dica: pontes de Konigsberg exponenciação Isso é um grafo. 3
  • 4. .... de Bruijn .... Nó: (k – 1)-mer Aresta: liga um (k – 1)-mer a outro (k – 1)-mer se o sufixo do primeiro for igual ao prefixo do segundo. Arestas representam todos os possíveis k-mers. Um ciclo euleriano representa a menor superstring que contém cada k-mer apenas uma vez. Solução: algoritmo de Euler. 001 010 0010 4
  • 5. ..... de Bruijn ..... Importante: ◦ Ciclo euleriano: inicia em um nó, visita cada aresta apenas uma vez e retorna ao nó de origem Se as arestas representam todos os possíveis k-mers... ... então foi por isso que o matemático Nicolaas de Bruijn conseguiu formar a menor superstring contendo todos os k-mers onde cada k-mer aparece somente uma vez! E se ao invés de euleriano, tivéssemos um ciclo hamiltoniano? ◦ Problema NP-Completo ◦ Caixeiro-viajante ◦ Não se conhece um algoritmo eficiente para achar ciclo hamiltoniano! 5
  • 6. ... identificação de variações genéticas ... Diferença entre os indivíduos. Exemplo de forma de variação genética: SNP. SNP = polimorfismo de base única A detecção de variações genéticas é importante para o entendimento evolutivo! 6
  • 7. ... usando GBS GBS = genotipagem por sequenciamento. É um método para descoberta de marcadores moleculares e genotipagem de alto desempenho. ◦ Exemplo de marcador molecular: SNP ◦ Genotipagem: processo de definir o genótipo. ◦ Genótipo: conjunto de genes. ◦ Gene: segmento de uma molécula de DNA. Vantagens da técnica de GBS: ◦ Produz um grande volume de dados em pouco tempo (rápido) ◦ Baixo custo Por que o interesse em SNP? ◦ Supor uma doença que é causada por um único nucleotídeo diferente em um único gene. 7
  • 8. Sequenciando... Sequenciar: determinar a sequência de nucleotídeos de uma molécula de DNA. Os sequenciadores não conseguem trabalhar com a molécula de DNA completa de uma vez... ◦ Solução: shotgun (quebra em fragmentos) genoma fragmentos 8
  • 9. Por que sequenciar? Para compreender melhor o genoma de uma determinada espécie, levantar as causas de possíveis doenças, indicar tratamentos adequados, entender melhor como a vida funciona, selecionar os melhores indivíduos... 9
  • 10. Métodos de sequenciamento Sanger (1977) foi o primeiro. Sanger foi superado pelas tecnologias NGS (next-gen sequencing). Melhorias do NGS: rapidez, custo, necessita de menos DNA ... Exemplo de sequenciadores: Illumina, Solid. Uma das vantagens do Illumina: custo relativamente baixo. Tecnologias NGS geram milhares de reads por amostra. ◦ Revolução ◦ Grande volume de dados (big data) ◦ Desafios? fragmento de DNA sequenciado 10
  • 11. Desafios Big Data No Sanger não havia tantos dado$$$. Tecnologias NGS produzem (muitos)^10 dados. ◦ Alto grau de paralelismo O que fazer com um dilúvio de dados? ◦ Preciso pensar em métodos que processem tudo isso rapidamente! ◦ Novos algoritmos, softwares... Objetivo: fazer com que esses dados façam algum sentido. Produzir conhecimento a partir do processamento e análise dos dados. Tirar algum proveito das informações contidas nos milhares de reads! 11
  • 12. Tamanho dos reads – Sanger vs NGS Lembrando: reads são fragmentos sequenciados Sanger: 800-1000 pb NGS: 35-100 pb Conclusão: tecnologias NGS produzem reads menores (short reads). Qual a consequência disso? NGS sacrifica o comprimento do read em detrimento da velocidade. Short reads: custo menor. Short reads adicionam uma dificuldade a mais no pós-sequenciamento: montagem. 12 ponto fraco
  • 13. Nem tão “short” assim... Quando surgiram, as tecnologias NGS produziam sequências muito curtas. Ao longo dos últimos anos, o tamanho médio dos reads NGS vem se aproximando do tamanho médio conseguido por reads baseados na técnica de Sanger. ◦ Pesquise sobre pirosequenciamento. 13
  • 14. Montagem E depois do sequenciamento? É preciso realizar a montagem. Montagem = reconstrução da sequência original (sequence assembly). Analogia: quebra-cabeça. Princípio básico: sobreposição (overlap). Como representar a sobreposição? 14
  • 16. Short reads, big challenges É mais complexo se trabalhar com montagem de short reads. Quanto menor o fragmento, mais complexo é o processo de montagem. A possibilidade de ocorrer sobreposição é maior porque as regiões se repetem. Diminui a possibilidade de unir corretamente estas sobreposições. Desafio: lidar com o problema das repetições! Diante desse novo cenário, novas ferramentas de montagem precisam ser desenvolvidas. 16
  • 17. Montagem - Complexidade Grande número de fragmentos + Erros de sequenciamento = Problema NP-Difícil Os assemblers, através de uma série de pré e pós-processamentos nos dados, tentam eliminar ou pelo menos diminuir os desafios. 17
  • 18. Montagem – mais problemas... Os montadores precisam lidar com topologias problemáticas nos grafos que modelam as relações entre os reads. Vamos ver essas topologias mais para frente, mas elas são causadas basicamente por: ◦ Repetições do genoma ◦ Polimorfismos ◦ Erros de sequenciamento Isso tudo afeta o processo de montagem tornando-o mais custoso computacionalmente! 18
  • 19. Tipos de montagens 1) O bioinformata possui um genoma de referência ◦ Compara-se áreas semelhantes entre os dois genomas para alinhamento das sequências. 2) O bioinformata não possui um genoma de referência ◦ Tem-se apenas a informação gerada pelos sequenciadores. ◦ Chamada montagem de novo (ab initio) A montagem de novo é um problema NP-Difícil [Pop, 2009]. Problema NP-Difícil, analogia: procurar uma agulha na floresta Amazônica. Um campo de busca muito extenso! 19
  • 20. Montagem – Abordagens (paradigmas) Existem algumas abordagens para realizar a montagem de genomas: ◦ Estratégia gulosa (greedy algorithms) ◦ OLC (overlap-layout-consensus) ◦ Metaheurísticas (exemplo: algoritmos genéticos) ◦ Grafos De Bruijn 20
  • 21. Algoritmos gulosos (greedy) Paradigma guloso: faz escolhas locais. Algoritmo: ◦ 1) Realizam-se os alinhamentos par a par de todos os fragmentos; ◦ 2) Escolhe-se dois fragmentos com a maior sobreposição; ◦ 3) Junta-se os fragmentos escolhidos; ◦ 4) Repete-se os passos 2 e 3 até restar somente um fragmento. Algoritmos gulosos são “míopes”, não enxergam mais para frente. Imagine regiões repetidas que sejam mais extensas do que o tamanho dos reads... A utilização da informação global (maior abrangência) é prejudicada pelas escolhas locais. Essa abordagem não funciona bem com short reads. 21
  • 22. Algoritmos gulosos (greedy) Existem alguns assemblers que se baseiam no paradigma guloso. Exemplos: Phrap, SSAKE, SHARCGS. VCAKE Por que eles geram resultados diferentes? ◦ Eles se baseiam em algoritmos gulosos, mas cada um realiza processamentos diferentes que levam a resultados diferentes. 22
  • 23. OLC (overlap-layout-consensus) Cada read é representado por um nó (vértice). A aresta é determinada pela sobreposição entre os fragmentos (reads). Primeiro realiza-se um processo de comparação par a par dos reads. ◦ Muito custoso, tempo quadrático para realizar as comparações. Considere k = 3: ◦ ACTGCT ◦ CTGCT (overlap de tamanho 5) ◦ GCTAA (overlap de tamanho 3) 23 ACTGCT CTGCT GCTAA
  • 24. Metaheurísticas Exemplo: Algoritmo Genético (GA) Possível modelagem: ◦ k genes ◦ Cada gene armazena um read ◦ Um bom indivíduo da população possui genes adjacentes que compartilham sobreposições entre um sufixo do gene “i” e um prefixo do gene “j”. ◦ A sequência consenso seria a união de todas as sobreposições entre os genes consecutivos. ◦ read1: ACTGAC ◦ read2: GACTCG 24 R1 R2Indivíduo: read1 read2
  • 25. Grafos de Bruijn (DBG) Não representa diretamente os reads. ◦ Cada read é representado por várias substrings de tamanho k. ◦ Cada read de tamanho k possui sobreposição de k – 1 caracteres com seus vizinhos. Os nós são todos os k-mers (substrings de tamanho k). Arestas correspondem a exatamente (k – 1)-overlaps entre os nós (edge centric definition). O sufixo (k – 2) tem que ser igual ao prefixo (k – 2). Considere ACTG, se k = 3 então temos dois k-mers: {ACT, CTG} 25 ACT CTG
  • 26. Grafos de Bruijn E se eu tiver vários reads? Exemplo de reads: ◦ ACTG ◦ CTGC ◦ TGCT Considere k = 3, todos os 3-mers: {ACT, CTG, TGC, GCT} 26 ACT CTG TGC GCT
  • 27. Grafos de Bruijn E se adicionarmos uma redundância? Reads: ◦ ACTG ◦ ACTG ◦ CTGC ◦ CTGC ◦ TGCT 27 ACT CTG TGC GCT
  • 28. Grafos de Bruijn Um erro de sequenciamento (ao final de um read): Reads: ◦ ACTG ◦ CTGC ◦ CTGA ◦ TGCT 28 ACT CTG TGC GCT TGA desse read originou o k-mer TGA
  • 29. Grafos de Bruijn Qual o efeito de um SNP (ou um erro de sequenciamento dentro de um read)? Considere os reads e k = 3: ◦ AGTCTGA ◦ AGTTTGA 29 AGT GTT TTT TTG TGA GTC TCT CTG
  • 30. Grafos de Bruijn Qual o efeito de uma pequena repetição (repeat) no grafo? Considere os reads e k = 3: ◦ ACTG ◦ CTGC ◦ TGCT ◦ GCTG ◦ CTGA ◦ TGAT 30 ACT CTG TGC GAT TGA GCT
  • 31. Grafos de Bruijn Não faz o processo de comparação par a par como na abordagem OLC. Bastante empregado para short reads (Illumina data). São permitidas apenas sobreposições exatas. Possibilidade de abordagem via circuito hamiltoniano e euleriano. Encontrar caminho euleriano é a base do assembler EULER (Pevzner). É aconselhável fazer correções de erros antes e após a montagem para obter bons resultados. 31
  • 32. Grafos de Bruijn – Topologias Topologias problemáticas ◦ Erosão (spurs) – geralmente provocadas por erros de sequenciamento. ◦ Bolha (bubble) – caminho que se divide em dois e depois converge novamente no mesmo caminho. Causados por erros de sequenciamento ou polimorfismo, ambos no meio de reads. ◦ Corda desgastada (frayed rope) – caminhos que convergem e novamente se dividem. Criadas quando há áreas de repetições (repeat) no genoma. ◦ Ciclo: caminho que converge em si mesmo. Criado por regiões repetidas. 32 erosão bolha corda desgastada ciclo
  • 33. Topologias problemáticas - Tratamentos Antes, vamos ler sobre emparelhamento máximo... Seja um grafo G(V,E) onde V é o conjunto de vértices e E é o conjunto de arestas. Seja M um conjunto de arestas tal que M ⊂ E. Emparelhamento máximo: encontrar o maior |M| possível. Emparelhamento máximo 33 1 2 3 a b c
  • 34. Topologias problemáticas - Tratamentos Emparelhamento máximo para erosão: Para obter o conjunto P, basta calcular as componentes conexas do grafo após o emparelhamento. Método para encontrar emparelhamento máximo: Ford-Fulkerson (fluxo em rede). 34 X
  • 35. Topologias problemáticas - Tratamentos Emparelhamento máximo para bolha: P é o conjunto de caminhos obtidos do emparelhamento (é apenas uma das possibilidades). 35
  • 36. Topologias problemáticas - Tratamentos Emparelhamento máximo para corda desgastada: Alterne as arestas excluídas com suas vizinhas para obter mais possibilidades de emparelhamento  36
  • 37. Emparelhamentos novamente... Para que serve o emparelhamento? ◦ Obter caminhos longos e isolar caminhos curtos. Mas eu tenho vários emparelhamentos, qual escolher? ◦ Essa decisão pode ser tomada com base no peso das arestas. ◦ Que legal!! Tenho mais um problema: emparelhamento máximo de peso máximo!! O objetivo é produzir caminhos que abrangerão reads corretos. Reads incorretos vão ficar isolados em caminhos bastante curtos (exemplo: vértice único). Esses pequenos caminhos podem ser detectados antes da geração de contigs maiores. 37
  • 38. Emparelhamento máx. de peso máx. O peso serve para evitar outras possibilidades de emparelhamento, no caso abaixo não há outra possibilidade. Áreas com erro de sequenciamento tendem a ter menos cobertura. 38
  • 39. SNPs novamente... SNP é o caso em que dois reads semelhantes possuem uma base diferente no meio de suas sequências. Esses SNPs geram topologias cujas possibilidades de emparelhamento não devem ser descartadas. Desafio: saber quando é um erro de sequenciamento e quando é um SNP. Perguntas: ◦ Qual é a topologia? ◦ Corda desgastada: são claramente situações que ocorrem por repeats. ◦ Mas e se não for tão claro assim para uma outra topologia? 39
  • 40. Grafos de Bruijn - Assemblers DNA Euler (Pevzner) ◦ Responsável pela popularização dos grafos de Bruijn. ◦ É melhor tratar o problema de caminho euleriano no grafo de Bruijn do que caminho hamiltoniano  ◦ Vértices de área de repeat são visitados mais de uma vez. ◦ Pevzner propôs a abordagem Eulerian Superpath. ◦ Objetivo: encontrar um super-caminho euleriano que respeite os caminhos de cada read. 40
  • 41. Grafos de Bruijn - Assemblers Velvet (Zerbino) ◦ São vários algoritmos para manipulação dos grafos de Bruijn. ◦ Cada nó é um conjunto de k-mers que se sobrepõem em k – 1 bases. ◦ A sequência constituída pelas últimas bases de cada um destes k-mers do nó forma a sequência do nó. ◦ Cada nó N é “colado” a um nó gêmeo Ñ que contém todos os k-mers que representam a sequência reversa daqueles presentes no nó N. ◦ Bloco: cada par de um nó e seu nó gêmeo. ◦ Se há uma conexão entre A e N, então há uma conexão no sentido inverso entre os seus nós gêmeos Ñ para Ã. ◦ Todo k-mer é armazenado junto com seu complemento reverso. ◦ Keep calm e vá para o próximo slide... 41
  • 42. Velvet - estrutura 42 conjunto de k-mers que se sobrepõem em k – 1 bases sequência formada pelas últimas bases Eu sou o nó gêmeo  conexão conexão inversa bloco
  • 43. Grafos de Bruijn - Assemblers AbySS (Simpson) ◦ Sistemas computacionais distribuídos. ◦ Benefício: superar limitação de memória para grandes e complexos genomas. ◦ Possibilitou a montagem de 3.5 bilhões de reads (genoma humano). ◦ Grafo k-mer distribuído em diversos nós (computadores). ◦ A localização do k-mer deve ser facilmente obtida. ◦ Função hash busca dividir de forma equilibrada o número de vértices em cada nó da rede. 43
  • 44. Parâmetro k Já que você é um k-mexpert, vamos falar sobre o tal do k. Estudos dizem (e o google também): ◦ o k não deve ser menor do que a metade do tamanho do read. O k tem uma influência significativa na qualidade do assembly! A escolha do k é um trade-off entre especificidade e sensibilidade. Se você diminui o k, aumenta a possibilidade de mais ocorrências de um dado k-mer em uma dada sequência, ou seja, tem-se uma menor especificidade já que a chance de se encontrar sobreposição entre reads não relacionados de fato aumenta. Sensibilidade: a chance de encontrar sobreposição que de fato exista entre os fragmentos. 44
  • 45. Grafos de Bruijn vs OLC Qual o melhor? Historicamente: ◦ OLC: long reads ◦ Grafos de Bruijn: short reads 45
  • 46. Assembly na teoria Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez. Qual a sequência solução? 46 CAT GAT ATT TTA TAC ACA CAA
  • 47. Assembly na teoria Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez. Resposta: G 47 CAT GAT ATT TTA TAC ACA CAA
  • 48. Assembly na teoria Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez. Resposta: GA 48 CAT GAT ATT TTA TAC ACA CAA
  • 49. Assembly na teoria Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez. Resposta: GAT 49 CAT GAT ATT TTA TAC ACA CAA
  • 50. Assembly na teoria Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez. Resposta: GATT 50 CAT GAT ATT TTA TAC ACA CAA
  • 51. Assembly na teoria Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez. Resposta: GATTA 51 CAT GAT ATT TTA TAC ACA CAA
  • 52. Assembly na teoria Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez. Resposta: GATTAC 52 CAT GAT ATT TTA TAC ACA CAA
  • 53. Assembly na teoria Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez. Resposta: GATTACA 53 CAT GAT ATT TTA TAC ACA CAA
  • 54. Assembly na teoria Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez. Resposta: GATTACAT 54 CAT GAT ATT TTA TAC ACA CAA
  • 55. Assembly na teoria Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez. Resposta: GATTACATT 55 CAT GAT ATT TTA TAC ACA CAA
  • 56. Assembly na teoria Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez. Resposta: GATTACATTA 56 CAT GAT ATT TTA TAC ACA CAA
  • 57. Assembly na teoria Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez. Resposta: GATTACATTACAA 57 CAT GAT ATT TTA TAC ACA CAA
  • 58. Assembly na teoria Teoria: achar um caminho de comprimento mínimo passando por cada nó pelo menos uma vez. Resposta: GATTACATTACAA 58 CAT GAT ATT TTA TAC ACA CAA
  • 59. Assembly na prática Realidade: é muito difícil achar um caminho único por todo o grafo. Se você não consegue achar um caminho euleriano para o grafo ... ... retorne um conjunto de caminhos cobrindo o grafo, tal que todos os possíveis assemblies possuam esses caminhos. O assembly passa a ser um conjunto de caminhos! Conclusão: se o grafo não for euleriano (e não vai ser mesmo), simplique ele ao máximo para encontrar subgrafos eulerianos! 59
  • 60. Assembly na prática Qual o conjunto de caminhos? 60 GAG AGT GTG TGACTG GAC ACCACT GAA AAT ATG
  • 61. Assembly na prática Qual o conjunto de caminhos? {ACTGA, TGACC, TGAGTGA, TGAATGA} 61 GAG AGT GTG TGACTG GAC ACCACT GAA AAT ATG
  • 62. Contigs (continuous sequences) Um contig é um conjunto de sequências sobrepostas. 62
  • 63. Contigs Objetivo da montagem: produzir contigs a partir dos short reads! No grafo: contig é uma sequência formada pelo caminho maximal. Qual é o contig para o grafo acima? 63 GAT ATG TCT CTG TGA
  • 64. Contigs Objetivo da montagem: produzir contigs a partir dos short reads! No grafo: contig é uma sequência formada pelo caminho maximal. Qual é o contig para o grafo acima? GATCTGA 64 GAT ATG TCT CTG TGA
  • 65. Construindo contigs a partir do grafo Buscar caminhos disjuntos longos (regiões contínuas da molécula de DNA). Tente achar a cobertura mínima de caminhos ◦ Número mínimo de caminhos disjuntos que consigam abranger todos os vértices do grafo de modo que tais caminhos comecem e terminem em vértices de grau de entrada e saída iguais a 0. Por que minimizar o número de caminhos? ◦ Para obter caminhos mais longos. Contigs mais longos fazem mais sentido biologicamente! 65 minimum edge cover
  • 66. Construindo contigs a partir do grafo Construa contigs a partir do grafo: 66 ACT CTG TGC TGA GCTGAT
  • 67. Construindo contigs a partir do grafo Construa contigs a partir do grafo: 67 ACT CTG TGC TGA GCTGAT
  • 68. Construindo contigs a partir do grafo Construa contigs a partir do grafo: 68 ACT CTG TGC TGA GCTGAT
  • 69. Construindo contigs a partir do grafo Construa contigs a partir do grafo: Contig 1: CTGCTG 69 ACT CTG TGC TGA GCTGAT
  • 70. Construindo contigs a partir do grafo Construa contigs a partir do grafo: Contig 1: CTGCTG 70 ACT CTG TGC TGA GCTGAT
  • 71. Construindo contigs a partir do grafo Construa contigs a partir do grafo: Contig 1: CTGCTG, Contig 2: TGAT 71 ACT CTG TGC TGA GCTGAT
  • 72. Construindo contigs a partir do grafo Construa contigs a partir do grafo: Contig 1: CTGCTG, Contig 2: CTGAT, Contig 3: ACTG 72 ACT CTG TGC TGA GCTGAT
  • 73. Qualidade dos contigs Existem métricas para avaliar a qualidade dos contigs. Exemplo: N50 (similar a mediana, mas tem um maior peso para contigs mais longos). Digamos que a sua montagem produziu 8 contigs de tamanhos: ◦ 3, 3, 15, 24, 39, 45, 54 e 114. Para obter o N50, basta ordenar os contigs em ordem descrescente do tamanho e somar 1 a 1... Quando a soma ultrapassar a metade (N50), o tamanho do contig da vez é o N50. Para o nosso exemplo: ◦ Soma total dos tamanhos: 300 (150 é a metade) ◦ Soma = 114 + 54 = 168 > 150 (opa, passou da metade) ◦ Conclusão: o N50 seria o contig de tamanho 54. 73
  • 74. Scaffolds (supercontigs) Que tal juntar os contigs? A informação de que dois contigs são vizinhos é muito importante. Conjuntos de contigs que podem ser colocados numa mesma região são chamados de scaffolds. Scaffolds = contigs maiores incluindo gaps. 74 gap
  • 75. Scaffolds (supercontigs) Como podemos modelar a construção de scaffolds em grafos? ◦ Contigs correspondem aos nós. ◦ A conexão de pares de read correspondem às arestas. ◦ Caminho de custo mínimo (problema de otimização). Scaffolding problem: determinar a orientação, ordem dos contigs e os tamanhos dos gaps entre contigs consecutivos. Isso é um desafio! É possível saber a distância entre os reads através da construção da biblioteca e, com isso, estimar a distância entre contigs. Exemplos de scaffolders: Velvet, GRASS 75
  • 76. Como os assemblers trabalham? De uma maneira bem simples e resumida: ◦ Utilizam os reads como entrada para a construção do grafo. ◦ Correção nos grafos: erros de sequenciamento são removidos. ◦ Simple paths (contigs) são retornados e eventualmente scaffolds. 76
  • 77. Como os assemblers trabalham? Os montadores geralmente aplicam uma tecnologia de montagem de acordo com o tipo de read que eles manipulam. Para short reads, a abordagem de grafo de Bruijn é bastante utilizada. Percebe-se que a estrutura de grafos k-mer é a mais utilizada entre os assemblers. Tendência: os montadores mais novos são os que mais utilizam os grafos k-mer. ◦ Por que? Evita comparação par a par de sobreposição (isso é muito custoso). 77
  • 79. Genoma da cana-de-açúcar A construção de um método que consiga extrair informações relevantes do grafo de Bruijn é muito importante para uma melhor compreensão do genoma de uma espécie. A cana tem uma grande importância econômica (biocombustíveis). A cana possui um genoma complexo ◦ Poliploide ◦ Genoma extenso ◦ Repetições A identificação de variações genéticas através de um método que utilize os grafos de Bruijn podem contribuir para uma melhor compreensão do genoma dessa espécie. Filosofia: compreender para melhorar... 79
  • 80. Grafos de Bruijn - Código Uma simples implementação de DBG em Python: ◦ https://github.com/marcoscastro/bruijn_graph 80