SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
1
Algoritmo de Smith-Waterman
Alinhamento local
Marcos Castro
2
Introdução
O algoritmo de Smith-Waterman é um algoritmo para a
realização de alinhamento local de sequências.
O algoritmo foi proposto em 1981 por Smith e Waterman e é
uma variação do algoritmo Needleman-Wunsch, portanto,
Smith-Waterman é um algoritmo de programação dinâmica.
O algoritmo garante encontrar o alinhamento local ótimo.
3
Algoritmo de Smith-Waterman
O algoritmo faz uso de uma matriz de pontuação (scores)
para medir a similaridade entre os caracteres.
Temos os parâmetros: match (caracteres iguais), mismatch
(caracteres diferentes) e gap penalty (penalidade por lacuna).
Exemplo: match = 1, mismatch = -1 e gap penalty = -1.
4
Supor uma sequência s1 e outra sequência s2, tam_s1 e
tam_s2 serão os tamanhos dessas sequências.
“M” será o nome da nossa matriz. O primeiro passo é alocar
uma matriz (tam_s2 + 1) linhas por (tam_s1 + 1) colunas.
Iremos indexar a partir do zero. M[0][0] corresponde ao
elemento da primeira linha e primeira coluna, M[0][1]
corresponde ao elemento da primeira linha e segunda coluna
e assim por diante.
Algoritmo de Smith-Waterman
5
Algoritmo de Smith-Waterman
A primeira linha e primeira coluna serão inicializadas com 0.
Iremos alinhar as sequências:
Sequência 1: GGAT
Sequência 2: GAT
- G G A T
- 0 0 0 0 0
G 0
A 0
T 0
6
Para preencher o restante da matriz, precisamos calcular o
valor que vem da diagonal superior esquerda, do topo e da
esquerda de cada célula da matriz. Iremos calcular esses
valores para M[1][1] que está representado pelo ponto de
interrogação.
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 ?
A 0
T 0
7
O valor da diagonal é calculado:
diagonal = M[i - 1][j - 1] + score
“score” será igual a “match” se os caracteres forem iguais,
caso contrário será igual a “mismatch”.
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 ?
A 0
T 0
8
diagonal = M[i - 1][j - 1] + score
Para M[1][1] (i = 1 e j = 1) ficará:
diagonal = M[0][0] + score
diagonal = 0 + (+1) (match) = 1
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 ?
A 0
T 0
9
O topo calcula-se da seguinte forma:
topo = M[i - 1][j] + gap_penalty
Para M[1][1] temos que (gap_penalty = -1):
topo = M[0][1] + (-1) = 0 + (-1) = -1
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 ?
A 0
T 0
10
A esquerda calcula-se da seguinte forma:
esquerda = M[i][j - 1] + gap_penalty
Para M[1][1] temos que (gap_penalty = -1):
esquerda = M[1][0] + (-1) = 0 + (-1) = -1
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 ?
A 0
T 0
11
Temos os valores da diagonal, do topo e da esquerda:
diagonal = 1, topo = -1, esquerda = -1
Para saber o M[1][1] basta calcular o máximo desses valores
incluindo o 0:
M[1][1] = max(0, 1, -1, -1) = 0
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 ?
A 0
T 0
12
Agora iremos calcular o M[1][2]:
diagonal = 0 + (+1) (match) = 1
topo = 0 + (-1) = -1
esquerda = 1 + (-1) = 0
M[1][2] = max(0, 1, -1, 0) = 1
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 1 ?
A 0
T 0
13
Matriz preenchida:
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 1 1 0 0
A 0 0 0 2 1
T 0 0 0 1 3
14
O algoritmo permite reconhecer qual a célula que deu origem
a cada entrada da matriz. Essa precedência é indicada pelas
setas.
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 1 1 0 0
A 0 0 0 2 1
T 0 0 0 1 3
15
O processo de backtracking começa da célula da matriz de
pontuação mais alta (no nosso caso é a M[3][4]) e continua
até que uma célula com pontuação zero seja encontrada.
M[3][4] veio da diagonal, então as duas sequências recebem
caracteres.
Sequência 1: T
Sequência 2: T
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 1 1 0 0
A 0 0 0 2 1
T 0 0 0 1 3
16
M[2][3] veio da diagonal, então as duas sequências recebem
caracteres.
Sequência 1: AT
Sequência 2: AT
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 1 1 0 0
A 0 0 0 2 1
T 0 0 0 1 3
17
M[1][2] veio da diagonal, então as duas sequências recebem
caracteres.
Sequência 1: GAT
Sequência 2: GAT
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 1 1 0 0
A 0 0 0 2 1
T 0 0 0 1 3
18
M[0][1] é 0, então o processo de alinhamento terminou.
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 1 1 0 0
A 0 0 0 2 1
T 0 0 0 1 3
19
Se tivesse uma seta apontando para o topo, colocaríamos
uma lacuna na sequência 1 e o caractere na sequência 2.
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 1 1 0 0
A 0 0 0 2 1
T 0 0 0 1 3
20
Se tivesse uma seta apontando para a esquerda,
colocaríamos o caractere na sequência 1 e a lacuna na
sequência 2.
Algoritmo de Smith-Waterman
- G G A T
- 0 0 0 0 0
G 0 1 1 0 0
A 0 0 0 2 1
T 0 0 0 1 3
21
A implementação foi feita utilizando a linguagem de
programação Python. O código encontra-se no endereço:
https://github.com/marcoscastro/msc_bioinfo/tree/master/sm
ith_waterman
Para executar o nosso exemplo basta fazer:
python smith_waterman.py GGAT GAT 1 -1 -1
GGAT e GAT são as sequências. 1, -1 e -1 são os
parâmetros match, mismatch e gap_penalty respectivamente.
Implementação
22
Dúvidas?
mcastrosouza@live.com
Obrigado!
23
http://pt.slideshare.net/avrilcoghlan/the-smith-waterman-algor
ithm
http://en.wikipedia.org/wiki/Smith-Waterman_algorithm
http://web.ist.utl.pt/ist155746/relatorio_2_bc.pdf
Referências

Mais conteúdo relacionado

Mais procurados

Aula Sobre Coordenadas Cartesianas
Aula Sobre Coordenadas CartesianasAula Sobre Coordenadas Cartesianas
Aula Sobre Coordenadas CartesianasAntonio Carneiro
 
Progressão geométrica
Progressão geométricaProgressão geométrica
Progressão geométricaleilamaluf
 
14 produto misto volume paralelepipedo
14 produto misto volume paralelepipedo14 produto misto volume paralelepipedo
14 produto misto volume paralelepipedoRodrigo da Silva
 
Função Polinomial do 1º grau
Função Polinomial do 1º grauFunção Polinomial do 1º grau
Função Polinomial do 1º grauJoão Paulo Luna
 
נוסחאון 3 יחידות לימוד מתמטיקה
נוסחאון 3 יחידות לימוד מתמטיקהנוסחאון 3 יחידות לימוד מתמטיקה
נוסחאון 3 יחידות לימוד מתמטיקהbagrutonline
 
Progressão aritmética exercícios
Progressão aritmética exercíciosProgressão aritmética exercícios
Progressão aritmética exercícioslucienejade
 
EquaçõEs Do 2º Grau
EquaçõEs Do 2º GrauEquaçõEs Do 2º Grau
EquaçõEs Do 2º Grauguest1c8bcb5b
 
Trigonometria ponteiros relogio
Trigonometria ponteiros relogioTrigonometria ponteiros relogio
Trigonometria ponteiros relogiotrigono_metria
 
Exercícios Resolvidos: Distribuição Binomial
Exercícios Resolvidos: Distribuição BinomialExercícios Resolvidos: Distribuição Binomial
Exercícios Resolvidos: Distribuição BinomialDiego Oliveira
 
Mat exercicios deteminantes 2 e 3 ordem
Mat exercicios deteminantes  2 e 3 ordemMat exercicios deteminantes  2 e 3 ordem
Mat exercicios deteminantes 2 e 3 ordemtrigono_metria
 
1586746631GAMMA BETA FUNCTIONS.pdf
1586746631GAMMA BETA FUNCTIONS.pdf1586746631GAMMA BETA FUNCTIONS.pdf
1586746631GAMMA BETA FUNCTIONS.pdfFighting2
 
Tecnica de integracao resumo
Tecnica de integracao   resumoTecnica de integracao   resumo
Tecnica de integracao resumoJoão Bastos
 
Produtos notáveis
Produtos notáveisProdutos notáveis
Produtos notáveisluciaoliv
 

Mais procurados (20)

Lista de exercícios determinantes
Lista de exercícios   determinantesLista de exercícios   determinantes
Lista de exercícios determinantes
 
Aula Sobre Coordenadas Cartesianas
Aula Sobre Coordenadas CartesianasAula Sobre Coordenadas Cartesianas
Aula Sobre Coordenadas Cartesianas
 
Progressão geométrica
Progressão geométricaProgressão geométrica
Progressão geométrica
 
14 produto misto volume paralelepipedo
14 produto misto volume paralelepipedo14 produto misto volume paralelepipedo
14 produto misto volume paralelepipedo
 
Função Polinomial do 1º grau
Função Polinomial do 1º grauFunção Polinomial do 1º grau
Função Polinomial do 1º grau
 
נוסחאון 3 יחידות לימוד מתמטיקה
נוסחאון 3 יחידות לימוד מתמטיקהנוסחאון 3 יחידות לימוד מתמטיקה
נוסחאון 3 יחידות לימוד מתמטיקה
 
Determinantes 2º ano
Determinantes 2º anoDeterminantes 2º ano
Determinantes 2º ano
 
Aproximações
AproximaçõesAproximações
Aproximações
 
Progressão aritmética exercícios
Progressão aritmética exercíciosProgressão aritmética exercícios
Progressão aritmética exercícios
 
EquaçõEs Do 2º Grau
EquaçõEs Do 2º GrauEquaçõEs Do 2º Grau
EquaçõEs Do 2º Grau
 
Trigonometria ponteiros relogio
Trigonometria ponteiros relogioTrigonometria ponteiros relogio
Trigonometria ponteiros relogio
 
Exercícios Resolvidos: Distribuição Binomial
Exercícios Resolvidos: Distribuição BinomialExercícios Resolvidos: Distribuição Binomial
Exercícios Resolvidos: Distribuição Binomial
 
Mat exercicios deteminantes 2 e 3 ordem
Mat exercicios deteminantes  2 e 3 ordemMat exercicios deteminantes  2 e 3 ordem
Mat exercicios deteminantes 2 e 3 ordem
 
Seno cosseno e_tangente_de_um_arco
Seno cosseno e_tangente_de_um_arcoSeno cosseno e_tangente_de_um_arco
Seno cosseno e_tangente_de_um_arco
 
Dizimas periodicas
Dizimas periodicasDizimas periodicas
Dizimas periodicas
 
1586746631GAMMA BETA FUNCTIONS.pdf
1586746631GAMMA BETA FUNCTIONS.pdf1586746631GAMMA BETA FUNCTIONS.pdf
1586746631GAMMA BETA FUNCTIONS.pdf
 
Coordenadas cartesianas
Coordenadas cartesianasCoordenadas cartesianas
Coordenadas cartesianas
 
Tecnica de integracao resumo
Tecnica de integracao   resumoTecnica de integracao   resumo
Tecnica de integracao resumo
 
Produtos notáveis
Produtos notáveisProdutos notáveis
Produtos notáveis
 
Aula de LOGARITMOS
Aula de LOGARITMOSAula de LOGARITMOS
Aula de LOGARITMOS
 

Destaque

Qt Techday - João Pessoa
Qt Techday - João PessoaQt Techday - João Pessoa
Qt Techday - João PessoaOpenBossa
 
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique MarksDesenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique MarksTchelinux
 
Análise Assintótica
Análise AssintóticaAnálise Assintótica
Análise AssintóticaMarcos Castro
 
Programação dinâmica
Programação dinâmicaProgramação dinâmica
Programação dinâmicaMarcos 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
 
Busca em largura - BFS
Busca em largura - BFSBusca em largura - BFS
Busca em largura - BFSMarcos Castro
 
Problema do Caixeiro Viajante
Problema do Caixeiro ViajanteProblema do Caixeiro Viajante
Problema do Caixeiro ViajanteMarcos Castro
 
Algoritmo de Kosaraju
Algoritmo de KosarajuAlgoritmo de Kosaraju
Algoritmo de KosarajuMarcos Castro
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STLMarcos Castro
 
Backtracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntosBacktracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntosMarcos Castro
 
Mágica com qt’s meta object system
Mágica com qt’s meta object systemMágica com qt’s meta object system
Mágica com qt’s meta object systemRodrigo Delduca
 
Construção de interfaces gráficas com Tkinter
Construção de interfaces gráficas com TkinterConstrução de interfaces gráficas com Tkinter
Construção de interfaces gráficas com TkinterMarcos Castro
 
Árvores de Decisão
Árvores de DecisãoÁrvores de Decisão
Árvores de DecisãoMarcos Castro
 
Metaheurística Simulated Annealing
Metaheurística Simulated AnnealingMetaheurística Simulated Annealing
Metaheurística Simulated AnnealingMarcos Castro
 

Destaque (20)

Big data, e eu com isso?
Big data, e eu com isso?Big data, e eu com isso?
Big data, e eu com isso?
 
Qt Techday - João Pessoa
Qt Techday - João PessoaQt Techday - João Pessoa
Qt Techday - João Pessoa
 
Dicas de otimização para aplicações Qt
Dicas de otimização para aplicações QtDicas de otimização para aplicações Qt
Dicas de otimização para aplicações Qt
 
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique MarksDesenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
 
PySide
PySidePySide
PySide
 
Introdução ao Qt
Introdução ao QtIntrodução ao Qt
Introdução ao Qt
 
Arquivos FASTQ
Arquivos FASTQArquivos FASTQ
Arquivos FASTQ
 
Análise Assintótica
Análise AssintóticaAnálise Assintótica
Análise Assintótica
 
Programação dinâmica
Programação dinâmicaProgramação dinâmica
Programação dinâmica
 
Listas, tuplas, conjuntos e dicionários
Listas, tuplas, conjuntos e dicionáriosListas, tuplas, conjuntos e dicionários
Listas, tuplas, conjuntos e dicionários
 
Algoritmos gulosos
Algoritmos gulososAlgoritmos gulosos
Algoritmos gulosos
 
Busca em largura - BFS
Busca em largura - BFSBusca em largura - BFS
Busca em largura - BFS
 
Problema do Caixeiro Viajante
Problema do Caixeiro ViajanteProblema do Caixeiro Viajante
Problema do Caixeiro Viajante
 
Algoritmo de Kosaraju
Algoritmo de KosarajuAlgoritmo de Kosaraju
Algoritmo de Kosaraju
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STL
 
Backtracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntosBacktracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntos
 
Mágica com qt’s meta object system
Mágica com qt’s meta object systemMágica com qt’s meta object system
Mágica com qt’s meta object system
 
Construção de interfaces gráficas com Tkinter
Construção de interfaces gráficas com TkinterConstrução de interfaces gráficas com Tkinter
Construção de interfaces gráficas com Tkinter
 
Árvores de Decisão
Árvores de DecisãoÁrvores de Decisão
Árvores de Decisão
 
Metaheurística Simulated Annealing
Metaheurística Simulated AnnealingMetaheurística Simulated Annealing
Metaheurística Simulated Annealing
 

Semelhante a Algoritmo de Smith-Waterman

Determinantes sistemas lineares
Determinantes sistemas linearesDeterminantes sistemas lineares
Determinantes sistemas linearesAntonio Carneiro
 
Determinantes Sistemas Lineares
Determinantes Sistemas LinearesDeterminantes Sistemas Lineares
Determinantes Sistemas LinearesISJ
 
Determinantes sistemas lineares
Determinantes sistemas linearesDeterminantes sistemas lineares
Determinantes sistemas linearesISJ
 
Determinantes sistemas lineares
Determinantes sistemas linearesDeterminantes sistemas lineares
Determinantes sistemas linearesISJ
 

Semelhante a Algoritmo de Smith-Waterman (6)

Determinantes sistemas lineares
Determinantes sistemas linearesDeterminantes sistemas lineares
Determinantes sistemas lineares
 
Determinantes
DeterminantesDeterminantes
Determinantes
 
Determinantes Sistemas Lineares
Determinantes Sistemas LinearesDeterminantes Sistemas Lineares
Determinantes Sistemas Lineares
 
Determinantes sistemas lineares
Determinantes sistemas linearesDeterminantes sistemas lineares
Determinantes sistemas lineares
 
Determinantes sistemas lineares
Determinantes sistemas linearesDeterminantes sistemas lineares
Determinantes sistemas lineares
 
Apostila de matematica para concursos
Apostila de matematica para concursosApostila de matematica para concursos
Apostila de matematica para concursos
 

Mais de Marcos Castro

Colored de Bruijn Graphs
Colored de Bruijn GraphsColored de Bruijn Graphs
Colored de Bruijn GraphsMarcos Castro
 
Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de ProgramaçãoMarcos 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
 
Redes Neurais Artificiais
Redes Neurais ArtificiaisRedes Neurais Artificiais
Redes Neurais ArtificiaisMarcos 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
 
Python - Dicionários
Python - DicionáriosPython - Dicionários
Python - DicionáriosMarcos Castro
 
Agrupamento de sequências biológicas
Agrupamento de sequências biológicasAgrupamento de sequências biológicas
Agrupamento de sequências biológicasMarcos Castro
 
Longest palindromic subsequence (LPS)
Longest palindromic subsequence (LPS)Longest palindromic subsequence (LPS)
Longest palindromic subsequence (LPS)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
 
Bioinformática com Biopython
Bioinformática com BiopythonBioinformática com Biopython
Bioinformática com BiopythonMarcos 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
 
Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)Marcos Castro
 

Mais de Marcos Castro (19)

Colored de Bruijn Graphs
Colored de Bruijn GraphsColored de Bruijn Graphs
Colored de Bruijn Graphs
 
Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de Programação
 
Bioinformática
BioinformáticaBioinformática
Bioinformática
 
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
 
Bioinformática
BioinformáticaBioinformática
Bioinformática
 
Redes Neurais Artificiais
Redes Neurais ArtificiaisRedes Neurais Artificiais
Redes Neurais Artificiais
 
Expressões Regulares com Python 3
Expressões Regulares com Python 3Expressões Regulares com Python 3
Expressões Regulares com Python 3
 
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
 
Agrupamento de sequências biológicas
Agrupamento de sequências biológicasAgrupamento de sequências biológicas
Agrupamento de sequências biológicas
 
Longest palindromic subsequence (LPS)
Longest palindromic subsequence (LPS)Longest palindromic subsequence (LPS)
Longest palindromic subsequence (LPS)
 
Algoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMPAlgoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMP
 
Bioinformática com Biopython
Bioinformática com BiopythonBioinformática com Biopython
Bioinformática com Biopython
 
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
 
Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)Problema das N rainhas (Backtracking)
Problema das N rainhas (Backtracking)
 

Último

Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESEduardaReis50
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - DissertaçãoMaiteFerreira4
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaronaldojacademico
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOAulasgravadas3
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfFernandaMota99
 

Último (20)

Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - Dissertação
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riqueza
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdf
 

Algoritmo de Smith-Waterman

  • 2. 2 Introdução O algoritmo de Smith-Waterman é um algoritmo para a realização de alinhamento local de sequências. O algoritmo foi proposto em 1981 por Smith e Waterman e é uma variação do algoritmo Needleman-Wunsch, portanto, Smith-Waterman é um algoritmo de programação dinâmica. O algoritmo garante encontrar o alinhamento local ótimo.
  • 3. 3 Algoritmo de Smith-Waterman O algoritmo faz uso de uma matriz de pontuação (scores) para medir a similaridade entre os caracteres. Temos os parâmetros: match (caracteres iguais), mismatch (caracteres diferentes) e gap penalty (penalidade por lacuna). Exemplo: match = 1, mismatch = -1 e gap penalty = -1.
  • 4. 4 Supor uma sequência s1 e outra sequência s2, tam_s1 e tam_s2 serão os tamanhos dessas sequências. “M” será o nome da nossa matriz. O primeiro passo é alocar uma matriz (tam_s2 + 1) linhas por (tam_s1 + 1) colunas. Iremos indexar a partir do zero. M[0][0] corresponde ao elemento da primeira linha e primeira coluna, M[0][1] corresponde ao elemento da primeira linha e segunda coluna e assim por diante. Algoritmo de Smith-Waterman
  • 5. 5 Algoritmo de Smith-Waterman A primeira linha e primeira coluna serão inicializadas com 0. Iremos alinhar as sequências: Sequência 1: GGAT Sequência 2: GAT - G G A T - 0 0 0 0 0 G 0 A 0 T 0
  • 6. 6 Para preencher o restante da matriz, precisamos calcular o valor que vem da diagonal superior esquerda, do topo e da esquerda de cada célula da matriz. Iremos calcular esses valores para M[1][1] que está representado pelo ponto de interrogação. Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 ? A 0 T 0
  • 7. 7 O valor da diagonal é calculado: diagonal = M[i - 1][j - 1] + score “score” será igual a “match” se os caracteres forem iguais, caso contrário será igual a “mismatch”. Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 ? A 0 T 0
  • 8. 8 diagonal = M[i - 1][j - 1] + score Para M[1][1] (i = 1 e j = 1) ficará: diagonal = M[0][0] + score diagonal = 0 + (+1) (match) = 1 Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 ? A 0 T 0
  • 9. 9 O topo calcula-se da seguinte forma: topo = M[i - 1][j] + gap_penalty Para M[1][1] temos que (gap_penalty = -1): topo = M[0][1] + (-1) = 0 + (-1) = -1 Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 ? A 0 T 0
  • 10. 10 A esquerda calcula-se da seguinte forma: esquerda = M[i][j - 1] + gap_penalty Para M[1][1] temos que (gap_penalty = -1): esquerda = M[1][0] + (-1) = 0 + (-1) = -1 Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 ? A 0 T 0
  • 11. 11 Temos os valores da diagonal, do topo e da esquerda: diagonal = 1, topo = -1, esquerda = -1 Para saber o M[1][1] basta calcular o máximo desses valores incluindo o 0: M[1][1] = max(0, 1, -1, -1) = 0 Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 ? A 0 T 0
  • 12. 12 Agora iremos calcular o M[1][2]: diagonal = 0 + (+1) (match) = 1 topo = 0 + (-1) = -1 esquerda = 1 + (-1) = 0 M[1][2] = max(0, 1, -1, 0) = 1 Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 1 ? A 0 T 0
  • 13. 13 Matriz preenchida: Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 1 1 0 0 A 0 0 0 2 1 T 0 0 0 1 3
  • 14. 14 O algoritmo permite reconhecer qual a célula que deu origem a cada entrada da matriz. Essa precedência é indicada pelas setas. Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 1 1 0 0 A 0 0 0 2 1 T 0 0 0 1 3
  • 15. 15 O processo de backtracking começa da célula da matriz de pontuação mais alta (no nosso caso é a M[3][4]) e continua até que uma célula com pontuação zero seja encontrada. M[3][4] veio da diagonal, então as duas sequências recebem caracteres. Sequência 1: T Sequência 2: T Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 1 1 0 0 A 0 0 0 2 1 T 0 0 0 1 3
  • 16. 16 M[2][3] veio da diagonal, então as duas sequências recebem caracteres. Sequência 1: AT Sequência 2: AT Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 1 1 0 0 A 0 0 0 2 1 T 0 0 0 1 3
  • 17. 17 M[1][2] veio da diagonal, então as duas sequências recebem caracteres. Sequência 1: GAT Sequência 2: GAT Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 1 1 0 0 A 0 0 0 2 1 T 0 0 0 1 3
  • 18. 18 M[0][1] é 0, então o processo de alinhamento terminou. Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 1 1 0 0 A 0 0 0 2 1 T 0 0 0 1 3
  • 19. 19 Se tivesse uma seta apontando para o topo, colocaríamos uma lacuna na sequência 1 e o caractere na sequência 2. Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 1 1 0 0 A 0 0 0 2 1 T 0 0 0 1 3
  • 20. 20 Se tivesse uma seta apontando para a esquerda, colocaríamos o caractere na sequência 1 e a lacuna na sequência 2. Algoritmo de Smith-Waterman - G G A T - 0 0 0 0 0 G 0 1 1 0 0 A 0 0 0 2 1 T 0 0 0 1 3
  • 21. 21 A implementação foi feita utilizando a linguagem de programação Python. O código encontra-se no endereço: https://github.com/marcoscastro/msc_bioinfo/tree/master/sm ith_waterman Para executar o nosso exemplo basta fazer: python smith_waterman.py GGAT GAT 1 -1 -1 GGAT e GAT são as sequências. 1, -1 e -1 são os parâmetros match, mismatch e gap_penalty respectivamente. Implementação