Bài giảng Giải thuật nâng cao - Quy hoạch động cho bài toán - Ngô Quốc Việt

Tóm tắt Bài giảng Giải thuật nâng cao - Quy hoạch động cho bài toán - Ngô Quốc Việt: ... đổi như: đột biến, chèn, xóa. Cho chuỗi AGGCCTC • Mutations AGGACTC • Insertions AGGGCCTC • Deletions AGG . CTC • Ký hiệu • Match: +m • Mismatch: -s • Gap: -d • Scoring đơn giản: Score: F=(# matches)  m-(# mismatches) s–(#gaps)  d Giải thuật nâng cao-DP-Sequence Alignment 11 ... ví dụ Giải thuật nâng cao-DP-Sequence Alignment 18 G - A G T A 0 -1 -2 -3 -4 A -1 1 0 -1 -2 T -2 0 0 1 0 A -3 -1 -1 0 2 F(i,j) i = 0 1 2 3 4 x = AGTA m = 1 y = ATA s = -1 d = -1 j = 0 1 2 3 F(1, 1) = max{F(0,0) + s(A, A), F(0, 1) – d, F(1, 0) – d} = max...GTCCCTGCCGTGTCC @ 36084/68174 hum_a : AACACCATCATCACCCCTCCCCGGCCTCCTCAACCTCGGCCTCCTCCTCG @ 57481/400001 mus_a : AACACCGTCGTCA-CCCTCCCCGGCCTCCTCAACCTCGGCCTCCTCCTCG @ 78708/400001 rat_a : AACACCGTCGTCA-CCCTCCCCGGCCTCCTCAACCTCGGCCTCCTCCTCG @ 112806/369938 fug_a : CCGAGGACCCTGA------------------...

pdf32 trang | Chia sẻ: havih72 | Lượt xem: 233 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Giải thuật nâng cao - Quy hoạch động cho bài toán - Ngô Quốc Việt, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
QUY HOẠCH ĐỘNG CHO BÀI TOÁN 
SEQUENCE ALIGNMENT 
TS. NGÔ QUỐC VIỆT 
2015 
Nội dung 
• Giới thiệu tóm tắt về dự án Human Genome 
• Bài toán sequence alignment 
• Các vấn đề cần giải quyết 
• Scoring system 
• Lập trình động cho vấn đề pairwise alignment 
• Bài toán local sequence alignment 
Giải thuật nâng cao-DP-Sequence Alignment 2 
Human genome project (HGP) – some milestones 
• 1977. Allan Maxam and Walter Gilbert at Harvard University and 
Frederick Sanger at the U.K. Medical Research Council (MRC) phát triển 
các phương pháp sequencing DNA. 
• 1988. NIH (National Institutes of Health) thành lập Office of Human 
Genome Research. 
• 1995. Patrick Brown of Stanford và cộng sự đăng first paper sử dụng 
printed glass microarray of complementary DNA (cDNA) probes 
• Các nhà nghiên cứu ở Whitehead và Généthon (Lander, Thomas 
Hudson at Whitehead) đăng physical map của human genome chứa 
15,000 markers. 
• 1996. NIH tài trợ 6 nhóm giải quyết large-scale sequencing of the 
human genome. 
• An international consortium publicly releases the complete 
 genome sequence of the yeast 
• 1998 NIH công bố dự án tìm SNP (Single Nucleotide Polymorphism) 
• 2001 The HGP consortium publishes its working draft in Nature (15 
February), Celera publishes its draft in Science (16 February). 
• 2006. Sequence tất cả chromosomes finalized. 
Giải thuật nâng cao-DP-Sequence Alignment 3 
Giới thiệu 
• Alignment nhằm: xác định hai hoặc nhiều chuỗi có liên 
quan với nhau hay không (quá trình tiến hóa). 
• Ví dụ: tìm được gene mới của người. Mong muốn xác 
định các tính chất. Khi đó, cần xác định phần tương ứng 
có trong chuột. Có hàng vạn gene của chuột, cần tìm cái 
nào tương ứng nhất với gene vừa tìm được. 
• Align proteins chia sẻ chức năng để xác định các chuỗi 
peptide có ảnh hưởng nhiều đến chức năng đó. 
• Align các chuỗi DNA nhằm xác định (chức năng hay tiến 
hóa) các gene liên quan để tìm các segments gắn liền 
với transcription factors. 
Giải thuật nâng cao-DP-Sequence Alignment 4 
Giới thiệu 
Giải thuật nâng cao-DP-Sequence Alignment 5 
Giới thiệu 
• Alignment là nền tảng để xác định các quan hệ tiến 
hóa. 
• Ví dụ: 
Giải thuật nâng cao-DP-Sequence Alignment 6 
Sequence Alignment 
• Trong thiết kế và/hoặc diễn dịch dữ liệu của các kỹ 
thuật high-throughput screening (dùng trong 
dược) dựa trên chuỗi. Khi đó so sánh chuỗi là cần 
thiết nhằm: 
- Để xác định microarray probes không có sequence 
tương tự với các gene khác. 
- Để match các sequence trong high-throughput 
sequencing data sang genome. 
- Để tìm motifs dựa trên ChIP-chip/ChIP-seq data. 
 Giải thuật nâng cao-DP-Sequence Alignment 7 
Sequence Alignment 
• Định nghĩa: Cho hai chuỗi 𝑥 = 𝑥1𝑥2𝑥𝑀, 𝑦 =
 𝑦1𝑦2𝑦𝑁, 
Alignment là gán các gap vào các vị trí 0,  , 𝑁 trong 
chuỗi x, và 0, , 𝑁 trong y, sao cho align thẳng hàng 
các chữ trong một chuỗi với chữ hoặc gap của chuỗi 
kia. 
 Giải thuật nâng cao-DP-Sequence Alignment 8 
-AGGCTATCACCTGACCTCCAGGCCGA--TGCCC--- 
TAG-CTATCAC--GACCGC--GGTCGATTTGCCCGAC 
AGGCTATCACCTGACCTCCAGGCCGATGCCC 
TAGCTATCACGACCGCGGTCGATTTGCCCGAC 
Sequence Alignment: Các vấn đề 
Không gian tìm kiếm lớn (số các alignments) 
Sequence 1: GSAQVK 
Sequence 2: GNPKVK 
GSAQVK----- GSAQVK---- 
-----GNPKVK ----GNPKVK 
GSAQ--VK -----GSAQVK 
-G-NPKVK GNPKVK----- 
Chọn giải pháp nào?? 
Giải thuật nâng cao-DP-Sequence Alignment 9 
Tiêu chuẩn đánh giá alignment 
AGGCTAGTT, AGCGAAGTTT 
AGGCTAGTT- 6 matches, 3 mismatches, 1 gap 
AGCGAAGTTT 
AGGCTA-GTT- 7 matches, 1 mismatch, 3 gaps 
AG-CGAAGTTT 
AGGC-TA-GTT- 7 matches, 0 mismatches, 5 gaps 
AG-CG-AAGTTT 
Giải thuật nâng cao-DP-Sequence Alignment 10 
Scoring Function 
• Để so sánh độ tương tự giữa hai chuỗi với các thay 
đổi như: đột biến, chèn, xóa. Cho chuỗi AGGCCTC 
• Mutations AGGACTC 
• Insertions AGGGCCTC 
• Deletions AGG . CTC 
• Ký hiệu 
• Match: +m 
• Mismatch: -s 
• Gap: -d 
• Scoring đơn giản: 
Score: F=(# matches)  m-(# mismatches) s–(#gaps)  d 
Giải thuật nâng cao-DP-Sequence Alignment 11 
Scoring Function 
• Độ đo: quasi-statistical model log-likelihood ratio. 
• Ký hiệu: 
• x, y là hai chuỗi, i là vị trí align. 
• Pxiyi: P(xi và yi đúng vị trí align) 
• Pxi: P(xi xuất hiện) 
• Pyi: P(yi xuất hiện) 
• M: một kiểu alignment 
• R: x, y là các chuỗi độc lập 
• Độ đo MLE 
𝑙𝑜𝑔
𝑃 𝑥, 𝑦|𝑀
𝑃 𝑥, 𝑦|𝑅
= 𝑙𝑜𝑔
 𝑃𝑥𝑖𝑦𝑖
 𝑃𝑥𝑖 𝑃𝑦𝑖
= 𝑙𝑜𝑔
𝑃𝑥𝑖𝑦𝑖
𝑃𝑥𝑖𝑃𝑥𝑖
Giải thuật nâng cao-DP-Sequence Alignment 12 
Scoring Function 
• M trong độ đo “quasi-statistical model log-likelihood 
ratio” là một lời giải sequence alignment. 
• Trong thực tế có thể sử dụng nhiều “lời giải” khác 
nhau 𝑀1, 𝑀2,  ,𝑀𝑛 
• Theo Bayes Rule 
𝑃 𝑀𝑖|𝑥, 𝑦 =
𝑃 𝑥, 𝑦|𝑀𝑖 𝑃 𝑀𝑖
 𝑃 𝑥, 𝑦|𝑀𝑗 𝑃 𝑀𝑗
∝ 𝑃 𝑥, 𝑦|𝑀𝑖 
• Mục tiêu là tìm alignment tốt nhất sao cho cực đại 
 𝑙𝑜𝑔
𝑃𝑥𝑖𝑦𝑖
𝑃𝑥𝑖𝑃𝑥𝑖
Giải thuật nâng cao-DP-Sequence Alignment 13 
Scoring Function 
Nhận xét: 
 Score của alignment x1xM 
 y1yN 
 có tính cộng 
Nghĩa là x1xi xi+1xM 
align với y1yj yj+1yN 
Hai scores có thể cộng: 
F(x[1:M], y[1:N]) = F(x[1:i], y[1:j]) + F(x[i+1:M], y[j+1:N]) 
Giải thuật nâng cao-DP-Sequence Alignment 14 
Quy hoạch động 
• There are only a polynomial number of subproblems 
• Align x1xi to y1yj 
• Original problem is one of the subproblems 
• Align x1xM to y1yN 
• Each subproblem is easily solved from smaller subproblems 
• Then, we can apply Dynamic Programming!!! 
Đặt 
 F(i, j) = optimal score of aligning 
 x1xi 
 y1yj 
Giải thuật nâng cao-DP-Sequence Alignment 15 
Sequence Alignment - Quy hoạch động 
• Có 3 trường hợp 
Giải thuật nâng cao-DP-Sequence Alignment 16 
1. xi align với yj 
 x1xi-1 xi 
 y1yj-1 yj 
2. xi align với gap 
 x1xi-1 xi 
 y1yj - 
3. yj aligns với gap 
 x1xi - 
 y1yj-1 yj 
 m, if xi = yj 
F(i, j) = F(i – 1, j – 1) + 
 -s, if not 
F(i, j) = F(i – 1, j) – d 
F(i, j) = F(i, j – 1) – d 
Sequence Alignment - Quy hoạch động 
Giả sử quy nạp : 
 F(i, j – 1), F(i – 1, j), F(i – 1, j – 1) là tối ưu 
Thì, 
 F(i – 1, j – 1) + s(xi, yj) 
 F(i, j) = max F(i – 1, j) – d 
 F(i, j – 1) – d 
Với s(xi, yj) = m, if xi = yj; -s, if not 
 Giải thuật nâng cao-DP-Sequence Alignment 17 
Sequence alignment – ví dụ 
Giải thuật nâng cao-DP-Sequence Alignment 18 
G 
 - 
A G T A 
0 -1 -2 -3 -4 
A -1 1 0 -1 -2 
T -2 0 0 1 0 
A -3 -1 -1 0 2 
F(i,j) i = 0 1 2 3 4 
x = AGTA m = 1 
y = ATA s = -1 
 d = -1 
j = 0 
1 
2 
3 
F(1, 1) = 
max{F(0,0) + s(A, A), 
 F(0, 1) – d, 
 F(1, 0) – d} = 
max{0 + 1, 
 -1 – 1, 
 -1 – 1} = 1 
A 
A 
T 
T 
A 
A 
Output Alignment 
• Theo vết backpointers 
• Gặp diagonal, 
OUTPUT xi, yj 
• Gặp up,
OUTPUT yj 
• Gặp left, 
OUTPUT xi 
Giải thuật Needleman-Wunsch 
Giải thuật nâng cao-DP-Sequence Alignment 19 
1. Initialization. 
a. F(0, 0) = 0 
b. F(0, j) = - j  d 
c. F(i, 0) = - i  d 
2. Main Iteration. Filling-in partial alignments 
a. For each i = 1M 
 For each j = 1N 
 F(i – 1,j – 1) + s(xi, yj) [case 1] 
 F(i, j) = max F(i – 1, j) – d [case 2] 
 F(i, j – 1) – d [case 3] 
 DIAG, if [case 1] 
 Ptr(i, j) = LEFT, if [case 2] 
 UP, if [case 3] 
3. Termination. F(M, N) is the optimal score, and 
 from Ptr(M, N) can trace back optimal alignment 
Local alignment 
Giải thuật nâng cao-DP-Sequence Alignment 20 
Cho hai chuỗi x = x1xM, 
 y = y1yN 
Tìm substrings x’, y’ sao cho có độ tương tự 
 (optimal global alignment value) 
 lớn nhất 
 x = aaaacccccggggtta 
 y = ttcccgggaaccaacc 
Lý do cần local alignment 
Giải thuật nâng cao-DP-Sequence Alignment 21 
• Genes are shuffled between genomes 
• Các phần của các protein thường được bảo toàn 
Sự tương tự genome Cross-species 
Giải thuật nâng cao-DP-Sequence Alignment 22 
• 98% genes được duy trì giữa hai loài động vật có vú bất kỳ 
• Nhiều hơn 70% average similarity trong protein sequence 
hum_a : GTTGACAATAGAGGGTCTGGCAGAGGCTC--------------------- @ 57331/400001 
mus_a : GCTGACAATAGAGGGGCTGGCAGAGGCTC--------------------- @ 78560/400001 
rat_a : GCTGACAATAGAGGGGCTGGCAGAGACTC--------------------- @ 112658/369938 
fug_a : TTTGTTGATGGGGAGCGTGCATTAATTTCAGGCTATTGTTAACAGGCTCG @ 36008/68174 
hum_a : CTGGCCGCGGTGCGGAGCGTCTGGAGCGGAGCACGCGCTGTCAGCTGGTG @ 57381/400001 
mus_a : CTGGCCCCGGTGCGGAGCGTCTGGAGCGGAGCACGCGCTGTCAGCTGGTG @ 78610/400001 
rat_a : CTGGCCCCGGTGCGGAGCGTCTGGAGCGGAGCACGCGCTGTCAGCTGGTG @ 112708/369938 
fug_a : TGGGCCGAGGTGTTGGATGGCCTGAGTGAAGCACGCGCTGTCAGCTGGCG @ 36058/68174 
hum_a : AGCGCACTCTCCTTTCAGGCAGCTCCCCGGGGAGCTGTGCGGCCACATTT @ 57431/400001 
mus_a : AGCGCACTCG-CTTTCAGGCCGCTCCCCGGGGAGCTGAGCGGCCACATTT @ 78659/400001 
rat_a : AGCGCACTCG-CTTTCAGGCCGCTCCCCGGGGAGCTGCGCGGCCACATTT @ 112757/369938 
fug_a : AGCGCTCGCG------------------------AGTCCCTGCCGTGTCC @ 36084/68174 
hum_a : AACACCATCATCACCCCTCCCCGGCCTCCTCAACCTCGGCCTCCTCCTCG @ 57481/400001 
mus_a : AACACCGTCGTCA-CCCTCCCCGGCCTCCTCAACCTCGGCCTCCTCCTCG @ 78708/400001 
rat_a : AACACCGTCGTCA-CCCTCCCCGGCCTCCTCAACCTCGGCCTCCTCCTCG @ 112806/369938 
fug_a : CCGAGGACCCTGA------------------------------------- @ 36097/68174 
Ví dụ các chuỗi tương 
tự trong human, rat, 
mouse, cá nóc (fugu) 
Giải thuật Smith-Waterman 
Giải thuật nâng cao-DP-Sequence Alignment 23 
Ý tưởng: bỏ qua các vùng badly aligning 
Điều chỉnh giải thuật Needleman-Wunsch: 
Khởi tạo: F(0, j) = F(i, 0) = 0 
 0 
Iteration: F(i, j) = max F(i – 1, j) – d 
 F(i, j – 1) – d 
 F(i – 1, j – 1) + s(xi, yj) 
Smith-Waterman algorithm 
Giải thuật nâng cao-DP-Sequence Alignment 24 
Kết thúc: 
1. Nếu muốn best local alignment 
 FOPT = maxi,j F(i, j) 
 Tìm FOPT và theo vết ngược 
2. Nếu muốn all local alignments có scoring > t 
 For all i, j find F(i, j) > t, and trace back? 
Complicated by overlapping local alignments 
( Waterman–Eggert ’87: find all non-overlapping local alignments with 
 minimal recalculation of the DP matrix ) 
Scoring các gap chính xác hơn 
Mô hình hiện tại: 
 Gap chiều dài n 
 incurs penalty nd 
Tuy nhiên, gaps thường xuất hiện thành các nhóm 
Khi đó, dùng hàm Convex gap penalty: 
 (n): 
 for all n, (n + 1) - (n)  (n) - (n – 1) 
(n) 
(n) 
Convex gap dynamic programming 
Khởi tạo: không thay đổi 
Iteration: 
 F(i – 1, j – 1) + s(xi, yj) 
 F(i, j) = max maxk=0i-1F(k, j) – (i – k) 
 maxk=0j-1F(i, k) – (j – k) 
Termination: không thay đổi 
Running Time: O(N2M) (giả sử N>M) 
Space: O(NM) 
Compromise: affine gaps 
(n) = d + (n – 1)  e 
 | | 
 gap gap 
 open extend 
Để tính optimal alignment, 
Tại vị trí i, j, cần “lưu trữ” best score nếu gap là open 
 best score if gap là not open 
F(i, j): score của alignment x1xi với y1yj 
 if xi aligns to yj 
G(i, j): score if xi aligns với gap sau yj 
H(i, j): score if yj aligns với gap sau xi 
V(i, j) = best score của alignment x1xi to y1yj 
d 
e 
(n) 
Needleman-Wunsch with affine gaps 
Vì sao cần 3 ma trận F, G, H? 
• xi aligns to yj 
 x1xi-1 xi xi+1 
 y1yj-1 yj - 
• xi aligns to a gap after yj 
 x1xi-1 xi xi+1 
 y1yj - - 
Add -d 
Add -e 
G(i+1, j) = F(i, j) – d 
G(i+1, j) = G(i, j) – e 
Vì: 
G(i, j) < V(i, j) 
(best để align xi với yj nếu đang align 
chỉ x1xi với y1yj và not the rest of x, y), 
Nhưng ngược lại 
G(i, j) – e > V(i, j) – d 
(i.e., had we “fixed” our decision that xi aligns 
to yj, we could regret it at the next step when 
aligning x1xi+1 to y1yj) 
Needleman-Wunsch dùng affine gaps 
Khởi tạo: V(i, 0) = d + (i – 1)e 
 V(0, j) = d + (j – 1)e 
Lặp: 
 V(i, j) = max{ F(i, j), G(i, j), H(i, j) } 
 F(i, j) = V(i – 1, j – 1) + s(xi, yj) 
 V(i – 1, j) – d 
 G(i, j) = max 
 G(i – 1, j) – e 
 V(i, j – 1) – d 
 H(i, j) = max 
 H(i, j – 1) – e 
Kết thúc: V(i, j) có best alignment 
Bounded Dynamic Programming 
Giả sử x và y rất tương tự 
Giải sử: # gaps(x, y) < k(N) 
 xi 
 Thì, | suy ra | i – j | < k(N) 
 yj 
Có thể align x và y hiệu quả hơn: 
 Time, Space: O(N  k(N)) << O(N2) 
Bounded Dynamic Programming 
Khởi tạo: 
 F(i,0), F(0,j) không xác định cho i, j > k 
Lặp: 
For i = 1M 
 For j = max(1, i – k)min(N, i+k) 
 F(i – 1, j – 1)+ s(xi, yj) 
 F(i, j) = max F(i, j – 1) – d, if j > i – k(N) 
 F(i – 1, j) – d, if j < i + k(N) 
Termination: không thay đổi 
Dễ dàng áp dụng cho affine gap 
x1  xM 
y
1
y
N
k(N) 
Tóm tắt 
• Global sequence alignment 
• Needleman–Wunsch 
• Overlap detection 
• Banded alignment 
• Convex gaps 
• Affine gaps 
• Local sequence alignment 
• Smith-Waterman 
Giải thuật nâng cao-DP-Sequence Alignment 32 

File đính kèm:

  • pdfbai_giang_giai_thuat_nang_cao_quy_hoach_dong_cho_bai_toan_ng.pdf