Hledání motivů

Transkript

Hledání motivů
Tomáš
Oberhuber
Hledání
motivů
Tomáš Oberhuber
Faculty of Nuclear Sciences and Physical Engineering
Czech Technical University in Prague
1 / 23
Tomáš
Oberhuber
Hledání motivů
Hledání
motivů
• biologové často potřebují najít často se opakující
sekvence DNA
• tyto sekvence bývají relativně krátké, ale nemusí se
přesně shodovat
• může jít o různé způsoby kódování stejného proteinu a
nebo mohlo dojít k mutaci
• jde o tzv. motivy (motifs)
2 / 23
Tomáš
Oberhuber
Hledání motivů
Hledání
motivů
• mějme t sekvencí DNA o délcé n
• hledáme motivy délky l (tzv. l-mery)
• v každé sekvenci chceme najít jeden l-mer tak, aby si
l-mery v různých sekvencí byly co nejvíce podobné
• každý l-mer je jednoznačně určen svou pozicí si v i-té
posloupnosti DNA, kde
1 ≤ si ≤ n − l + 1
• všech t l-merů lze jednoznačně určit vektorem
~s = (s1 , . . . , st )
3 / 23
Tomáš
Oberhuber
Hledání
motivů
Hledání motivů
• naším cílem nyní bude najít způsob, jak ohodnotit
podobnost S mezi l-mery ~s čímž úlohu převedeme na
problém
~s∗ = arg max S(~s).
∀~s
• k tomu použijeme tzv. matici zarovnání (alignment
•
•
•
•
•
matrix) A(~s)
to jsou všechny l-mery zapsané pod sebou, takže jde o
matici o t-řádcích a l sloupcích
z matice zarovnání odvodíme profilovou matici P(~s)
ta udává, kolikrát se daný znak vyskytuje v určitém
sloupci
podle profilové matice vybereme konsensus C(~s), tj. v
každém sloupci znak, který má nejvíce výskytů
nakonec podle počtu výskytu jednotlivých znaků v
konsensu napočítáme celkové skóre shody S(~s)
4 / 23
Tomáš
Oberhuber
Hledání
motivů
Hledání motivů
Example 1
Mějme jednu pevně danou t-tici l-merů pro t
A T C C A
G G G C A
A T G G A
~
A(s)
A A G C A
T T G G A
A T G C C
A T G G C
A 5 1 0 0 5
P(~s)
T 1 5 0 0 0
G 1 1 6 3 0
C 0 0 1 4 2
C(~s)
A T G C A
~
maxi=1,...,t P(s)i .
5 5 6 4 5
= 7, l = 8
G C T
A C T
T C T
A C C
A C T
A T T
A C T
5 0 0
1 1 6
1 0 0
0 6 1
A C T
5 6 6
S(~s) = 5 + 5 + 6 + 4 + 5 + 5 + 6 + 6 = 42
5 / 23
Tomáš
Oberhuber
Hledání motivů
Hledání
motivů
• nyní již stačí najít ~s ∗ = arg max~s S(~s )
• platí
lt
≤ S(~s) ≤ lt
4
• maximum tedy existuje
Remark 2
K této úloze existuje duální úloha.
6 / 23
Tomáš
Oberhuber
Mediánový řetězec
Hledání
motivů
• mějme dva l-mery v a w
Definition 3
Hammingova vzdálenost dvou řetězců v a w je definována
jako počet pozic, na kterých se v a w liší.
Example 4
v=
w=
"ATTGTC"
"ACTCTC"
dH (v , w) = 2
7 / 23
Tomáš
Oberhuber
Mediánový řetězec
Hledání
motivů
• mějme vektor ~s = (s1 , . . . , sn ), který nám udává pozice
t l-merů v zadaných sekvencích
• mějme libovolný l-mer v
• definujme dH (v , si ) jako Hammingovu vzdálenost
l-meru v od l-meru začínajícím v i-té sekvenci na pozici
si
• definujme vzdálenost l-meru v od všech t ostatních
l-merů jako
dH (v , ~s) =
t
X
dH (v , si )
i=1
8 / 23
Tomáš
Oberhuber
Hledání
motivů
Mediánový řetězec
• definujme celkovou vzdálenost l-meru v od zadaných
DNA sekvencí jako
dH (v , DNA) = min dH (v , ~s)
~s
• toto minum lze napočítat po složkách vektoru ~s
• je totiž
min dH (v , ~s) = min
~s
~s
t
X
dH (v , si )
i=1
a jednotlivé členy sumy jsou nezávislé
Definition 5
Mediánový řetězec je definovaný jako
v ∗ = arg min dH (v , DNA).
v
9 / 23
Tomáš
Oberhuber
Mediánový řetězec
Hledání
motivů
Theorem 6
Úlohy hledání motivu a hledání mediánového řetězce jsou
vzájemně duální.
10 / 23
Tomáš
Oberhuber
Hledání
motivů
Mediánový řetězec
Proof.
• snadno je vidět, že pro pevně daný vektor ~s a
konsensus C(~s) platí
dH (C(~s), ~s) = lt − S(~s),
• dH (C(~s ), ~s ) počítá na jakých pozicích se konsensus
C(~s) liší od řetězců daných vektorem ~s
• skóre S(~s ) počítá na jakých pozicích se konsensus
C(~s) shoduje s řetezci danými vektorem ~s
• dohromady je těchto pozic lt
• dále je snadno vidět, že
v ∗ = arg min dH (C(~s), ~s)
~s
a
min dH (C(~s), ~s) = lt − max S(~s)
~s
~s
11 / 23
Tomáš
Oberhuber
Hledání
motivů
Kombinatorické optimalizace
• tím jsme úlohu převedly na dvě různé (ale duální) úlohy
z kombinatorické optimalizace (combinatorial
optimization)
• při hledání motivu počítáme
arg max~s S(~s) → (n − l + 1)t
• při hledání mediánového řetězce
arg minv dH (v , DNA) → 4l
• obecně musíme generovat všechny možné řetězce z
určitého stavového stromu
• při hledání motivu všechny možné vektory ~s o délce t a
na každé pozici může být číslo 1 až n − l + 1
• při hledání mediánového řetězce všechny možné
řetězce o délce l a na každé pozici může být jeden ze
čtyř znaků
• obecně chceme generovat všechny možné řetězce o
délce L tvořené abecedou o k znacích
12 / 23
Tomáš
Oberhuber
Hledání
motivů
Kombinatorické optimalizace
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure A LL L EAVES( L, k)
a:=(1,. . . ,1)
while true do
vypiš a
a:=NextLeaf( a, L, k )
if a = (1,. . . ,1) then
return
end if
end while
end procedure
procedure N EXT L EAF( a, L, k)
for i = L to 1 do
if ai <k then
ai := ai + 1
return
end if
ai := 1
end for
return a
end procedure
13 / 23
Tomáš
Oberhuber
Kombinatorické optimalizace
Hledání
motivů
• takto lze generovat celou množinu řetězců, přes kterou
hledáme optimální řešení
• výpočet lze urychlit technikou zvanou
branch-and-bound
• generování řetězců si zorganizujeme do k -árního
stromu, ve kterém na n-té úrovni máme fixováno
prvních n − 1-znaků řetězce a zbytek je neznámý
• pro každou větev pak uděláme odhad, jaké nejlepší
skóre v ní můžeme dosáhnout
• podle počtu nezafixovaných znaků potřebujeme
odhadnout, o kolik maximálně se může změnit
optimalizovaná funkce
14 / 23
Tomáš
Oberhuber
Kombinatorické optimalizace
Hledání
motivů
• hledání motivu
• generujeme postupně všechny možné složky vektoru
~s = (s1 , . . . , st )
• pokud je m posledních složek nezafixovaných, můžeme
je teoreticky nastavit tak, že budou ukazovat na úplně
stejné podřetězce DNA
• mohu tak maximálně získat lm shod, víc ale ne
• pokud je tedy nejlepší doposud dosažené skóre větší o
více než lm v porovnání se současným skóre, nemá
smysl za současného stavu hledat dál a celou větev
stromu lze přeskočit
15 / 23
Tomáš
Oberhuber
Kombinatorické optimalizace
Hledání
motivů
• mediánový řetězec
• generujeme řetězec, ke kterému se snažíme najít v
každé DNA sekvenci nejpodobnější podřetězec –
počítáme tedy počet rozdílných znaků
• máme-li m posledních znaků mediánového řetězce
nezafixovaných, nejlepší teoretická možnost je, že tyto
znaky nám už dH (v , DNA) nezvýší, ale v žádném
případě je nemůžeme snížit
• pokud je tedy současná částečná dH větší než nejlepší
doposud nalezené řešení, nemá smysl pokračovat dál
16 / 23
Tomáš
Oberhuber
Hledání
motivů
Kombinatorické optimalizace
• procházení stavového stromu upravíme na procházení
jeho vrcholů, ne pouze listů
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure N EXT V ERTEX( a, i, L, k)
if i < L then
ai+1 := 1
return (a, i + 1)
else
for j := L to 1 do
if aj < k then
aj := aj + 1
return ( a, j )
end if
end for
end if
return ( a, 0 )
end procedure
17 / 23
Tomáš
Oberhuber
Kombinatorické optimalizace
Hledání
motivů
• a dále potřebujeme proceduru pro přeskočení větve
stavového stromu
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure B YPASS( a, i, L, k)
for j := i to 1 do
if aj < k then
aj := aj + 1
return ( a, j )
end if
end for
return ( a, 0 )
end procedure
18 / 23
Tomáš
Oberhuber
Hledání
motivů
Kombinatorické optimalizace
• nyní můžeme napsat samotný algoritmus pro hledání
motivů
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure B RANCH A ND B OUND M OTIF S EARCH(DNA, t,
n, l)
~s := (1, 1, . . . , 1)
bestScore := 0
i := 1
while i > 0 do
if i<t then
optimisticScore := Score(~s, i, DNA) + (t − i)l
if optimisticScore < bestScore then
(~s, i) := Bypass(~s, i, t, n − l + 1)
else
(~s, i) := NextVertex(~s, i, t, n − l + 1)
end if
else
if Score(~s, DNA) > bestScore then
bestScore := Score(~s, DNA)
bestMotif := ~s
(~s, i) := NextVertex(~s, i, t, n − l + 1)
end if
end if
end while
return bestMotif
end procedure
19 / 23
Tomáš
Oberhuber
Kombinatorické optimalizace
• podobný algoritmus pro hledání medianového řetězce
Hledání
motivů
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure
B RANCH A ND B OUND M EDIAN S TRING S EARCH(DNA, t, n,
l)
~s := (1, 1, . . . , 1)
bestDistance := ∞
i := 1
while i > 0 do
if i<l then
prefix := nucleotid(~s, i)
optimisticDistance :=
TotalDistance(prefix, DNA)
if optimisticDistance > bestDistance then
(~s, i) := Bypass(~s, i, l, 4)
else
(~s, i) := NextVertex(~s, i, l, 4)
end if
else
word := nucleotid(~s, l)
if TotalDistance(word, DNA) < bestDistance
then
17:
18:
19:
20:
21:
22:
23:
24:
TotalDistance := TotalDistance(word, DNA)
bestWord := word
(~s, i) := NextVertex(~s, i, l, 4)
end if
end if
end while
return bestWord
end procedure
20 / 23
Tomáš
Oberhuber
Hledání
motivů
Hladový algoritmus pro hledání
motivů
• jde pouze o aproximační algoritmus, u kterého
neznáme aproximační poměr
• v praxi ale dává dobré výsledky a funguje rychle
• algoritmus je součástí programu Consensus
• Gary Stormo, Gerald Hertz, 1989
Gary Stormo
21 / 23
Tomáš
Oberhuber
Hledání
motivů
Hladový algoritmus pro hledání
motivů
• algoritmus nelprve vezme první dvě DNA sekvence a
najde v nich dva nejbližší l-mery pomocí Hammingovy
vzdálenosti
• následně v každé z t zbyvajících sekvencí najde
nejbližší motiv
• program Consensus navíc v první fázi vybere více
kandidátů na motif, řádově 1000
22 / 23
Tomáš
Oberhuber
Hledání
motivů
Hladový algoritmus pro hledání
motivů
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure G REEDY M OTIF S EARCH(DNA, t, n, l)
bestMotif := (1, 1, . . . , 1)
~s := (1, 1 . . . , 1)
for s1 := 1 to n − l + 1 do
for s2 := 1 to n − l + 1 do
if
Score(~s, 2, DNA) > Score(bestMotif , 2, DNA) then
bestMotif1 := s1
bestMotif2 := s2
end if
end for
end for
s1 := bestMotif1
s2 := bestMotif2
for i := 3 to t do
for si := 1 to n − l + 1 do
if
Score(~s, i, DNA) > Score(bestMotif , i, DNA) then
bestMotifi := si
end if
end for
si := bestMotifi
end for
return bestMotif
end procedure
23 / 23

Podobné dokumenty

Poznámky k přednášce

Poznámky k přednášce výběru vzorků, či naopak při již zmı́něné analýze algoritmů při výběru vstupu z dané distribuce. Pravděpodobnost a jejı́ použitı́ je klı́čové ve von Neumannově teorii (maticovýc...

Více

document [] - Vysoké učení technické v Brně

document [] - Vysoké učení technické v Brně Modelářské regulátory nezajišťují přesné otáčky motoru, řídí pouze napětí na svém výstupu (vstupní napětí motoru). Jde tak v podstatě o měnič řízený signálem. Tento signál je stejný jako používají ...

Více

Příručka pro dodavatele CZ - IMI Precision Engineering

Příručka pro dodavatele CZ - IMI Precision Engineering očekávání a poskytuje přehled formálního postupu, jehož pomocí bude IMI Precision měřit výkonnost dodavatelů a sdělovat výsledky měření. Naším očekáváním je neustálý růst a úspěch jak na straně IMI...

Více