Odvození zarovnání více řetězců z párového zarovnání, SP-skóre Ondřej Kazík 2008
Zarovnání více řetězců Nalézt konsensuální řetězec x:AC-GCGG-C y:AC-GC-GAG z:GCCGC-GAG Možnost 1: zpětný běh vícerozměrného algoritmu dyn. programování Složitost O(2 k n k ) porovnání k bází o délce n Lze odvodit vícerozměrné zarovnání z párového?
Profil Reprezentace konsesuálního řetězce Na každé pozici četnost báze/vynechání A C G T Každá sekvence je převoditelná na profil Jak porovnávat dvojici profilů? Jak sloučit dva profily?
Globální zarovnání profilů Obdoba algoritmu globálního zarovnání (např. s afinními pokutami za mezery) Změna ve výpočtu δ (v i, w j ) profilů – součet všech δ (a,b) kde a je z v i a b je z w j Například δ ({’-’,3x’A’},{‘-’,’A’,’C’})=δ (-,-)+4δ (-,A)+δ (-,C)+3δ (A,A)+3δ (A,C) Při insertu k pozic do prvního profilu přičítáme: –4(ρ+kσ) Do druhého: –3(ρ+kσ)
Vytvoření společného profilu Zpětný chod nejlepší cesty grafem Pro každý uzel: 1.Pro match/replace: sloučit profily (sečíst odpovídající četnosti) 2.Pro insert/replace: sloučit profil s odpovídajícím počtem mezer Union( {’-’,3x’A’},{‘-’,’A’,’C’} )= [‘-’,4x’A’,’C’]
Algoritmus zarovnání: hladový přístup Odvození zarovnání mnoha řetězců z párového není možné jednoznačně Heuristiky Hladový algoritmus: 1.Převést sekvence na profily 2.Spočítat skóre pro vš. profily p i, p j, i<j 3.Vymazat profily s největším skórem a přidat společný profil 4.Opakovat 2 – 3 dokud není jen jeden profil
Hladový algoritmus: příklad
SP-Skóre Předpokládáme aditivní skóre SP (součet párů) na zarovnání více řetězců: součet všech skóre na indukovaných párových zarovnání s(a 1,…,a k ) = Σ i,j s*(a i, a j ) Alternativa: součet SP-skóre přes všechny sloupce zarovnání – na každé pozici sčítám d přes všechny dvojice G CG 1 Score = 1 – Column 3
SP-skóre profilu Skóre je odvoditelné přímo z profilu Posloupnosti: S1:ATG S2:ATG S3:A__ S4:_T_ Profil: [{3x’A’,’-’},{3x’T’,’-’},{2x’G’,2x’-’}] Skóre: SP-score=SP-score(A,A,A,-)+SP-score(T,T,T,-)+ SP-score(G,G,-,-)= =-13