A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Estruturas de Dados e Algoritmos para Inferência de Motifs Katia Guimarães.

Apresentações semelhantes


Apresentação em tema: "Estruturas de Dados e Algoritmos para Inferência de Motifs Katia Guimarães."— Transcrição da apresentação:

1 Estruturas de Dados e Algoritmos para Inferência de Motifs Katia Guimarães

2 katia@cin.ufpe.br2 Árvores de Sufixos Apresentadas por Weiner (1973) Construção linear demonstrada por McCreight (1976) Modelo apresentado Ukkonen (1995) Compacto Intuitivo Versátil On-line

3 katia@cin.ufpe.br3 Árvores de Sufixos Definição Uma árvore-  + é uma árvore n-ária tal que Cada aresta tem um rótulo associado (seqüência não vazia de símbolos) Rótulos de duas arestas com origem no mesmo vértice não podem começar com o mesmo símbolo.

4 katia@cin.ufpe.br4 Árvores de Sufixos - Variações Árvore de Sufixos Compacta – Cada aresta tem um rótulo maximal Árvore de Sufixos Expandida Acrescenta-se um símbolo especial $ ao final da cadeia

5 katia@cin.ufpe.br5 Árvores de Sufixos Compacta

6 katia@cin.ufpe.br6 Árvores de sufixo Algoritmo constrói-AS (X= x 1... x n ) início crie uma árvore T 1, com V T1 ={(raiz, x 1 )}, E T1 ={(raiz, x 1 )} e rot(x 1 )=x 1 Para i  2 até n faça para j  1 até i-1 faça u  X [j..i –1] se (não há uma representação para x i a partir de u) então se (u é uma folha) então estenda o rótulo da aresta de destino u concatenando x i senão insira uma nova folha w = X [j..i ] e uma aresta (u, w) de rótulo x i. fim constrói-AS

7 katia@cin.ufpe.br7 Construindo a Árvores de Sufixos da Seqüência CCTTTA

8 katia@cin.ufpe.br8 Árvores de Sufixos Para fazer uma construção eficiente: Obter, durante a i-ésima iteração as referências para cada vértice de rótulo X[j..i–1], j= 1, 2,..., i-1, na árvore T i-1 Suffix links Identificar a fronteira da árvore T i-1 ou seja, a seqüência dos loci de todos os sufixos de X, do maior para o menor

9 katia@cin.ufpe.br9 Arrays de sufixos Manber and Myers (1993) Organiza todos os sufixos de uma seqüência em ordem lexicográfica crescente Possibilita busca binária Espaço O(n) Tempo O(n. log n) Tempo de busca por um padrão Y O(|Y| + log n)

10 katia@cin.ufpe.br10 Arrays de sufixos Tempo de construção um pouco mais longo do que as árvores de sufixo Vantagens Construção simples Econômico em termos de espaço

11 katia@cin.ufpe.br11 Arrays de sufixos

12 katia@cin.ufpe.br12 Repetições com substituições Diferentes tipos de erros introduzem diferentes graus de dificuldade Distância de Hamming Estratégia Identificar repetições exatas de tamanho pequeno Sementes A partir destes, identificar trechos de tamanho maior

13 katia@cin.ufpe.br13 Repetições com substituições A computação das sementes pode ser feita em tempo O(n) usando uma árvore de sufixos S A verificação das possíveis extensões de uma semente pode ser feita por programação dinâmica

14 katia@cin.ufpe.br14 Repetições com substituições Seqüência Sementes na seqüência S de comprimento pelo menos 3

15 katia@cin.ufpe.br15 Repetições com substituições Extensões da semente GGGG

16 katia@cin.ufpe.br16 Repetições com substituições Extensões da semente TTT

17 katia@cin.ufpe.br17 Considerando inserções e remoções Modelo mais complexo, porém, mais realístico Distância de Levenshtein k-erro repetição

18 katia@cin.ufpe.br18 Considerando inserções e remoções U e V cadeias de comprimento m e n respectivamente q  [0, k] Em direita E (esquerda E ) as cadeias U e V representam as extensões à direita (respectivamente, `a esquerda) das sementes que são maximais com relação ao erro, considerando a distância de edição

19 katia@cin.ufpe.br19 Considerando inserções e remoções Valores de U e de V para extensões à esquerda e à direita de semente GGGG e q  2

20 katia@cin.ufpe.br20 Considerando inserções e remoções Algoritmo MDR (S, l, k) início Compute todas as sementes Para cada semente ((i 1, j 1 ), (i 2, j 2 )) faça Compute as tabelas T dir (q) = direita E (s[j 1 +1,n], s[j 2 +1,n], q) T esq (q) = esquerda E (s[1, i 1 -1], s[1, i 2 -1], q) Para cada q  [0, k] faça Para cada par (x l, y l )  esquerda(q) e cada par (x r, y r )  direita(k-q) faça Se (j 1 – i 1 +1 + x l + x r  l) e (j 2 – i 2 +1 + y l + y r  l) então reporte a k-erro repetição((i 1 – x l, j 1 – x r ), (i 2 – y l, j 2 – y r )) fim MDR

21 katia@cin.ufpe.br21 Considerando inserções e remoções As sementes podem ser estendidas em tempo O(n 2 ) Programação dinâmica simples O(kn) Algoritmo em [ Ukkonen, 1985].


Carregar ppt "Estruturas de Dados e Algoritmos para Inferência de Motifs Katia Guimarães."

Apresentações semelhantes


Anúncios Google