Chương này gồm có những nội dung chính sau: 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. Mời tham khảo.
Trang 1QUY HOẠCH ĐỘNG CHO BÀI TOÁN
SEQUENCE ALIGNMENT
TS NGÔ QUỐC VIỆT
2015
Trang 2Nội dung
• Các vấn đề cần giải quyết
• Scoring system
• Lập trình động cho vấn đề pairwise alignment
Giải thuật nâng cao-DP-Sequence Alignment 2
Trang 3Human 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
Trang 4Giải thuật nâng cao-DP-Sequence Alignment 4
Trang 5Giới thiệu
Giải thuật nâng cao-DP-Sequence Alignment 5
Trang 7Sequence Alignment
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:
tương tự với các gene khác
sequencing data sang genome
Giải thuật nâng cao-DP-Sequence Alignment 7
Trang 8Sequence 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
AGGCTATCACCTGACCTCCAGGCCGATGCCC TAGCTATCACGACCGCGGTCGATTTGCCCGAC
Trang 10Tiêu chuẩn đánh giá alignment
Trang 11Scoring Function
• Scoring đơn giản:
Giải thuật nâng cao-DP-Sequence Alignment 11
Trang 14F(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
Trang 15• Each subproblem is easily solved from smaller subproblems
• Then, we can apply Dynamic Programming!!!
Trang 16Sequence Alignment - Quy hoạch động
Trang 17Sequence Alignment - Quy hoạch động
Trang 18F(1, 0) – d} =
max{0 + 1, -1 – 1, -1 – 1} = 1
Trang 19Giải thuật Needleman-Wunsch
Giải thuật nâng cao-DP-Sequence Alignment 19
from Ptr(M, N) can trace back optimal alignment
Trang 20Local alignment
Giải thuật nâng cao-DP-Sequence Alignment 20
Cho hai chuỗi x = x1……xM,
y = y1……yN
Tìm substrings x’, y’ sao cho có độ tương tự
(optimal global alignment value)
lớn nhất
Trang 21Lý 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
Trang 22Sự 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
Trang 23Giả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
Trang 24Smith-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 )
Trang 25Scoring các gap chính xác hơn
Mô hình hiện tại:
Gap chiều dài n
incurs penalty nd
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)
Trang 26Convex 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=0…i-1F(k, j) – (i – k) maxk=0…j-1F(i, k) – (j – k)
Termination: không thay đổi
Running Time: O(N2M) (giả sử N>M)
Space: O(NM)
Trang 27Compromise: affine gaps
Tại vị trí i, j, cần “lưu trữ” best score nếu gap là open
F(i, j): score của alignment x1…xi với y1…yj
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 x1…xi to y1…yj
(n)
Trang 28Needleman-Wunsch with affine gaps
(best để align xi với yj nếu đang align
chỉ x1…xi với y1…yj 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 x1…xi+1 to y1…yj)
Trang 29Needleman-Wunsch dùng affine gaps
Trang 30Bounded Dynamic Programming
Có thể align x và y hiệu quả hơn:
Time, Space: O(N k(N)) << O(N2)
Trang 31Bounded 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 = 1…M 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)
Dễ dàng áp dụng cho affine gap