If you can't read please download the document
View
223
Download
2
Embed Size (px)
Combinatorial Pattern Matching
BLAST
TpicosIntroduoRepeties GnicasCombinatorial Pattern MatchingExact Pattern MatchingApproximate Pattern MatchingQuery MatchingBLAST
IntroduoGenomas seqenciados geram bases de dados gigantescas, que crescem a cada dia importante comparar cada novo com os j existentes, em busca de similaridades e respostasMuitas doenas podem ser identificadas atravs do genoma, o que aumenta ainda mais essa necessidadeAlgoritmos cada vez mais eficientes so necessrios para atender essa demanda crescente de comparaes e para se adequar aos computadores atuais
GenBank
Histria
Repeties gncias MotivaoRearranjamentos gnicos geralmente so associados a repetiesRevelam segredos evolutivosMuitos tumores so caracterizados por exploses de repeties
ATGGTCTAGGTCCTAGTGGTCATGGTCTAGGACCTAGTGTTCPode ser bem difcil encontrar repeties, principalmente no exatas
Combinatorial Pattern Matching MotivaoUm grande problema em biologia computacional buscar por um padro numa grande base de dadosCombinatorial Pattern Matching engloba vrios algoritmos que fazem esse tipo de busca / comparaoEntre os algoritmos existem aqueles que so exatos (buscam pelo padro exato) ou aproximados (permitem substituies e s vezes gaps)Existem ainda algoritmos que buscam mltiplos padres em um texto (Multiple Pattern Matching)
EXACT PATTERN MATCHING
DescrioDado um padro p e um texto t, encontrar todas as ocorrncias exatas de p em t.Algoritmo de fora bruta:
Padro GCAT
Texto CGCATC
Algoritmo e Complexidade
Geralmente O(m)Pior caso: O(m.n)
ProblemaProblema:Se n for grande demais, o algoritmo torna-se impraticvel
Exemplo:Padro: AAAAAA...AAATexto: AAAAAAAAAAAAAAA...AAAAA
SoluoSoluo:1973, Peter Weiner:Uma nova estrutura de dados: Suffix TreesResolvem este problema em O(m + n) para qualquer texto e qualquer padro
Suffix Tree para ATCATG
(...Keyword Tree / Suffix Tree
Keyword TreeUm conjunto de padres colocados numa rvore com uma razCada aresta rotulada com uma letra do alfabetoDuas arestas vizinhas tm rtulos diferentesCada padro pode ser lido varrendo-se a rvore da raiz at uma folha
Keyword Tree ConstruoApple
Keyword Tree ConstruoAppleApropos
Keyword Tree ConstruoAppleAproposBanana
Keyword Tree ConstruoAppleAproposBananaBandana
Keyword Tree ConstruoAppleAproposBananaBandanaOrange
Busca na Keyword TreeBusca por Appealappeal
Busca na Keyword TreeBusca por Appealappeal
Busca na Keyword TreeBusca por Appealappeal
Busca na Keyword TreeBusca por Appealappeal
Busca na Keyword TreeBusca por Appleapple
Busca na Keyword TreeBusca por Appleapple
Busca na Keyword TreeBusca por Appleapple
Busca na Keyword TreeBusca por Appleapple
Busca na Keyword TreeBusca por Appleapple
ComplexidadeA complexidade do tempo de construo da Keyword Tree no melhor caso O(N), onde N o tamanho de todos os padres juntosComo utilizar Keyword Tree para fazer busca mais rapidamente?Um padro pode ser lido simplesmente lendo-se da raiz at alguma folhaEnto, buscar um padro leva tempo O(n), n sendo o tamanho do padroMelhor que O(m.n)
Complexidade (cont)Um texto de tamanho m tem 1 + 2 + ... + sufixos
Tempo quadrticoO(m2)Ruim para ser construdaMas...
Suffix TreeEstrutura de dados mais eficiente para buscas de padresDerivada da Keyword TreePode ser construda em tempo O(m)m o tamanho do textoMuito melhor que O(m2)Buscas em O(n)Assim como na Keyword Tree
Exemplo
...)Suffix Tree
Busca com Suffix TreeSuffix Tree para o texto ATGCATACATGGATGCATACATGG 1TGCATACATGG 2GCATACATGG 3CATACATGG 4ATACATGG 5TACATGG 6ACATGG 7CATGG 8ATGG 9TGG 10GG 11G 12
Multiple Pattern MatchingDado um conjunto de padres p1, p2, ..., pk e um texto t, encontrar se algum dos padres aparece no textoMotivaoBuscar numa base de dados por k padres conhecidosUma das estratgias do BLASTPode ser reduzido k Pattern Matching
APPROXIMATE PATTERN MATCHING /QUERY MATCHING
Approximate Pattern MatchingDado um padro p, um texto t e um inteiro k, encontrar todas as ocorrncias de p em t com no mximo k substituiesFaz muito mais sentido biologicamente falandoMutaesEvoluoUtiliza-se heursticas para aproximao
Buscas HeursticasNormalmente h um trecho bem conservado, idntico ou com pequenas variaes.Muitas heursticas so baseadas na idia de filtragemEncontrar uma semente, um pequeno trecho que idntico (ou muito parecido)Estender essa semente enquanto tiver menos que k substituiesQuery: 22 VLRDNIQGITKPAIRRLARRGGVKRISGLIYEETRGVLK 60 +++DN +G + IR L G+K I+ L+ E+ RG++KSbjct: 226 IIKDNGRGFSGKQIRNLNYGIGLKVIADLV-EKHRGIIK 263
Matriz de pontosMostra a similaridade entre duas strings
Matriz de pontosDiagonais indicam matches exatosBuscamos por diagonais respeitando o limite de mismatches
Matriz de pontosEstendendo as diagonais encontramos alinhamentos locais aproximados
Query MatchingDado um padro q, um texto t, um inteiro k e um inteiro n, encontrar pares de posies (i , j) tais que a substring de tamanho n de q comeada em i casa com a substring de tamanho n de t comeada em j com no mximo k substituiesGeneralizao do Approximate Pattern MatchingRecebe um parmetro a mais: um n referente ao tamanho da janela, que representa o tamanho mdio dos matches
Query MatchingQuando n igual ao tamanho do padro p o problema de Query Pattern Matching se transforma no Aproximate Query Matching
Comparao
Query MatchingIdia centralBuscar por alinhamentos pequenosFiltragemDuas etapas1. Deteco de matches potenciaisDivide a query em substrings de tamanho n (words) e busca por essas words no texto2. Verificao desses matches potenciaisEstende para a esquerda e para a direita enquanto o nmero de mismatches (substituies) seja menor que k
FASTA
FASTADesenvolvido por Pearson e LipmanApresenta os alinhamentos locais da seqncia analisada com as seqncias do bancoProcura por um nmero de k consecutivas letras (aminocidos ou nucleotdeos), palavras ou k-tuplas.
AlgoritmoO algoritmo dividido em 4 etapas:Seleo das 10 melhores regiesRe-classificao das 10 melhores regiesSeleo das seqncias mais semelhantesAlinhamentos das seqncias selecionadas
BLAST
BLASTBasic Local Alignment Search ToolMelhor algoritmo conhecido at hojeGrande ganho de performance em troca de uma pequena perda de sensibilidadeFunciona similar a uma Query Matching
Algoritmo (cont)Fragmenta a query em words (l-mers)Por defalult, 3-mers para protenase 11-mers para nucleotdeos
Encontra words similares at um limiar (parmetro)Utiliza alguma matriz de substituio (Blosum, PAM)
Algoritmo (cont)
Algoritmo (cont)PAM 250
Algoritmo (cont)Query: 22 VLRDNIQGITKPAIRRLARRGGVKRISGLIYEETRGVLK 60 +++DN +G + IR L G+K I+ L+ E+ RG++KSbjct: 226 IIKDNGRGFSGKQIRNLNYGIGLKVIADLV-EKHRGIIK 263Query: KRHRKVLRDNIQGITKPAIRRLARRGGVKRISGLIYEETRGVLKIFLENVIRDwordGVK 18GAK 16GIK 16GGK 14GLK 13GNK 12GRK 11GEK 11GDK 11vizinhos(limiar T = 13)words vizinhos
Algoritmo (cont)Procura por alguma dessas palavras na base de dados (hit)Estende os hitsBLAST original:Extenso feita para ambas as direesNo permitia gapsBLAST atual:Utiliza uma matriz de pontosPermite gaps
Algoritmo (cont)Retm somente os HSPs (High Score Pairs) com score acima de um limiar (parmetro)Determina estatisticamente a relevncia de cada resultadop-value 1 e-value 1 Mais usado:E < 10-100 genes homolgos ou idnticosE < 10-3 genes podem estar relacionadosE > 1 genes provavelmente sem relao0,5 < E < 1 Twilight Zone (no h garantia de homologia ou no homologia)
BLASTExistem diversas implementaes do BLASTblastnCompara uma seqncia de nucleotdeos com um banco de nucleotdeosblastpSeqncia de aminocidos num banco de protenasblastxSeqncia de nucleotdeos (traduzidos em protenas) com um banco de protenastblastnSeqncia de protenas com um banco de nucleotdeos (traduzidos em real time)tblastx
ExemplosSuffix treehttp://cs-people.bu.edu/lisap/CS549%20Final%20Project%20Webpage%20Applet.htmlhttp://pauillac.inria.fr/~quercia/documents-info/Luminy-98/albert/JAVA+html/SuffixTreeGrow.htmlExact Pattern Matchinghttp://www-igm.univ-mlv.fr/~lecroq/string/BLASThttp://www.ncbi.nlm.nih.gov/Education/BLASTinfo/tut1.html
Refernciashttp://www.qualidata.com.br/~fabricio/tbo20051-suffixtree-fabricio.pdfhttp://www.cs.unc.edu/Courses/comp590-090-f07/http://bioinf.ucsd.edu/~jung/beng202/http://biotec.icb.ufmg.br/cabi/aulas/
*