Cácthuật toán biclustering sẽ tìm cách phân cụm đồng thời trên các hàng gien vthuật toán biclustering sẽ tìm cách phân cụm đồng thời trên các hàng gien vààcột condition của ma trận dữ li
Trang 1MỞ ĐẦU
1 Lý do chọn đề tài
Việc phân tích dữ liệu biểu hiện gien, mà cụ thể là phân nhóm các gien
có sự biểu hiện giống nhau trong từng thời điểm thành các nhóm (cluster)được thực hiện bởi các thuật toán phân cụm (clustering methods) Các thuậttoán này
toán này thường tìm cách nhóm các gien có sự biểu hiện phụ thuộc nhau trênthường tìm cách nhóm các gien có sự biểu hiện phụ thuộc nhau trêntoàn bộ các điều kiện thí nghiệm
toàn bộ các điều kiện thí nghiệm. Tuy nhiên, trên thực tế các gien thường chỉTuy nhiên, trên thực tế các gien thường chỉthể hiện phụ thuộc với nhau trên một số điều kiện nào đó và độc lập với nhautrong điều kiện khác Điều này dẫn đến
trong điều kiện khác Điều này dẫn đến một hạn chế rất lớn của một hạn chế rất lớn của các thuật toáncác thuật toánclustering là không thể tìm ra được các gien chỉ thể hiện giống nhau trên một
số điều kiện thí nghiệm Để khắc phục hạn chế này, người ta đã đề xuất một phương
phương pháp pháp phân phân cụm cụm mới mới có có tên tên là là biclustering biclustering (hoặc (hoặc coco-clustering) Các-clustering) Cácthuật toán biclustering sẽ tìm cách phân cụm đồng thời trên các hàng (gien) vthuật toán biclustering sẽ tìm cách phân cụm đồng thời trên các hàng (gien) vààcột (condition) của ma trận dữ liệu biểu hiện gien nhằm tìm ra các ma trậncon thoả mãn một số tiêu chí đặt ra, từ đó có thể giúp chúng ta hiểu thêm cáctiến trình sinh học giữa các gien trong các cá thể Nhưng gần như tất cả các phương pháp tiếp cận
phương pháp tiếp cận đến nay là đến nay là heuristic và không đảm bheuristic và không đảm bảo để tìm giải phápảo để tìm giải pháptối ưu
Trong trường hợp dữ liệu biểu hiện gienTrong trường hợp dữ liệu biểu hiện gien theo chuỗi thời giantheo chuỗi thời gian, thì các, thì cácmẫu sinh học thường được đo theo một thời điểm
mẫu sinh học thường được đo theo một thời điểm nhất định nhằmnhất định nhằm quan sátquan sátcác tiến trình sinh học xảy ra trong các cá thể Vì vậy, việc tìm ra các mẫu cóthể hiện giống nhau trong một khoảng thời gian
thể hiện giống nhau trong một khoảng thời gian liên tụcliên tục nào đónào đó,, có thể hìnhcó thể hìnhdung như chúng vừa hoàn thành 1 tiến trình sinh học, hoặc một giai đoạnchức năng sinh học nào đó
chức năng sinh học nào đó. Việc phân tíchViệc phân tích trêntrên dữ liệudữ liệu thể hiện gien cho phépthể hiện gien cho phéphiểu được cơ chế điều khiển gien và tương tác giữa chúng, các tri thức này cóthể được sử dụng trong nghiên cứu chế tạo thuốc, phát hiện khối u, và các
Trang 2nghiên cứu lâm sàng.
nghiên cứu lâm sàng. Các mẫu dữ liệu này có thể coi như là một bicluster Các mẫu dữ liệu này có thể coi như là một bicluster gồm
gồm các hàng vàcác hàng và các cột liên tụccác cột liên tục trong ma trận.trong ma trận.
Với trường hợpVới trường hợp dữ liệu biểu hiệndữ liệu biểu hiện gien theogien theo chuỗi thời gianchuỗi thời gian,, người ta đãngười ta đã
đề xuất các thuật toán hiệu quả
đề xuất các thuật toán hiệu quả với thời gian chạy là tuyến tính, hoặc một hàmvới thời gian chạy là tuyến tính, hoặc một hàm
đa thức để tìm ra các bicluster tốt Các thuật toán này không khai phá trực tiếp
dữ liệu gốc, mà sẽ chuẩn hóa sang một dạng dữ liệu mới, sau đó xây dựng các
dữ liệu gốc, mà sẽ chuẩn hóa sang một dạng dữ liệu mới, sau đó xây dựng các cây
cây hậuhậu tố để tìm kiếm Mỗi cây hậutố để tìm kiếm Mỗi cây hậu tố sẽ biểu diễn một ma trận dữ liệu, vàtố sẽ biểu diễn một ma trận dữ liệu, vàviệc tìm các bicluster được coi như tìm một xâu con chung lớn nhất của mộttập các xâu dựa vào cây hậu
tập các xâu dựa vào cây hậu tố.tố
Trong luận văn này, chúng tôi đặt mục tiêu nghiên cứu và ứng dụng cácthuật toán này trong việc khai phá các bicluster trong dữ liệu biểu hiện gientheo
theo chuỗi thời gianchuỗi thời gian dựa trên cây hậu tốdựa trên cây hậu tố
thu được.
3 Đối tượng nghiên cứu
Các lý thuyết cơ bản về cây hậu tố.Các lý thuyết cơ bản về cây hậu tố.
Các lý thuyết cơ bản về phân cụm dữ liệu và dữ liệu biểu hiện gienCác lý thuyết cơ bản về phân cụm dữ liệu và dữ liệu biểu hiện gientheo chuỗi thời gian
theo chuỗi thời gian.
4 Giả thuyết khoa học
Việc sử dụng các thuật toán biclustering sẽ cho phép tìm ra được cácViệc sử dụng các thuật toán biclustering sẽ cho phép tìm ra được cácgien
gien thể hiện giống nhau trên một khoảngthể hiện giống nhau trên một khoảng điều kiện, từ đó có thể tìm ra cácđiều kiện, từ đó có thể tìm ra cácgien liên quan đến một số tiến trình sinh học cụ thể
gien liên quan đến một số tiến trình sinh học cụ thể.
5 Nhiệm vụ nghiên cứu
Tìm hiểu một số thuật toán biclustering hiệu quảTìm hiểu một số thuật toán biclustering hiệu quả
Trang 3Cài đặt một số thuật toán vCài đặt một số thuật toán và thử nghiệm với dữ liệu thực tếà thử nghiệm với dữ liệu thực tế
thời gian của một số loài.
7 Phương pháp nghiên cứu
Phương pháp đọc tài liệu, phân tích, tổng hợp lý thuyếtPhương pháp đọc tài liệu, phân tích, tổng hợp lý thuyết Phương pháp xây dựng giả thuyếtPhương pháp xây dựng giả thuyết
Phương pháp quan sát, thực nghiệm và đối chứng.Phương pháp quan sát, thực nghiệm và đối chứng.
Trang 4NỘ I DUNG
Chương I GIỚI THIỆ U
11.1 Dữ liệu biểu hiện gien th.1 Dữ liệu biểu hiện gien theo chuỗi thời gianeo chuỗi thời gian
có từ vài nghìn tới vài chục nghìn
có từ vài nghìn tới vài chục nghìn dòng và từ vài cột cho tới vài trăm cột.dòng và từ vài cột cho tới vài trăm cột.
Khi chúng taKhi chúng ta phân phân tích tích dữ dữ liệuliệu biểu biểu hiệnhiện giengien theo chuỗi thời gian,theo chuỗi thời gian,chúng ta
chúng ta cần tìm các mẫu (bicluster) dữ liệu gồm các dòng có thể không cầncần tìm các mẫu (bicluster) dữ liệu gồm các dòng có thể không cầnliên tục, nhưng các cột liên tục (theo thời gian)
liên tục, nhưng các cột liên tục (theo thời gian) Điều đó dẫn đếnĐiều đó dẫn đến giảm bớt độgiảm bớt độ phức
phức tạp tạp và và biến biến đổiđổi của thuật toáncủa thuật toán biclusteringbiclustering so với trường hợp tìm cácso với trường hợp tìm các bicluster
bicluster thông thông thườngthường CChúng ta quan tâm đếnhúng ta quan tâm đến quá trìnhquá trình sinh học diễn rasinh học diễn ratrong suốt tiến
trong suốt tiến trình từtrình từ khikhi bắt bắt đầu đầu đếnđến khikhi kết thúckết thúc để biết được sự biến đổiđể biết được sự biến đổicủa một gien hoặc một nhóm gien sau một tiến trình sinh học nào đó
của một gien hoặc một nhóm gien sau một tiến trình sinh học nào đó Như Nhưvậy, trong trường hợp này một bicluster là một tập con các dòng (gien) và mộttập con liên tục các cột (điều kiện)
tập con liên tục các cột (điều kiện) Như Như hình 1.1hình 1.1 minh họaminh họa 3 quá trình sinh3 quá trình sinhhọc
học (P1, P2 và P3) của các tập gien(P1, P2 và P3) của các tập gien khác nhaukhác nhau được miêu tả bằng 3 bđược miêu tả bằng 3 biclustersiclustersvới các cột liên tục
với các cột liên tục
Mục đích cuối cùng củaMục đích cuối cùng của cáccác thuật toánthuật toán biclustering biclustering trong trong trường trường hợphợpnày là tì
này là tìm ra một tập con các biclustersm ra một tập con các biclusters Bk = = (I (I k , , J J k )) vớivới cáccác cột liền kề,cột liền kề, màmàmỗi bicluster Bk cócó thể hiện cácthể hiện các tính ctính chấthất đặc trưng riêngđặc trưng riêng trong mỗi quá trìnhtrong mỗi quá trìnhsinh học nhất định
sinh học nhất định
Trang 5Hình 1.1 Quá trình sinh học và biclusters với các cột liền kề
1.2 Các kiểu thuật toán Biclustering
Mặc dù nhiều thuật toán đã đượcMặc dù nhiều thuật toán đã được đề xuất để giải quyết các vấn đềđề xuất để giải quyết các vấn đềchung của biclusterin
chung của biclustering [10], [23]g [10], [23] như phân lớp và dự đoán, khai phá chuỗinhư phân lớp và dự đoán, khai phá chuỗitheo thời gian, phân cụm
theo thời gian, phân cụm và đã biết đến tầm quan trọng củavà đã biết đến tầm quan trọng của việc phát hiệnviệc phát hiệncác mẫu cục bộ
các mẫu cục bộ,, nhưng chỉ có một vài đề xuất gần đây đã giải quyết vấn đềnhưng chỉ có một vài đề xuất gần đây đã giải quyết vấn đềnày trong trường hợp cụ thể của
này trong trường hợp cụ thể của dữ liệu biểu hiện gien theodữ liệu biểu hiện gien theo chuỗi thời gianchuỗi thời gian Những phương pháp tiếp cận
Những phương pháp tiếp cận đóđó thuộcthuộc một trong haimột trong hai nhóm cácnhóm các thuật toánthuật toán sau:sau:
1
1 Tìm kiếm tham lam lặp đi lặp lạiTìm kiếm tham lam lặp đi lặp lại (Greedy iterative search):(Greedy iterative search): nhưnhưthuật toán
thuật toán CC-TSB[30].CC-TSB[30]
2 Liệt kê đầy đủ
2 Liệt kê đầy đủ (Exhaustive enumeration):(Exhaustive enumeration): như các thuật toánnhư các thuật toán q-Clustering [12], q-Subsequences [27], ts-Clustering [28], CCC-Biclustering[17] và e-CCC-Biclustering [18]
q- Những
Những phương phương pháppháp nàynày làm việc với mộtlàm việc với một ma trậnma trận biểu biểu hiệnhiện gien,gien,nnhằmhằm tìm kiếmtìm kiếm các biclusterscác biclusters bằng cách bằng cách xác định tậpxác định tập con các gien vàcon các gien và tập contập concác
các điều kiệnđiều kiện ((thời điểmthời điểm)) trong khoảng thời giantrong khoảng thời gian liên tụcliên tục Thuật toánThuật toán CCC-Biclustering [17] và e-CCC-Biclustering [18]
CCC-Biclustering [17] và e-CCC-CCC-Biclustering [18] thuộc nhóm thuật toán liệt kêthuộc nhóm thuật toán liệt kêđầy đủ, sẽ được
đầy đủ, sẽ được trình bàytrình bày trong luậntrong luận vănvăn vàvà mô tảmô tả chi tiết ở chi tiết ở chươngchương 3, c3, cả haiả haith
thuật toánuật toán giải quyết bài toángiải quyết bài toán theo hướng dựa vàotheo hướng dựa vào ma trận biểu hiện gma trận biểu hiện gien theoien theochuỗi thời gian, để tìm các biclusters với mẫu biểu hiện
chuỗi thời gian, để tìm các biclusters với mẫu biểu hiện hoàn hảo vàhoàn hảo và mẫu biểumẫu biểuhiện
Trang 6Dưới đây chúng tôi xin trình bày tóm tắt ý tưởng của các thuật toán biclustering
biclustering đã đã được được một một số số tác tác giả giả đề đề xuất, xuất, để để giải giải quyết quyết bài bài toán toán tìm tìm cáccác biclusters trong dữ liệu biể
biclusters trong dữ liệu biểu hiện gien theou hiện gien theo chuỗichuỗi thời gian.thời gian.
1.2.1 Thuật toán CC-TSB
Zhang [30Zhang [30] đề xuất thuật toán] đề xuất thuật toán CC-TSB (Time-Series Biclustering),CC-TSB (Time-Series Biclustering),trong đó có cải tiến
trong đó có cải tiến các thuật toán heuristic của Chengcác thuật toán heuristic của Cheng and Church [4and Church [4], bằng], bằngcách thêm
cách thêm hoặc xoáhoặc xoá một phần cột tiếp giápmột phần cột tiếp giáp củacủa biclusterbicluster đãđã xây dựng,xây dựng, do đódo đó bicluster kết quả chỉ có các cột l
bicluster kết quả chỉ có các cột liền kề niền kề nhau.hau
TThuật toáhuật toán CC-TSB có hain CC-TSB có hai thủ tụcthủ tục chính là:chính là: thủ tụcthủ tục xóa vàxóa và thủ tục chènthủ tục chènlặp đi lặp lại
lặp đi lặp lại Kết quảKết quả thu được của thuật toán là một ma trận thu được của thuật toán là một ma trận con, miêu tả mộtcon, miêu tả một bicluster Đầu
bicluster Đầu tiên thuật toántiên thuật toán thực hiện, các ma trận con được xem như làthực hiện, các ma trận con được xem như là toàntoàn bộ
bộ ma trận biểuma trận biểu hiệnhiện gien Sgien Sau đó loại bỏ dầnau đó loại bỏ dần các hàng (gcác hàng (gien) và các cột (thờiien) và các cột (thờiđiểm) từ ma trận con, với mục đích
điểm) từ ma trận con, với mục đích giảm thiểugiảm thiểu bình bình phươngphương trung bình dtrung bình dưưlượng (
lượng (MSR) [4MSR) [4] của ma trận con] của ma trận con kết quả Một hàng được lấy ra từ ma trậnkết quả Một hàng được lấy ra từ ma trậncon
con nếunếu cócó thể hiện khác với nhữngthể hiện khác với những hànghàng còn lạicòn lại trong ma trận, được đo bởi tỷtrong ma trận, được đo bởi tỷ
lệ MSR Nếu tỷ lệ này lớn hơn một ngưỡng thực nghiệ
lệ MSR Nếu tỷ lệ này lớn hơn một ngưỡng thực nghiệmm , hàng đó sẽ bị, hàng đó sẽ bị loạiloại
thao tác xóa thao tác chèn thêm: nếu MSR thêm: nếu MSR củacủa mộtmột hàng nàohàng nào đó trongđó trong ma trậnma trậncon
con nhỏ hơnnhỏ hơn , g, gien tương ứng với hàng đó sẽ được chènien tương ứng với hàng đó sẽ được chèn vào bicluster.vào bicluster ThỏaThỏamãn với yêu
mãn với yêu cầu tiếp giáp trong các cột, chỉ có vùng lân cậncầu tiếp giáp trong các cột, chỉ có vùng lân cận của ma trận concủa ma trận conmới
mới được xem xét để chèn.được xem xét để chèn.
Trang 71.2.2 Thuật toán q-Clustering
Như trong Như trong các các thuật toán thuật toán biclustering đbiclustering đã đề ã đề xuấtxuất, Ji and Tan [12] quan, Ji and Tan [12] quantâm đến việc tìm kiếm biclusters
tâm đến việc tìm kiếm biclusters vvới các cột liên tục,ới các cột liên tục, được xác định bằngđược xác định bằng mộtmột mẫu
mẫu biểu hiện biểu hiện làlà tập các ký hiệu liền kềtập các ký hiệu liền kề trong bảng chữ cái cho trước.trong bảng chữ cái cho trước. ThuậtThuậttoán có ba giai đoạn, được mô tả
toán có ba giai đoạn, được mô tả như sau:như sau:
Giai đoạn 1:: CChuyển ma trậnhuyển ma trận Ma trận biểu hiện gien gốcMa trận biểu hiện gien gốc được chuyểnđược chuyển thành một ma trận
cùng chuỗi trình tựtrình tự vớivới chiều dài (chiều dài (q q - - 1 1), trong đó q là một tham số Mỗilà một tham số Mỗi
q-cluster có mcó một định danh duy nhất, gọi làột định danh duy nhất, gọi là q-clusterID Các q-cluster được tạođược tạo
ra như sau: mỗi hàng (g
ra như sau: mỗi hàng (giien) trong ma trậnen) trong ma trận ""dốcdốc",", sử dụngsử dụng một khungmột khung trượttrượt cócóđộ
độ dài (dài (q - q - 1 1)) để kiểm trađể kiểm tra Khi Khi kiểm tra một chuỗi con (kiểm tra một chuỗi con (q - 1)) được xác địnhđược xác định làlà
q-clusterID thìthì cặp (cặp (GeneID, st ) được đưa vào nhóm q-cluster tương ứngtương ứng, trong, trong
đóGeneID là tênlà tên của gcủa gien vàien và st là vị trílà vị trí điểm bắt đầu củađiểm bắt đầu của khungkhung trượttrượt ((q -1)
Để xác định chất lượng của
Để xác định chất lượng của biclusterbicluster, ta sử dụng giá trị, ta sử dụng giá trị MSR, do đó, do đó nếunếu
MSR nhỏ hơn giá trị do ngườinhỏ hơn giá trị do người dùng quy địnhdùng quy định thì những bicluster chất lượngthì những bicluster chất lượngtốt sẽ
tốt sẽ được giữ lạiđược giữ lại, và, và phần phần kháckhác có thể được loại bỏ.có thể được loại bỏ.
Giai đoạn 3Giai đoạn 3:: Đưa ra cácĐưa ra các biclusterbicluster từtừ q-clusters vàvà sắp xếp theo vị trísắp xếp theo vị trí st ,,tất cả các cặ
tất cả các cặp (p (GeneID,, st ) có cùng) có cùng vị trí đượcvị trí được nhóm lại với nhau và xác địnhnhóm lại với nhau và xác địnhbicluster trong
bicluster trong mỗimỗi q-cluster với tất cả các gien cùngvới tất cả các gien cùng vị trívị trí bắt đầu bắt đầu cùng mẫucùng mẫuvới q điều kiệnđiều kiện Các bicluster Các bicluster có giá trị MSR nhỏ hơn giá trị người dùng địnhcó giá trị MSR nhỏ hơn giá trị người dùng địnhnghĩa sẽ có chất lượng tốt hơn
nghĩa sẽ có chất lượng tốt hơn.
1.2.3 Thuật toán q-Subsequences
Zeng and Liu [27Zeng and Liu [27] đề xuất] đề xuất cáchcách tiếp cận biclustering cho việc phântiếp cận biclustering cho việc phân tíchtíchkhoảng thời gian
khoảng thời gian trongtrong cụm dữ liệu biểucụm dữ liệu biểu hiệnhiện giengien, kết hợp phương pháp của, kết hợp phương pháp của
Trang 8q-Clustering vă một sốvă một số ý tưởng của thuật toâný tưởng của thuật toân CCC-Biclustering TThực chấthực chấtcâch tiếp cận
câch tiếp cận lălă q-Clustering dựa trín cđy hậu tốdựa trín cđy hậu tố Tuy nhiín, Tuy nhiín, lại khônglại không xĩtxĩt tớitới câc mối quan hệ
câc mối quan hệ tâc động bíntâc động bín ngoăi vă câc mngoăi vă câc mẫu xấpẫu xấp xỉxỉ Đầu tiínĐầu tiín ma trậnma trận dữdữliệu biểu hiện gien được
liệu biểu hiện gien được chuyển đổichuyển đổi như trongnhư trong kỹ thuậtkỹ thuật q-Clustering Sau đóSau đóxđy dựng một cđy hậu tố
xđy dựng một cđy hậu tố tổng quât cho tậptổng quât cho tập câccâc chuỗi xâc địnhchuỗi xâc định mẫumẫu chocho mỗimỗigien trong
gien trong chuỗichuỗi thời gianthời gian của ma trận biểu hiệncủa ma trận biểu hiện Mục tiíu để tìmMục tiíu để tìm câccâcbiclusters
biclusters với câc cột liền kề nhau mă mẫuvới câc cột liền kề nhau mă mẫu biểu biểu hiệnhiện cócó chiều dăichiều dăi q vă trongkhoảng thời gian
khoảng thời gian hoạt động của gienhoạt động của gien Để lăm được điều năy sau khi xđy dựĐể lăm được điều năy sau khi xđy dựngngcđy hậu tố
cđy hậu tố ban đầu cho ban đầu cho tậptập câccâc chuỗi,chuỗi, tất cả câc nút có độ sđu tất cả câc nút có độ sđu lớn hơnlớn hơn q bị xóa bị xóa bỏ
bỏ Câc thông t Câc thông tin trong mỗi nút lâin trong mỗi nút lâ ((chứa sốchứa số lần xuất hiện củalần xuất hiện của q-subsequence))được
được phđn tích vă sử dụng để xâc định phđn tích vă sử dụng để xâc định câc bicluster trongcâc bicluster trong khoảng thời giankhoảng thời gian văvă
q thời điểm.thời điểm NNút lâ được chia thănh ba loại Một loại nút lâ, được gọi lă nút lất lâ được chia thănh ba loại Một loại nút lâ, được gọi lă nút lâkhông hoạt động, đại diện cho một q-subsequence mămă không xuất hiện trongkhông xuất hiện trong bất
bất kỳkỳ chuỗi phđn tíchchuỗi phđn tích năonăo Một loại Một loại nút lâ, được gọi lă nútnút lâ, được gọi lă nút hoạt động, đạihoạt động, đạidiện cho một q-subsequence xuất hiện chỉ một lần trong chuỗi phđnxuất hiện chỉ một lần trong chuỗi phđn tích, haitích, hailloạioại nút lâ vănút lâ vă tương ứngtương ứng vớivới q-subsequences như vậynhư vậy khôngkhông đưa rađưa ra phđn tích.phđn tích.Loại nút lâ cuối cùng
Loại nút lâ cuối cùng tương ứng vớitương ứng với q-subsequences xuất hiệnxuất hiện ít nhất hai lầnít nhất hai lầntrong cùng một gien hoặc ít nhất hai
trong cùng một gien hoặc ít nhất hai gien, ngien, những núthững nút năynăy tương ứng với câctương ứng với câc biclusters trong khoảng thời gian phđn
biclusters trong khoảng thời gian phđn tíchtích
1.2.4 Thuật toân ts-Clustering
Trang 9Mô hình ts-Cluster khai thác thời gian chuyểnkhai thác thời gian chuyển mẫu nhưmẫu như sau:sau: giả sửgiả sử tậptập
m gien G = {g1 , g1 , , gm }, tập n thời điểm vớithời điểm với khoảng thời gian nhất khoảng thời gian nhất địnhđịnh,, T
= {t 1 , t 2 , , t n }, và ma trận D= G x T trong đó d i,j làlà các giá trị biểu hiện củacác giá trị biểu hiện của
gien ii tại thời điểmtại thời điểm j Những Những giá trị khuyếtgiá trị khuyết thiếu trong ma trận được “lấp đầy”thiếu trong ma trận được “lấp đầy” bởi một số
bởi một số ngẫu nhiên Sngẫu nhiên Sau đó, xác au đó, xác địnhđịnh Y = < t i1 , t i2 , , , , t t il > theotheo một trìnhmột trình
tự thời gian
tự thời gian nếunếu và chỉ nếu t i1 < < t t i2 < < t il và chiều dài củavà chiều dài của Y là |Y | = l Chuỗi thờ
Chuỗi thờ i giani gian Y là L-segment nếu chiều dài của |nếu chiều dài của |Y | là (L + 1).
Xét hai chuỗichuỗi thời gianthời gian L-segment là Y P = <t i1 , t i2 , , t il>, và Y q = <t j1 ,
t j2 , , , , t t jl> mà ở đómà ở đó t il < t jl, m, mối quan hệ giữaối quan hệ giữa thời gian chuyểnthời gian chuyển Y P và Y q nếunếu
chuỗi thời gian và khoảng thời gian trongtrong các trường hợpcác trường hợp sau:sau:
Nếu Nếu dựa dựa vào vào một một giengien x và mộtvà một l-segment <t , , t ii t j> có 3 cáchcó 3 cách chuyểnchuyểnđổi
đổi là,là, d xi và d xj giá trị biểu hiện của giengiá trị biểu hiện của gien x tại thời điểmtại thời điểm t ii và t j, và, và tham sốtham số (>0)
(>0) là mộtlà một ngưỡng điều chỉnhngưỡng điều chỉnh
(1) Điều chỉnh lên(1) Điều chỉnh lên,, có nghĩa làcó nghĩa là O x(t , t ii j) = , nếu d , nếu d xj- d xi >
(2)(2) Không điều chỉnhKhông điều chỉnh,, có nghĩa làcó nghĩa là O x(t , t ii j) = , nếu , nếu d xj - d xi≥≥
(3) Điều chỉnh xuống(3) Điều chỉnh xuống,, có nghĩa làcó nghĩa là O x(t , t ii j) = , nếu d , nếu d xj - d xi < -
Nếu dựa vào Nếu dựa vào 2 gien2 gien x,, y và (n-1)-segment Y = <t i1 , t i2 , , t in >, x và y là
là giống nhau nếugiống nhau nếu Ox(t ,t ii j )= O y(t (j+t) ,t (k+t))) trong đó: j,k trong đó: j,k (i1 , i2 , , in) và t làkhoảng cách thời gian giữa hai sự kiện
khoảng cách thời gian giữa hai sự kiện
Dựa vàDựa vàoo các định nghĩa: chuỗi thời gian;các định nghĩa: chuỗi thời gian; L-segment ; tính O và xác địnhvà xác địnhnhư ở trên, một ts-Cluster-Cluster được xác định như sau:được xác định như sau:C U iir 1 X iiY ii { cxy},, X ii làmột
một tậptập các gien (Xcác gien (Xii G) và Y ii làlà tập thời điểm (tập thời điểm (YYii T), thì X ii x Y ii là mộtlà một
ma trận con đặc biệt của D = G x T C là m C là mộtột ts-Cluster nếu và chỉ nếunếu và chỉ nếu::
Trang 10(1) Y ii ,Y j ,1 i, j r, |Y ii | = |Y j |, (2) Y ii ,Y j ,1 i, j r , quan hệ thời gian chuyển quan hệ thời gian chuyển giữa Y giữa Y ii và Y j (3) g x X ii , g y X j , 1 i, j r giả sử giả sử t là khoảng thờit là khoảng thời gian Y ii đến
Y j , t , t ii j Y ii điều kiện O x (t ,t ii j )= O y (t (i+ t) ,t (j+ t) ).
KhiKhi ββ được xácđược xác địnhđịnh là tậplà tập tất cảtất cả ts-Cluster thỏa mãnthỏa mãn các điều kiện giàngcác điều kiện giàng buộc,
buộc, khikhi C β gọi là ts-Cluster cực đạicực đại nếu và chỉ nếu không có cụmnếu và chỉ nếu không có cụm C’ C’ β
mà C
mà C’’ chứa Cchứa C
Vấn đề được giải quyết bằngVấn đề được giải quyết bằng thuật toánthuật toán ts-Clustering là: tìm-Clustering là: tìm tất cảtất cả ts- Cluster cực đạicực đại,, một ngưỡngmột ngưỡng cực đạicực đại đượcđược người dùngngười dùng quy định,quy định, tínhtính lượnglượngtthời điểm/lượnghời điểm/lượng giengien tối thiểutối thiểu
Thuật toán ts-C-Clustering có hai bước chínhlustering có hai bước chính:: Trước tiênTrước tiên xây dựng mộtxây dựng một cây TS-Tree-Tree ban đầu ban đầu ("("Construct Initial TS-Tree")"), ở đó, ở đó các thông tincác thông tin chuyểnchuyểnđổi
đổi từtừ ts-Clusters ban đầu của tất cả l ban đầu của tất cả l segments đượcsegments được xácxác định Chỉ điều chỉnhđịnh Chỉ điều chỉnh giá trị theo hai nhánh
giá trị theo hai nhánh lên hoặc xuốnglên hoặc xuống B Bước thứ hai phát triểnước thứ hai phát triển cây ban đầucây ban đầu đểđểtìm tất cả ts-Cluster cực đại, kết hợpcực đại, kết hợp tìm kiếmtìm kiếm theo chiềutheo chiều rộngrộng cho đến khicho đến khichiều cao đạt mint - l, thì, thì tìm kiếm theo độ sâu.tìm kiếm theo độ sâu.
MMặc dùặc dù ts-Clustering không sử dụngkhông sử dụng hướnghướng tiếp cậntiếp cận trực tiếp ma trậntrực tiếp ma trận gốc
gốc,, nhưngnhưng thao tácthao tác O có thể được xem như là một bước chuyểncó thể được xem như là một bước chuyển hoá từhoá từ câycây
TS-tree đãđã xây dựng bằng cách sử dụng phân nhánh với hai biểu tượngxây dựng bằng cách sử dụng phân nhánh với hai biểu tượng lênlên ““ ”” vàvàxuống
xuống ”” ”” [28].[28]
1.3 Định nghĩa và bài toán bicluster trong dữ liệu thể hiện gien theochuỗi thời gian.
VVới ma trận (ới ma trận (n×m), ở đó mỗi thành phần là một giá trị thực Trongtrường hợp
trường hợp các ma trận biểucác ma trận biểu hiện gien,hiện gien, aij miêu tả mức thể hiện củamiêu tả mức thể hiện của giengien ii trong điều kiện j Ví dụ bảng minh họa dưới đây.Ví dụ bảng minh họa dưới đây.
Trang 11Bảng 1: M inh họa ma trận dữ liệu biểu hiện gien
CChúng ta sẽ xem xét trường hợp tổng quát của ma trận dữ liệuhúng ta sẽ xem xét trường hợp tổng quát của ma trận dữ liệu A với tậpvới tậpcác hàng X và tập các cộtvà tập các cột Y , ở đó mỗi thành phần Aij tương ứng với giá trị đặctương ứng với giá trị đặctrưng của mối quan hệ giữa hàng ii và cột j
CCho một ma trậnho một ma trận A vớivới n hàng và m cột, được xác định bởi các tập concột, được xác định bởi các tập concác hàng X = {x1 , ,xn}} và tập con các cộtvà tập con các cột Y = {y1 , ,ym}, ký}, ký hiệu (hiệu ( X,Y ) là thểhiện của ma trận A Nếu I ⊆ X và J ⊆ Y là tập conlà tập con riêng lẻ của hàng và cột,riêng lẻ của hàng và cột,thì A IJ = (I, J) là ma trận con của ma trậnlà ma trận con của ma trận A mà mỗi thành phầnmà mỗi thành phần aij thuộc vềthuộc về
ma trận con với tập
ma trận con với tập hànghàng I và tập cộtvà tập cột J
Một Bicluster là một tập con của các hàngMột Bicluster là một tập con của các hàng,, thể hiệthể hiện trạng n trạng thái thái tương tương tựtựthông qua tập con của các cột và ngược lại
thông qua tập con của các cột và ngược lại BiclusterBicluster A IJ = ( I, J ) gồm) gồm tập contập con các
các hàng và tập conhàng và tập con các cột, ở đâycác cột, ở đây I = {ii1 ,…, iik }} là tập conlà tập con các hàng (Icác hàng (I ⊆X và
Trong luận văn này chúng tôi xin trình bày tnày chúng tôi xin trình bày thuật toán biclusteringhuật toán biclustering không xửkhông xử
Trang 121.4 Các hướng tiếp cận chính để tìm bicluster trong dữ liệu biểu hiện
gien theo chuỗi thời gian
Do
Do chức năng của gien thường liên quan tới mức độ thể hiệnchức năng của gien thường liên quan tới mức độ thể hiện củacủa giengiennên bằng các phương pháp phân tích dữ liệu biểu
nên bằng các phương pháp phân tích dữ liệu biểu hiện gien, chúng ta có thểhiện gien, chúng ta có thể
dự đoán được chức năng của chúng hoặc một tiến trình tiếp theo Các phương pháp
pháp phân phân cụm cụm đã đã được được sử sử dụng dụng rộng rộng rãi rãi trong trong việc việc phân phân tích tích dữ dữ liệu liệu biểubiểu hi
hiện gien theo chuỗi thời gian,ện gien theo chuỗi thời gian, có thể tìm ra được nhóm gien có thể hiệncó thể tìm ra được nhóm gien có thể hiệntương đối giống nhau Các thuật toán Biclustering tìm cách phân nhóm cácđối tượng theo cả hai chiều để tìm ra một tập các gien có thể hiện giống nhauchỉ trong một số điều kiện hay
chỉ trong một số điều kiện hay một sốmột số thời điểmthời điểm liên tụcliên tục nào đónào đó Tuy nhiên, Tuy nhiên,khó khăn mà các thuật toán biclustering là việc tìm lời giải rất khó khăn vìđây là bài toán NP
đây là bài toán NP khó, rất khó để tìm được nghiệm tối ưu toàn cục Vì vậy,khó, rất khó để tìm được nghiệm tối ưu toàn cục Vì vậy,kkỹ thuật tiếp cận để xử lý dữ liệu biểuỹ thuật tiếp cận để xử lý dữ liệu biểu hiện gien theo chuỗi thời gianhiện gien theo chuỗi thời gian,, trên cơ trên cơ
biểu hiện gien đã được chuẩn hóa, việc tìm kiếm các bicluster sẽ hiệu quả hơnhiện gien đã được chuẩn hóa, việc tìm kiếm các bicluster sẽ hiệu quả hơn
và thời gian thực hiện cũng ít tốn kém hơn
và thời gian thực hiện cũng ít tốn kém hơn. Một thuật toán hiệu quảMột thuật toán hiệu quả ssử dụngử dụng kkỹ thuậtỹ thuật xử lýxử lý chuỗichuỗi dựadựa trên câytrên cây hậu tố tổng quát,hậu tố tổng quát, là ýlà ý tưởngtưởng chínhchính củacủa thuậtthuậttoán
toán đượcđược đề xuất Mà ở đó cóđề xuất Mà ở đó có mối quan hệmối quan hệ tương đồng giữatương đồng giữa các biclusterscác biclustersvới
với các nút trongcác nút trong củacủa câycây hậuhậu tố tổng quát đãtố tổng quát đã xây dựngxây dựng cho cáccho các bộ bộ chuỗichuỗi (các(cáchàng trong
hàng trong ma trậnma trận)) đại diện chođại diện cho cáccác mẫumẫu biểu biểu hiệnhiện củacủa mỗimỗi gien trong magien trong matrận
trận Thuật toán này sẽ được chúng tôi trình bàyThuật toán này sẽ được chúng tôi trình bày chi tiếtchi tiết trong chươngtrong chương 3.3
11.5 Mục đích của luận văn
Mục đích của luận văn này là trình bàyMục đích của luận văn này là trình bày các thuật toán biclustering dựacác thuật toán biclustering dựatrên cây hậu tố tổng quát để tìm kiếm các bicluster hoàn hảo và các bicluster xấp xỉ trong dữ liệu biểu hiện gien theo thời gian Sau đó thực hiện các thuật
Trang 13toán này trêntoán này trên một số tập dữ liệu sinh học thực tế để minh họa khả năng hoạtmột số tập dữ liệu sinh học thực tế để minh họa khả năng hoạtđộng cũng như kết qủa của các thuật toán Phân tích các bicluster thu được bằng cách sử dụng
bằng cách sử dụng các thông tin chú giải các thông tin chú giải gien (Gen Ontology) để thấy gien (Gen Ontology) để thấy được ýđược ý
nghĩa sinh học của các bicluster đã tìm được
11.6 Cấu trúc của luận văn
CấuCấu trúc của luận văn được chia thành các phần như sau:trúc của luận văn được chia thành các phần như sau:
Phần 1Phần 1: Mở đầu – : Mở đầu – Trình bày lý do, mục đích nghiên cứu, đối tượng, phạm vi,Trình bày lý do, mục đích nghiên cứu, đối tượng, phạm vi,nhiệm vụ,
nhiệm vụ, vàvà phương pháp phương pháp nghiên cứu.nghiên cứu.
Phần 2:hần 2: Nội dung – Nội dung – Phần này trình bày nội dung chính củPhần này trình bày nội dung chính của luận văn, bao gồma luận văn, bao gồmcác chương sau:
các chương sau:
Chương 1Chương 1: Giới thiệu các khái niệm cơ bản được đề cập trong luận văn,: Giới thiệu các khái niệm cơ bản được đề cập trong luận văn,cũng như một số
cũng như một số ý tưởng củaý tưởng của thuật toán biclustering.thuật toán biclustering. Trong chương nàyTrong chương nàychúng tôi trình bày định nghĩa và bài toán tìm bicluster trong dữ liệu thể hiệngien theo thời gian
gien theo thời gian
Chương 2Chương 2: Trong chương này chúng tôi tập trung chủ yếu trình bày các: Trong chương này chúng tôi tập trung chủ yếu trình bày cáckhái niệm cũng như các ứng dụng của cây hậu tố
khái niệm cũng như các ứng dụng của cây hậu tố.
Chương 3Chương 3: Chương này chúng tôi trình bày hai thuật toán biclustering: Chương này chúng tôi trình bày hai thuật toán biclusteringhiệu quả để tìm các biclusters với mẫu hoàn hảo và bicluster với mẫu xấp xỉ
các tập dữ liệu thực tế Cuối cùng là phần kết luận của luận văn, những việcCuối cùng là phần kết luận của luận văn, những việc
đã làm được, chưa làm được và hướng phát triển tiếp theo của luận văn
đã làm được, chưa làm được và hướng phát triển tiếp theo của luận văn
Trang 14Chương II CÂY HẬ U T Ố
2.1 Giới thiệu chung
Cây hậu tố (suffix trees) là một cấu trúc dữ liệu biểu diễn các hậu tốcủa một chuỗi
của một chuỗi Nó cho Nó cho phép phép thực thực hiện hiện rất rất nhiều nhiều thuật thuật toántoán hiệu quảhiệu quả quanquantrọng
trọng về chuỗivề chuỗi vàvà được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau củađược ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau củakhoa
khoa học máy tính như: đối sánh mẫu,học máy tính như: đối sánh mẫu, tìm xâu con chungtìm xâu con chung, thống kê tần suất, thống kê tần suất
““từ từ ””, , Đây là những bài toán trong các kỹ thuật xử lý văn bản, tìm kiếmĐây là những bài toán trong các kỹ thuật xử lý văn bản, tìm kiếmthông tin,
thông tin, tin sinh học (bioinformatics), nén dữ liệu…tin sinh học (bioinformatics), nén dữ liệu… Cây hậu tố cho mộtCây hậu tố cho mộtchuỗi S là một cây có các cạnh được gắn nhãn với các chuỗi, sao cho mỗi hậu
tố của S tương ứng với đúng một đường đi từ gốc đến hậu tố đó, nó có thể sử
dụng như một sơ đồ (diagram) của trạng thái dịch chuyển
Một trong những điểm mạnh của cây hậu tố là cho phép thay đổi và mở rộng cấu trúc mỗi khi có sự cập nhật dữ liệu
rộng cấu trúc mỗi khi có sự cập nhật dữ liệu mới Tính chất này có thểmới Tính chất này có thể xử lýxử lýtrên một tập dữ liệu lớn với nhiều dạng dữ liệu khác nhau, đặc biệt là dữ liệusinh học
sinh học,, sẽsẽ tiết kiệm được thời gian và không gian tiết kiệm được thời gian và không gian xử lý dữ liệu.xử lý dữ liệu.
Khái niệm đầu tiên được giới thiệu bởiKhái niệm đầu tiên được giới thiệu bởi Weiner vào năm 1973, đến nămWeiner vào năm 1973, đến năm
1976 McCreight đã đơn giản hóa
1976 McCreight đã đơn giản hóa thao tácthao tác xây dựng cây hậu tố với thời gianxây dựng cây hậu tố với thời gian
dụng của cây hậu tố.
2.2 Các khái niệm cơ bản
Định nghĩa 11:: ((Cây hậu tố )) Cây hậu tốCây hậu tố T của chuỗicủa chuỗi |S| kí tựkí tự củacủa S làcây có hướng
cây có hướng,, có gốccó gốc vàvà có các tính chất sau:có các tính chất sau:
Các đường đi từ gốc đến lá tương ứng 1 - 1 với các hậu tố củavới các hậu tố của S
Trang 15Mỗi nút trong, trừ nút gốc, có Mỗi nút trong, trừ nút gốc, có ít nhất là hai con.ít nhất là hai con.
Mỗi cạnh được gán nhãn bằng mộtMỗi cạnh được gán nhãn bằng một chuỗi conchuỗi con (không(không rỗngrỗng)) của chuỗicủa chuỗi S CácCác cạnh bất kỳ xuất phát từ một nút chung phải bắt đầu bằng các ký tựcạnh bất kỳ xuất phát từ một nút chung phải bắt đầu bằng các ký tự
tự đặc biệt ($)($) vào cuối chuỗivào cuối chuỗi S, gọi là kí tự kết thúc,, gọi là kí tự kết thúc, nnhư vậyhư vậy sẽsẽ không có hậukhông có hậu
tố nào là tiền tố của một hậu tố khác
tố nào là tiền tố của một hậu tố khác Ví dụ cây hậu tốVí dụ cây hậu tố T(bbabab).
Hình 2 1 Cây hậu tố của chuỗi bbabab
TTrong ví dụ minh họa cây hậu tốrong ví dụ minh họa cây hậu tố T của chuỗicủa chuỗi = bbabab$ có bẩy hậucó bẩy hậu
tố là bbabab$, babab$, abab$, bab$, ab$, b$ và $ được đánh sốđược đánh số từ 1 đến 7từ 1 đến 7như hình vẽ, nhãn của
như hình vẽ, nhãn của nútnút w là ab, nhãn của, nhãn của nútnút u là b và xâu baba là nhãncủa đường đi từ gốc đến giữa cạnh (u, 2)
Sau đây là một số khái niệm liên quan đến cây hậu tố:
Sau đây là một số khái niệm liên quan đến cây hậu tố:
Định nghĩa 22:: ((Chuỗi, chuỗi con , hậu tố , hậu tố và tiền tố và tiền tố )) Một chuỗiMột chuỗi S là danh sáchcác ký tự trên bảng chữ cái
các ký tự trên bảng chữ cái ∑∑ (có |(có |∑| ký tự) được viết∑| ký tự) được viết liên tụcn tục từ trái sangtừ trái sang phải Bất kỳ xâu con S[i j] thu đượcthu được cũngcũng là một xâu ký tựlà một xâu ký tự liên tụcliên tục trongtrong S, có
vị trí bắt đầu tại ii và kết thúc tại j Đặc biệt, S[1 i] là tiền tố củalà tiền tố của S kết thúc tạikết thúc tại
vị trí ii và S[i |S|] là hậu tố củalà hậu tố của S bắt đầu tại vị trí ii
Trang 16Định nghĩa 3: (Định nghĩa 3: (Cây hậu tố tổng quát Cây hậu tố tổng quát )) CCây hậu tố tổng quát là một cây hậu tốây hậu tố tổng quát là một cây hậu tốđược xây dựng cho
được xây dựng cho tập các chuỗitập các chuỗi Sii Mỗi nút lá lúc này nhận hai giá trị, một làchuỗi (ii); hai là vị trí bắt đầu (hậu tố) của chuỗi đó.); hai là vị trí bắt đầu (hậu tố) của chuỗi đó.
Để giải quyết bài toán
Để giải quyết bài toán xâuxâu con chung của hai hay nhiều chuỗicon chung của hai hay nhiều chuỗi chúng tachúng tacần mở rộng khái niệm cây hậu tố để chứa nhiều chuỗi
cần mở rộng khái niệm cây hậu tố để chứa nhiều chuỗi khác nhaukhác nhau trong mộttrong mộtcấu trúc dữ liệu chung, ta sử dụng cây hậu tố tổng quát
cấu trúc dữ liệu chung, ta sử dụng cây hậu tố tổng quát,, ví dụ cây hậu tố tổngví dụ cây hậu tố tổngquát T cho hai chuỗicho hai chuỗi S1=TACTAG và S2=CACT
Hình 2.2 C ây hậu tố tổng quát cho chuỗi S 1 =TACTAG; S 2 = CACT.
Độ sâu chuỗi của một nút vv trong cây T là P(v), là tổng của tất cả độ dài cạnhtrên đường đi từ gốc đến nút vv, đường đi chính là chuỗi nhãn của nút vv
Định nghĩa 4: (( Liên kết hậu tố ): Cho x biểu diễn một chuỗi bất kỳ, trong đó biểu diễn một chuỗi bất kỳ, trong đó
x biểu biểu diễn diễn ký ký tự tự đơn đơn vàvà biểu biểu diễn diễn một một chuỗi chuỗi con con (có (có thể thể rỗng) rỗng) Xét Xét nútnúttrong vv với chuỗi nhãnvới chuỗi nhãn x , nếu có một nút khác, nếu có một nút khác s(v) có nhãn là , một con trỏ
từ vv đếnđến s(v) được gọi là liên kết hậu tố (được gọi là liên kết hậu tố (suffix link ) Trường hợp đặc biệt nếu
rỗng thìrỗng thì x có liên kết hậu tố được trỏ đến gốc (có liên kết hậu tố được trỏ đến gốc (root ) Nút gốc không đượccoi là nút trong và không có liên kết hậu tố nào bắt đầu từ nó Ví dụ như hìnhdưới đây, liên kết hậu tố
dưới đây, liên kết hậu tố được thể hiệnđược thể hiện là đường nét gạch nối.là đường nét gạch nối.
Trang 17Hình 2.3 C ây hậu tố tổng quát và các liên kết
2.3 Biểu diễn cây hậu tố tổng quát trong máy tính
Một cách hiệu quả để biểu diễn các cạnhMột cách hiệu quả để biểu diễn các cạnh giả sử làgiả sử là S[p q] của cây hậucủa cây hậu
tố thay vì biểu diễn tường minh nhãn cạnh của chúng, ta chỉ mô tả là một cặp
số nguyên ( p,q) Do đó mỗi cạnh có thể lưu trữ với kích thước là hằng số,) Do đó mỗi cạnh có thể lưu trữ với kích thước là hằng số, vìvìvậy
vậy không gian lưu trữ cây hậu tốkhông gian lưu trữ cây hậu tố là O(là O(m)) Cây hậu tố tổng quát có thể chứa Cây hậu tố tổng quát có thể chứarất nhiều chuỗi
rất nhiều chuỗi khác nhau nên mỗi cạnh khi lưu trữ cần lưu cả chỉ số của xâukhác nhau nên mỗi cạnh khi lưu trữ cần lưu cả chỉ số của xâucon nó bi
con nó biểu diễn Ví dụ cây hậu tố tổng quát cho hai chuỗiểu diễn Ví dụ cây hậu tố tổng quát cho hai chuỗi S1 = TACTAG và
S 2 = CACT trong bộ nhớ nhưtrong bộ nhớ như hình 2.4.hình 2.4
Trang 18Hình 2.4 Biểu diễn cây hậu tố tổng Biểu diễn cây hậu tố tổng quát trong má quát trong máy tính y tính
Trên đây là một số khái niệm về cây hậu tốTrên đây là một số khái niệm về cây hậu tố liên quanliên quan, phần tiếp theo, phần tiếp theochúng tôi xin trình bày
chúng tôi xin trình bày thuật toán dựng cây hậu tố thuật toán dựng cây hậu tố tổng quát của Ukkonetổng quát của Ukkonen [6].n [6]
2.4 Thuật toán dựng cây hậu tố.
2.4.1. Dựng cây hậu tố ngầm định (i Dựng cây hậu tố ngầm định (implicit suffix tree)mplicit suffix tree)
Cây hậu tố ngầm định của chuỗi S là cây nhận được từ cây hậu tố củalà cây nhận được từ cây hậu tố của S sau các bước xử lý:
sau các bước xử lý:
i) Xóa tất cả các ký tự kết thúc $ trong các nhãn
ii) Xóa các cạnh không có nhãn (cạnh rỗng)
iii) Xóa các nút có ít hơn 2 con
Thuật toán: Gọi câyThuật toán: Gọi cây T iilà cây hậu tố ngầm định cho S[1 i]. Ý tưởng xâyÝ tưởng xâydựng của thuật toán là cập nhất cây T từ câytừ cây T 2 ,…T m+1 trong m pha Thêm ký tự
S[m+1]=$ thì việc mở rộng cuối cùng ta được cây hậu tố ngầm định chính làthì việc mở rộng cuối cùng ta được cây hậu tố ngầm định chính làcây hậu tố của S$.
Đầu tiên ta có cây T 1 với một cạnh duy nhất chứavới một cạnh duy nhất chứa S1 Pha i+1 được chiađược chianhỏ thành i+1 bước mở rộng trong đó bước mở rộng trong đó ta thêm ký tựta thêm ký tự Si+1 vào hậu tốvào hậu tố S[j i] củacủaxâu S[1 i]. Tại bước mở rộngTại bước mở rộng j, xét đường đi từ gốc có nhãn = S[j i] và thựcvà thựchiện một trong ba
hiện một trong ba luật mở rộng luật mở rộng sau đây:sau đây:
1)1) Nếu Nếu là nhãn của một nút lá: ký là nhãn của một nút lá: ký tựtự Si+1 được thêm vào cạnh nối vớiđược thêm vào cạnh nối với
Trang 19nút lá đó.
nút lá đó.
2)2) Nếu không Nếu không có đường có đường đi từđi từ bắt đầu bắt đầu bằngbằng Si+1 nhưng có ít nhất mộtđường đi nối tiếp : trường hợp này ta thêm một cạnh có nhãn là: trường hợp này ta thêm một cạnh có nhãn là Si+1,,nếu
nếu kết thúc ở giữa một cạnh kết thúc ở giữa một cạnh thì tạo một nút mới.thì tạo một nút mới.
3)3) Nếu Nếu có có đường đường đi đi nối nối tiếptiếp bắt bắt đầu đầu bằngbằng Si+1: không làm gì vàchuyển sang bước tiếp theo
chuyển sang bước tiếp theo.
Tại bước mở rộng i+1 của phacủa pha i+1, là xâu rỗng, thuật toán đơn giảnlà xâu rỗng, thuật toán đơn giảnthêm ký tự S i+1 bên dưới nút gốc (trừ khi n bên dưới nút gốc (trừ khi nó đã có).ó đã có)
Xét ví dụ trong hình 2
Xét ví dụ trong hình 2.55 bốn hậu tố đầu tiên kết t bốn hậu tố đầu tiên kết thúc ở nút láhúc ở nút lá,, hậu tố cuối cùnghậu tố cuối cùngchỉ gồm ký tự x kết thúc bên trong mỗikết thúc bên trong mỗi cạnh Khi thêm ký tự thứ sáucạnh Khi thêm ký tự thứ sáu b, bốnhậu tố
hậu tố đầu tiên được mở rộng bằng luật 1, hậu tố thứ năm sử dụng luật 2 vàđầu tiên được mở rộng bằng luật 1, hậu tố thứ năm sử dụng luật 2 vàvới hậu tố thứ sáu là luật 3
với hậu tố thứ sáu là luật 3.
Hình Hình 2.5 2.5 Cây hậu tố ngầm định cho xâu axabx trước (a) và sau (b) khi thêm ký tự thứ sáu b.
Dế dàng thấy rằng ta có thể tìm thấy điểm kết
Dế dàng thấy rằng ta có thể tìm thấy điểm kết thúcthúc của mỗi hậu tố trongcủa mỗi hậu tố trong
i+1 hậu tố của xâuhậu tố của xâu S[1 i] bằng cách bằng cách duyệt cây từ duyệt cây từ gốc với gốc với chi phí thời chi phí thời gian làgian là O(||).|) Trong thuậtTrong thuật toántoán Ukkonen, mỗi nút trong mới được tạo ra sẽ có mộtUkkonen, mỗi nút trong mới được tạo ra sẽ có mộtlliên kết hậu tố khi pha tiếp theo kết thúc.iên kết hậu tố khi pha tiếp theo kết thúc. Liên kết hậu tố có thể được sử dụLiên kết hậu tố có thể được sử dụngng
để giảm độ phức tạp khi thao tác
để giảm độ phức tạp khi thao tác
Đường đi có nhãn S[1 i] chắc chắn phải kết thúc ở lá vchắc chắn phải kết thúc ở lá và nó cóà nó có đườngđường
đi dài nhất trong cây T ii Khi xây dựng cây T ii ta lưu lại nút lá tương ứng vớita lưu lại nút lá tương ứng với
Trang 20toàntoàn bộ xâu đang xét bộ xâu đang xét S[1 i]. Bước bổ sung đầu tiên của phaBước bổ sung đầu tiên của pha i+1 lấy nút lá nàylấy nút lá này
và áp dụng luật thứ nhất do đó chỉ cần thời gian hằng số
và áp dụng luật thứ nhất do đó chỉ cần thời gian hằng số [4].[4]
Đặt S[1 i] = x và và ((v, v, 1 1) là cạnh đến nút lá, nhãn của cạnh là , bước
mở rộng tiếp theo thuật toán cần tìm đường đi có nhãn là S[2 i] = Nếu vv lànút gốc, ta duyệt cây từ gốc theo thuật toán trước Nếu vv không phải nút gốckhông phải nút gốcthì có liên kết hậu tố từ v đến nút s(v), ta bắt đầu duyệt cây từ nútta bắt đầu duyệt cây từ nút s(v) Đường
đi từ vị trí hiện tại có nhãn là đường đi từ gốc có nhãnlà đường đi từ gốc có nhãn
Tại bước mở rộng thứ j vớivới j > j > 2 2 ta cũng làm tương tự Bắt đầu và kếtta cũng làm tương tự Bắt đầu và kếtthúc
thúc củacủa S[j-1 i] là nhãn của một nút trong, khi đó talà nhãn của một nút trong, khi đó ta cócó liên kết hậu tố củaliên kết hậu tố củanút này Kể cả khi xâu S[j-1 i] kết thúc ở một nút lá thì nút cha của nó hoặckết thúc ở một nút lá thì nút cha của nó hoặc
là một nút trong (do đó có liên kết hậu tố) hoặc là nút gốc Vậy ta không baogiờ phải đi ngược lên quá một cạnh
giờ phải đi ngược lên quá một cạnh.
Hình 2.6 Bước Hình 2.6 Bước mở rộng j mở rộng j > 1 > 1 trong pha i trong pha i Đi lên Đi lên tối đa tối đa là cạnh từ là cạnh từ cuối đường đi cuối đường đi S[j S[j -1 i]
đến nút v sau đó theo liên kết hậu tố đến s(v), đi xuống theo đường đi có nhãn đến nút v sau đó theo liên kết hậu tố đến s(v), đi xuống theo đường đi có nhãn rồi áp dụng luật bổ sung phù hợp để thêm hậu tố S[j i+1]
dụng luật bổ sung phù hợp để thêm hậu tố S[j i+1]
Việc tìm đường đi có nhãn theo cách thông thường cần thời giantheo cách thông thường cần thời gianO(||), do đường đi nhãn chắc chắn tồn tại và không có hai cạnh nào cùngchắc chắn tồn tại và không có hai cạnh nào cùngxuất phát từ một đỉnh có nhãn bắt đầu
xuất phát từ một đỉnh có nhãn bắt đầu cùng một ký tự nên ta có thể dựa vàocùng một ký tự nên ta có thể dựa vào
ký tự đầu nhãn và độ dài của cạnh để tìm ra điểm kết thúc của đường đi trongthời gian tỉ lệ với số n
thời gian tỉ lệ với số nút trên đường đi.út trên đường đi.
Trang 21Gọi (v, s(v)) là một liên kết hậu tố,) là một liên kết hậu tố, thìthì độ sâu nút củađộ sâu nút của vv tối đa lớn hơntối đa lớn hơn
độ sâu nút của s(v) một đơn vị.một đơn vị. Với mỗi nútVới mỗi nút vv trên đường đitrên đường đi x , có một nút, có một nút
s(v) trên đường đitrên đường đi Tuy nhiên, độ sâu của Tuy nhiên, độ sâu của vv có thể lớn hơn, bằng hoặc nhỏcó thể lớn hơn, bằng hoặc nhỏ
hơn độ sâu của nút s(v) một đơn vị
Mặc dùMặc dù đãđã được cải thiện tạiđược cải thiện tại mỗi pha củamỗi pha của thuậtthuật toántoán Ukkonen có thểUkkonen có thểđược thực hiện trong thời gian O(m)
được thực hiện trong thời gian O(m). Tuy nhiên đến đây chúng ta vẫn thấyTuy nhiên đến đây chúng ta vẫn thấyrằng độ phức tạp của nó
rằng độ phức tạp của nó được thực hiện trong thời gianđược thực hiện trong thời gian O(mO(m22)
Nếu Nếu luật luật 3 3 được được áp áp dụng dụng nghĩa nghĩa là là đường đường đi đi có có nhãnnhãn S[j i] chắc chắnchắc chắnđược nối tiếp bằng ký tự Si+1 nên tất cả các đường đi có nhãnnên tất cả các đường đi có nhãn S[k i] vớivới k > j.
Gọi j* là chỉ số của bước mở rộng đầu tiênlà chỉ số của bước mở rộng đầu tiên khikhi luật 3 được áp dụng Theo đóluật 3 được áp dụng Theo đó
ta không cần thực hiện các bước
ta không cần thực hiện các bước mở rộngmở rộng k vớivới k > j* trong pha hitrong pha hiện tại.ện tại.
Nhận xét 2Nhận xét 2: Khi đã là nút lá: Khi đã là nút lá thì luôn luôn là nút lá [5].thì luôn luôn là nút lá [5]
Rõ ràng trong 3 luật mở rộng không có luật nào cho phép thêm một nút
lá mới bên dưới một nút lá có nhãn Do đó khi một nút lá đã được tạo ra thì Do đó khi một nút lá đã được tạo ra thì
nó sẽ luôn luôn là nút lá cho đến khi pha cuối cùng của thuật toán kết thúc
nó sẽ luôn luôn là nút lá cho đến khi pha cuối cùng của thuật toán kết thúc.
Với nhận xét trên gợi ý cách cài đặt hiệu quả thuật toán: thay vì cậpnhật nhãn của các nút lá một cách tường minh, ta gán nhãn cho các nút lá làcặp
cặp (( p, ) Trong đó) Trong đó p là vị trí bắt đầu của xâu con vàlà vị trí bắt đầu của xâu con và làlà vị trí kết thúc củavị trí kết thúc củaxâu con trong
xâu con trong S, thay thế cho vị trí cuối xâu đang xét Như vậy trong phaS, thay thế cho vị trí cuối xâu đang xét Như vậy trong pha i+1
ta không cần thực hiện jii bước mở rộng tường minh đầu tiên. bước mở rộng tường minh đầu tiên. Điểm màĐiểm mà tata thấythấy phù
phù hợp hợp với với hậu hậu duệ duệ đầu đầu tiên tiên được được gọigọi là điểm kết thúc Bằng cáchlà điểm kết thúc Bằng cách xét cácxét cácđiểm kết thúc, ta sẽ biết các điểm hoạt động sẽ được đi qua tiếp theo
điểm kết thúc, ta sẽ biết các điểm hoạt động sẽ được đi qua tiếp theo
Trang 22Thuật toán Ukkonen dựng cây hậu tố ngầm định:
input input: Chuỗi S : Chuỗi S.
Dựng cây hậu tố ngầm định T11 // T 1 có một cạnh đơn nhãn là S[1]
for i = 1 to m-1 do
begin //
begin // Giai đoạn i+1 Giai đoạn i+1
//
// Cập nhật T Cập nhật T ii (với tất cả các hậu tố của S[1 i] đến
T i+1 với tất các hậu tố S[1 i+1])
for j = 1 to i+1 do
begin //
begin // Mở rộng j Mở rộng j Trong cây hiện tại, tìm vị trí kết thúc của đường đi từ Trong cây hiện tại, tìm vị trí kết thúc của đường đi từ gốc có nhãn t[j i] Để Để có thể, mở rộng đường đi bằng có thể, mở rộng đường đi bằng
cách thêm ký tự t[i+1] , để có xâu t[j i+1] trong cây.
end;
end;
Như vậy, Như vậy, ssử dụng liên kết hậu tố và các nhậnử dụng liên kết hậu tố và các nhận xétxét trên, giải thuật Ukkonen cótrên, giải thuật Ukkonen cóthể dựng cây hậu tố
thể dựng cây hậu tố ngầm định trong thời gian O(m)ngầm định trong thời gian O(m)
Trong mỗi pha ii của thuật toán, ta chỉ cần thực hiện các bước mở rộngcủa thuật toán, ta chỉ cần thực hiện các bước mở rộngtường minh từ ji-1 đếnđến j* Do bước mở rộng cuối cùng Do bước mở rộng cuối cùng theotheo luật 1 hoặc 2 đượcluật 1 hoặc 2 được
áp dụng chính là một bước trước khi luật 3 lần đầu tiên được áp dụng nên ta
có j ii
= j*-1 Như vậ Như vậy số y số bước bước mở rộmở rộng ng được thực được thực hiện có hiện có thể tính thể tính theo ctheo côngông
2 (( 1 1 )) 1 1 2 Vậy thời gian thực hiện của thuậttoán là O(m) Như hình minh họa quá trình thực hiện của thuật toán dưới đây,m
mỗi dòng là một giai đoạn trong thuật toán, mỗi số làỗi dòng là một giai đoạn trong thuật toán, mỗi số là một bước mở rộngmột bước mở rộngtường minh được thực hiện
tường minh được thực hiện.
Trang 23Dưới đây là hình ảnh minh Dưới đây là hình ảnh minh họa quá trình thực hiện họa quá trình thực hiện của thuật toán:của thuật toán:
Hình 2.7 Quá trình thực hiện của thuật toán
Cây hậu tố ngầm định cuối cùng T m được chuyển thành cây hậu tố thựcđược chuyển thành cây hậu tố thực
sự trong thời gian O(m) Ta chỉ việc thêm ký tự $ vào cuối chuỗi
sự trong thời gian O(m) Ta chỉ việc thêm ký tự $ vào cuối chuỗi S và thựcS và thựchiện thuật toán, kết quả là một cây hậu tố ngầm định của chuỗi mà khônghiện thuật toán, kết quả là một cây hậu tố ngầm định của chuỗi mà không cócóhậu tố nào là tiền tố của hậu tố khác
hậu tố nào là tiền tố của hậu tố khác
2.4.2 Dựng cây hậu tố tổng quát
Áp dụng
Áp dụng thuậtthuật toán Utoán Ukkonen như đã trình bàykkonen như đã trình bày ta dễ dàng dựng cây hậuta dễ dàng dựng cây hậu
tố tổng quát trong thời gian O(n) với n là tổng độ dài các chuỗi
Đầu tiên ta dựng cây hậu tố thông thường cho xâu S1 Với các xâu S2,,
S3 , , SK trước tiên ta tìm tiền tố dài nhất Sk [1 i] đã tồn tại trong cây Ta thựcđã tồn tại trong cây Ta thựchiện các giai đoạn i+1, i+2, mk của thuật toán để mở rộng cây hậu tố tổngcủa thuật toán để mở rộng cây hậu tố tổngquát cho
quát cho toàn bộ xâu.toàn bộ xâu.
Việc tìm tiền tố dài nhất đã có Việc tìm tiền tố dài nhất đã có trong cây đồng nghĩa với trong cây đồng nghĩa với việc tìm đườngviệc tìm đường
đi dài nhất trong cây có nhãn S k [1 i] bằng bằng cáchcách duyệt từng ký tự trên đườngduyệt từng ký tự trên đường
đi từ gốc Có hai trường hợp xảy ra:
đi từ gốc Có hai trường hợp xảy ra:
1 Đường đi kết thúc ở nút vv (có thể là nút gốc): thêm nút con mới nối(có thể là nút gốc): thêm nút con mới nốivới vv bằng cạnh có nhãn là S k [i+1].
Trang 24các bước tiếp theo Lưu ý trong trường hợpcác bước tiếp theo Lưu ý trong trường hợp 2 ta cũng cần đảm bảo liên kết2 ta cũng cần đảm bảo liên kếthậu tố của vv sẽ được thiết lập trong bước sẽ được thiết lập trong bước mở rộng tiếp theo.mở rộng tiếp theo.
2.5 Ứng dụng cây hậu tố
Cây hậu tố thường được sử dụng trong nhiều
Cây hậu tố thường được sử dụng trong nhiều ứng dụngứng dụng khác nhau, đặckhác nhau, đặc biệt trong lĩnh vực
biệt trong lĩnh vực TTin sinh họcin sinh học như:như: tìm kiếm các mẫu trình tìm kiếm các mẫu trình tự DNAtự DNA;; sắp xếpsắp xếpcác chuỗi gien
các chuỗi gien hay Protein (mà có thể được xem như chuỗi dài các ký tự)hay Protein (mà có thể được xem như chuỗi dài các ký tự);;tr
trong nén dữ liệuong nén dữ liệu C Cây hậu tố cũng được sử dụng trong phânây hậu tố cũng được sử dụng trong phân tíchtích cụm dữ liệucụm dữ liệu biểu
biểu hiện hiện gien gien [17], [17], để để tìm tìm kiếmkiếm các biclustercác bicluster trong dữ liệu biểu hiện gientrong dữ liệu biểu hiện gien (chúng tôi sẽ trình bày chi tiết ở phần chương 3)
(chúng tôi sẽ trình bày chi tiết ở phần chương 3)
Với nhiều ứng dụng và thường cung cVới nhiều ứng dụng và thường cung cấp giải pháp trong thời gianấp giải pháp trong thời gian tutuyếnyếntính
tính, dưới đây là một số ứng dụng , dưới đây là một số ứng dụng của cây hậu tốcủa cây hậu tố::
Chuỗi con chung dài nhất (Longest Common Substring):
Chuỗi con của một chuỗiChuỗi con của một chuỗi S làlà chuỗichuỗi thu được bằng cách chọn ra một số kýthu được bằng cách chọn ra một số kýtự
tự liên tụcliên tục trongtrong S Nói cách khác Nói cách khác Giả sửGiả sử S=S1S2 Sm, một chuỗi, một chuỗi
Z=Si+1Si+2 Si+t vớivới ii 0 và i+t m làlà chuỗichuỗi con củacon của S Ví dụ: chuỗi Ví dụ: chuỗi Z=Z=bcd làchuỗi con của chuỗi
chuỗi con của chuỗi S=aabcS=aabc bcd abdab
Cho hai chuỗiCho hai chuỗi S và T , ta nói Z là chuỗilà chuỗi con chung củacon chung của S và T nếunếu Z đồng thời là chuỗi
đồng thời là chuỗi con của cả hai.con của cả hai. Ví dụ:Ví dụ: S=abcdefg và T =bccdegf có:
Z = bc là chuỗilà chuỗi con chung.con chung
ChuỗiChuỗi efg không phải chuỗikhông phải chuỗi con chung.con chung
Z = bc có độ dài 2 không phải là chuỗicó độ dài 2 không phải là chuỗi con chung dài nhất.con chung dài nhất.
ChuỗiChuỗi cde là chuỗilà chuỗi con dài nhất có độ dài 3.con dài nhất có độ dài 3.
TrTrong cây hậu tố tổng quát của chuỗiong cây hậu tố tổng quát của chuỗi S và T , đánh dấu các nút trong bằng
bằng 1 1 (hoặc (hoặc 2) 2) nếu cây nếu cây con con tại nút tại nút đó đó chứa nút chứa nút lá có lá có nhãn nhãn 1 1 (hoặc (hoặc 2) 2) NhãnNhãncủa đường đi từ gốc đến nút
của đường đi từ gốc đến nút được đánh dấu cả hai được đánh dấu cả hai là một chuỗilà một chuỗi con chung củacon chung củahai chuỗ
hai chuỗii Nút có nhãn dài nhất hay độ sâu đường đi lớn nhất cho ta lời giải Nút có nhãn dài nhất hay độ sâu đường đi lớn nhất cho ta lời giảicủa bài toán
của bài toán.
Trang 25 Chuỗi con chung có chiều dài k (Common substrings of length k):
Cho m chuỗichuỗi S1 , S2 , , Sm, với mỗi giá trị k từ 2 đếntừ 2 đến m, gọi, gọi làlà l(k), là độ dàilà độ dàicủa chuỗi
của chuỗi con chung dài nhất của ít nhấtcon chung dài nhất của ít nhất k chuỗichuỗi trong tập đã cho.trong tập đã cho
Ví dụ
Ví dụ. Xác định chuỗiXác định chuỗi con chungcon chung dài nhất của ít nhất hai chuỗidài nhất của ít nhất hai chuỗi:: Cho tậpCho tậpgồm m chuỗi l(k) (2 k m) là chiều dài của chuỗilà chiều dài của chuỗi con chung dài nhất tốicon chung dài nhất tốithiểu là k củacủa m chuỗi Ví dụ chochuỗi Ví dụ cho cáccác chuỗichuỗi sau: {sanddollar, sandlot, handler,sau: {sanddollar, sandlot, handler,grand, pantry} ta có:
thực hiện như sau:sau:
- Input:
- Input: Các chuỗi Các chuỗi S S11 , …, S m ((tổng chiều dài tổng chiều dài n) n)
- Output: l(k) (2 k m) - các - các chuỗi chuỗi con và độ dài của nó con và độ dài của nó.
Xây dựng cây hậu tố tổng quát cho m chuỗi, mỗi chuỗichuỗi, mỗi chuỗi duy nhất có mộtduy nhất có một
ký tự kết thúc
ký tự kết thúc
Kết luận
Trong chương này
Trong chương này, chúng tôi, chúng tôi đã trình bày tổng quan về các chức năngđã trình bày tổng quan về các chức năngcủa cây hậu tố, một số kiến thức liên quan đến việc tìm kiếm chuỗi
của cây hậu tố, một số kiến thức liên quan đến việc tìm kiếm chuỗi NNhữnghữngkiến thức quan trọng này sẽ làm nền tảng cho các kết quả sẽ trình bày trongcác chương tiếp theo của luận văn
các chương tiếp theo của luận văn.
Trang 26Chương III
HI Ệ N GIEN THEO CHU Ỗ I TH Ờ I GIAN
3.1 Thuật toán CCC-Biclustering
TrongTrong phần phần này chúng tôinày chúng tôi xin trình bày thuật toánxin trình bày thuật toán CCC-Biclustering,CCC-Biclustering,một
một kỹ thuật phân tíchkỹ thuật phân tích dữ liệudữ liệu biểu hiện biểu hiện gien theogien theo chuỗi thời gianchuỗi thời gian Thuật toánThuật toán tìm và
tìm và đưa rađưa ra tất cả cáctất cả các biclustersbiclusters cực đạicực đại, các, các cộtcột gắn kết liên tục với cácgắn kết liên tục với các mẫumẫu biểu hiện
biểu hiện hoàn hảohoàn hảo trong thời giantrong thời gian tuyến tính với kích thướctuyến tính với kích thước củacủa ma trận biểuma trận biểu hiện
hiện giengien Một b Một bicluster cóicluster có mẫumẫu biểu hiện biểu hiện hoàn hảohoàn hảo nếu tất cảnếu tất cả các gien trongcác gien trongbicluster
bicluster đều cóđều có cùngcùng mẫumẫu thể hiện trongthể hiện trong một khoảngmột khoảng thờithời giangian liên tụcliên tục MộtMộtbicluster là
bicluster là cực đạicực đại nếunếu nó khôngnó không thểthể mở rộng cácmở rộng các gien cógien có cùng mộtcùng một mẫumẫu vàvàthời điểm
thời điểm tiếp giáptiếp giáp
Việc chuẩn hóa ma trận biểu hiện gien theo chuỗibiểu hiện gien theo chuỗi thời gianthời gian ban đầu, làm giảm ban đầu, làm giảm
độ phức tạp khi phân tích dữ liệu, dẫn đến hiệu quả của thuật toán
độ phức tạp khi phân tích dữ liệu, dẫn đến hiệu quả của thuật toán CCC-Biclustering là
CCC-Biclustering là tuyến tínhtuyến tính
3.1.1. Chuẩn hóa dữ liệu biểu hiện gien
ChoCho A’ A’ là ma trận biểulà ma trận biểu hiện gien được xác định bởi |hiện gien được xác định bởi | R| hàng và |C | cột,trong đó
trong đó,, tập các hàng (gien)tập các hàng (gien) R, và tập các cột (thời điểm) C Chúng ta xétmức độ
mức độ thể hiệnthể hiện gien trong ma trậngien trong ma trận A’ A’ , mà mỗi phần tử là, mà mỗi phần tử là tập các ký tự trongtập các ký tự trong bảng chữ cái
bảng chữ cái Sau q Sau quá trình chuẩuá trình chuẩn hóan hóa dữ liệudữ liệu từtừ ma trậnma trận A’ A’ sangsang ma trậnma trận A,,
Trang 27mỗimỗi phần tử phần tử Aij đại diện cho các giá trị tùy thuộc vào đại diện cho các giá trị tùy thuộc vào mức độ thểmức độ thể hiệnhiện củacủagien ii tại thời điểm j Ví dụ Ví dụ::
khái niệm được sử dụng trong thuật toán.
Định nghĩa 3.1 (Bicluster). Một Một bicluster bicluster là là một một ma ma trận trận con con AA IJ được xácđịnh bởi I bởi I R là tập con R là tập con các hàng và các hàng và J J C là tập con các cột Một bicluster chỉ có một hàng hoặc một cột thì gọi là bicluster tầm thường.
Mục tiêu của thuật toán biclustering là xác định một tập con cácbicluster Bk = = (I (I k ,J k )) sao cho mỗi bicluster đáp ứng các đặc tính riêng biệt.sao cho mỗi bicluster đáp ứng các đặc tính riêng biệt. Những
Những đặc đặc tính tính đồng đồng nhất nhất chính chính xác xác mà mà một một bicluster bicluster thể thể hiện hiện thay thay đổi đổi tùytùytheo cách tiếp cận
theo cách tiếp cận [22].[22]
Định nghĩa 3.2 (CC-Bicluster). Một bicluster gắn Một bicluster gắn kết cột kết cột AA IJ là bicluster mà
Aij = Alj với tất cả hàng i, l với tất cả hàng i, l I và cột j J.
Việc tViệc t ìm ìm kiếmkiếm tất cả bicluster cựctất cả bicluster cực đại thỏa mãn cácđại thỏa mãn các thuộc tính gắn kếtthuộc tính gắn kết trongtrongđịnh nghĩa 3.2 được biết đến
định nghĩa 3.2 được biết đến naynay vẫn làvẫn là một vấn đề của bài toán NPmột vấn đề của bài toán NP-khó [16].-khó [16]
Trang 283.1.2 CC-B 3.1.2 CC-Bicluster icluster trong trong dữ liệu biểu hiện gien theo chuỗi thời gian
TrongTrong dữ liệu biểudữ liệu biểu hiện ghiện gienien theo chuỗi thời giantheo chuỗi thời gian,, khả năng chồng chéokhả năng chồng chéocác
các biclusters biclusters với với các các hànghàng tùy ý và cáctùy ý và các cột phảicột phải liền kềliền kề nhau Chúng ta cónhau Chúng ta cómột số khái niệm
một số khái niệm nhưnhư sau:sau:
Định nghĩa 3.3 (CCC-Bicluster). Một Một bicluster bicluster gắn gắn kết kết cột cột láng láng giềng giềng (contiguous column coherent bicluster: ccc-bicluster) A IJ = (I,J) là tập concủa các hàng I={i1 , , ik } và tập con các cột láng giềng J = {r, r+1, , s-1, s}
mà Aij = Alj , với mỗi i, l , với mỗi i, l I và các cột j I và các cột j J Mỗi CCC-Bicluster xác định một chuỗi S phổ biến với mọi hàng I và cột J.
Định nghĩa 3.4 (Row-Maximal CCC-Bicluster) Một Một CCC CCC -Bicluster A IJ là
cực đại hàng nếu không thể thêm được bất kỳ hàng I nào vào nó và được xác
nhận thuộc tính gắn kết như định nghĩa 3.3.
Định nghĩa 3.5 (Left-Maximal and Right-maximal CCC-Bicluster) Một Một
CCC-Bicluster A IJ là cực đại trái/phải nếu chúng ta không thể mở rộng nó bởimẫu biểu thức S vào trái/phải bằng cách thêm một ký tự (cột láng giềng) vàođầu/cuối của bicluster mà không làm t hay đổi tập hàng I.
Định nghĩa 3.6 (Maximal CCC-Bicluster). Một Một CCC CCC -Bicluster A IJ là cựcđại, khi nó không có CCC- Bicluster nào khác bao hàm được những thuộc tínhcủa A IJ , có nghĩa là, nếu cho tất cả các CCC -Biclusters A LM , , I I L J M
I = L J = M.
Với định nghĩa như vậyVới định nghĩa như vậy chúng tachúng ta có thể hiểu rằng “có thể hiểu rằng “CCC- Bicluster cựcđại là một CCC-Bicluster cực đại trái/ phải và cực đại hàng” phải và cực đại hàng”
Vấn đề đặt ra làVấn đề đặt ra là,, cho ma trậncho ma trận biểu biểu hiệnhiện gien A, xágien A, xác định tất cảc định tất cả cáccácCCC-Bicluster
CCC-Bicluster cực đạicực đại BK =A IkJk Để giải quyết vấn đề của bài toánĐể giải quyết vấn đề của bài toán đó chúngđó chúngtôi xin trình bày
tôi xin trình bày đề xuất của thuật toánđề xuất của thuật toán sử dụng kỹ thuật xử lýsử dụng kỹ thuật xử lý chuỗichuỗi dựa trêndựa trêncây hậu tố
cây hậu tố để xác định các CCCđể xác định các CCC Bicluster cực đạiBicluster cực đại với thời gian tuyến tínhvới thời gian tuyến tính
Ví dụ một số
Ví dụ một số biclusterbicluster cực đạicực đại cócó mẫu biểu hiệnmẫu biểu hiện hoàn hảohoàn hảo dưới đây:dưới đây:
Trang 29Hình 3.2 Minh họa các CCC Bicluster cực đại có mẫu biểu hiện hoàn hảo
Thuật toán biclustering xác định tập con các hàng và tập con các cộtThuật toán biclustering xác định tập con các hàng và tập con các cột làlàmột tập chuỗi
một tập chuỗi (là các hàng(là các hàng của ma trậncủa ma trận đã chuẩđã chuẩn hóa)n hóa) Chúng ta gọi Chúng ta gọi biclusterbicluster
có mẫu biểu hiện
có mẫu biểu hiện hoàn hảo nếu tất cả các gien trong bicluster có mẫu biểuhoàn hảo nếu tất cả các gien trong bicluster có mẫu biểuhiện
hiện giống nhaugiống nhau trong khoảng thời giantrong khoảng thời gian nhưnhư đãđã định nghĩa bicluster định nghĩa bicluster ở ở trên.trên.Hình 3.2
Hình 3.2 thể hiệnthể hiện các CCC-các CCC- biclusters cực đại biclusters cực đại với mẫu biểu hiệnvới mẫu biểu hiện hoàn hảohoàn hảo, có, có
ít nhất
ít nhất hai hàng thai hàng trong ma trận A (hình 3rong ma trận A (hình 3.1.1) là tập con của) là tập con của các hàng và cáccác hàng và các cột.cột.Chuỗi S B1 = [U],, S B2 = [U], S B3 = [U N], S B4 = [U D N], S B5 = [U], S B6 = [N] phù hợp
phù hợp với mẫu với mẫu biểu biểu hiệnhiện CCC-CCC-Biclusters cực đại khác nhau lần lượt là B1Biclusters cực đại khác nhau lần lượt là B1,,B2, B3, B4, B5 và B6
3.1.3 T ìm tất cả các bic các bicluster lustercực đại với mẫu biểu hiện hoàn hảo
Trong phần này chúng tôi tập Trong phần này chúng tôi tập trung mô tả mối quan hệtrung mô tả mối quan hệ tương đồngtương đồng giữagiữacác CCC-Bicluster
các CCC-Biclusters vớis với các nút trongcác nút trong củacủa cây hậu tốcây hậu tố tổng quáttổng quát được xây dựngđược xây dựngcho
cho tập cáctập các chuỗichuỗi (các hàng)(các hàng) đại diện cho các mẫu biểu hiệnđại diện cho các mẫu biểu hiện của mỗi giencủa mỗi gien
C1 C2 C3 C4 C5 G1 N N U U D D U U N N
Trang 30năng xác định các nút trên câynăng xác định các nút trên cây hậu tốhậu tố tương ứng vớitương ứng với các CCC-các CCC-Bicluster cựcBicluster cựcđại.
đại TThuật toánhuật toán Ukkonen [6][6] đã xác địnhđã xác định các liên kết hậu tố (suffix links) là rấtcác liên kết hậu tố (suffix links) là rấtcần thiết để
cần thiết để có thời gian tuyến tính khi xây dựng có thời gian tuyến tính khi xây dựng và thao tác trên câyvà thao tác trên cây
cách thêm số cột cho mỗi phần tửthêm số cột cho mỗi phần tử trong ma trận (thực hiện nhưtrong ma trận (thực hiện như một bướcmột bước tiềntiền
xử lý trong thuật toán) Khi đó t
xử lý trong thuật toán) Khi đó ta a cócó một bảng chữ cái mớimột bảng chữ cái mới ’ ’ == x {1, ,
|C|} ở đó mỗi phần tửở đó mỗi phần tử ’ ’ được ghép với một ký tựđược ghép với một ký tự trongtrong vvớiới một số trongmột số trongkhoảng {1, , |C|}. Khi đó taKhi đó ta cócó tập các chuỗitập các chuỗi {S1 , , S|R| } thu được bằng cách
áp dụng chuẩ
áp dụng chuẩn hóan hóa mỗi hàngmỗi hàng A iC của ma trận A như sau:như sau:
Hình 3.3 Mi nh họa quá trình chuẩ n hóa dữ liệu Hình (a) là ma trận A Hình (a) là ma trận A trong hình trong hình 3.1, hình (b) là ma trận thể hiện sau khi chuẩ n hóa các chữ cái và ghép thêm thứ tự cột
Chúng taChúng ta thấy rằngthấy rằng các CCC-các CCC-Biclusters cực đại trong ma trận gốc ABiclusters cực đại trong ma trận gốc Ađược mô tả chính xác
được mô tả chính xác tương ứngtương ứng vớivới các nút trêncác nút trên cây hậu tố tổngcây hậu tố tổng quát T đượcquát T đượcxây dựng từ tập các
xây dựng từ tập các chuỗichuỗi {S1 , , , S , S|R| } SSự gia tăngự gia tăng kích thướckích thước bảng bảng chữ chữ cáicái sau khi chu
sau khi chuẩẩn hóa khôngn hóa không ảnh hưởng đến việcảnh hưởng đến việc xây dựngxây dựng và thao tácvà thao tác củacủa câycâyhậu tố
hậu tố tổng quáttổng quát [17].[17]
Xét một nút vv trong T theo chiều sâu (theo chiều sâu (string-depth) ta có P(v) làlà chỉchỉ sốsốcột
cột Cho Cho L(v) biểu thị số biểu thị số lượnglượng lálá trong cây con có gốc làtrong cây con có gốc là vv, trong trường hợp
vv làlà mộtmột nút trong.nút trong
C1 C2 C3 C4 C5 G1 N N U U D D U U N N
Trang 31Hình 3.4 CCC-biclus Hình 3.4 CCC-bicluster và ter và cây hậu tố tổng quát
Bằng cáchBằng cách phân tíchphân tích như ví dụ minh họa, dễ dàngnhư ví dụ minh họa, dễ dàng xác định tất cả cácxác định tất cả cácnút trong
nút trong của câycủa cây T tương ứng với mộttương ứng với một CCC-BiclusterCCC-Bicluster cực đạicực đại hàng (hàng (
row-C1 C2 C3 C4 C5 G1 N N U U D D U U N N
Trang 32nút trong vv của câycủa cây T tương ứng với một chuỗi con (substring) phổ biến chotương ứng với một chuỗi con (substring) phổ biến chomọi
mọi hàng cóhàng có mộtmột lálá gốcgốc tạitại vv Vì vậy, mỗi nút trong Vì vậy, mỗi nút trong vv xác địnhxác định một CCCmột Bicluster có P(v) cột, vàcột, và số hàng bằngsố hàng bằng L(v).
CCC-Biclusters cực đạicực đại từtừ nútnút B1 đến B6 trong hìnhB1 đến B6 trong hình 3.4(b).3.4(b)
Lưu ý rằng các hàng trong mỗi CCCLưu ý rằng các hàng trong mỗi CCC-Bicluster-Bicluster thu được bởithu được bởi nútnút vv từtừ chuỗi
chuỗi ký tự kết thúcký tự kết thúc của nócủa nó trong cây con (subtree)trong cây con (subtree) Giá trị Giá trị P(v) và ký tự đầuvà ký tự đầutiê
tiên trong chuỗi nhãn củan trong chuỗi nhãn của nútnút vv cung cấp thông tin cần thiết để xác địnhcung cấp thông tin cần thiết để xác định tậptập các
các cột láng giềngcột láng giềng (contiguous columns).(contiguous columns)
Sử dụng ví dụ minh họa tr
Sử dụng ví dụ minh họa tr ong hình 3.4 chúngong hình 3.4 chúng ta thấyta thấy rằng tất cả các nútrằng tất cả các núttrong của cây hậu tố tổng quát T tương ứng với cáctương ứng với các CCC-Biclusters trong maCCC-Biclusters trong matrận A
trận A và mộtvà một vài CCC-vài CCC-Biclusters có thể không cực đạiBiclusters có thể không cực đại,, dưới đâydưới đây là một sốlà một sốkhái niệm để
khái niệm để hỗ trợ hỗ trợ vàvà xác địnhxác định CCC-BiclustersCCC-Biclusters cực đại cócực đại có ít nhất hai hàng.ít nhất hai hàng.
Bổ đề 3.1 Mọi CCC- Bicluster cực đại phải, cực đại hàng phải, cực đại hàng có ít nhất có ít nhất hai hàng hai hàng tương ứng với một nút trong của cây T và mọi nút trong của T tương ứng vớimột CCC Bicluster cực đại phải, Bicluster cực đại phải, cực đại hàng có ít nhất cực đại hàng có ít nhất hai hàng hai hàng
Chứng minhChứng minh:: Giả sửGiả sử B làlà mộtmột CCC-CCC-Bicluster cực đại phải, cực đại hàngBicluster cực đại phải, cực đại hàng
Trang 33chưa phải cột cuối cùng của ma trận)chưa phải cột cuối cùng của ma trận) Vì vậy có một nút trongVì vậy có một nút trong củacủa T phù hợpvới B và chuỗi nhãn của nút đó là một chuỗi xác địnhvà chuỗi nhãn của nút đó là một chuỗi xác định B Mặt khác Mặt khác,, mỗi nútmỗi núttrong
trong củacủa T xác định một chuỗi,xác định một chuỗi, đượcđược thể hiệnthể hiện trong htrong hai hoặc nhiềuai hoặc nhiều hơn sốhơn số
hàng trong A và ít nhất một trong các hàng này có ký tự khác trong cộtvà ít nhất một trong các hàng này có ký tự khác trong cột j, màlặp
lặp lại ở cộtlại ở cột bênbên cạnhcạnh cột cuối cùng củacột cuối cùng của B Nếu không xảy ra trường hợp nàythì không thể tồn tại một nút trong
thì không thể tồn tại một nút trong củacủa T Để phân biệt các nút tương ứng vớiCCC-
CCC-Biclusters cực đại trái, chúng ta tìm hiểu Biclusters cực đại trái, chúng ta tìm hiểu định nghĩa sau:định nghĩa sau:
Định nghĩa 3.7 (MaxNode). Một Một nút nút trong v của T gọi là MaxNode nếu vàchỉ nếu nó thỏa mãn một trong các điều kiện sau:
i) K hông có liên kết hậu tố đến
ii) C ó liên kết hậu tố đến từ các nút uii nào đó, với mọi nút u , L( , L(uii uii) < L(v).
Giả sử khi tGiả sử khi ta xét hai nút trêna xét hai nút trên cây hậu tố làcây hậu tố là vv 1 tương ứng vớivới BiclusterBicluster B 1
và vv2 tương ứng với Bicluster B2 N Nếu có một liên kết hậu tố từếu có một liên kết hậu tố từ nútnút vv1 đếnđến nútnút
vv2 , CCC-CCC-Biclusters được xác định bởiBiclusters được xác định bởi vv2 có chứacó chứa ít nhấtít nhất một cộtmột cột của CCCcủa Biclusters
CCC Biclusters đượcđược xác định bởixác định bởi vv1 Điều này dẫnĐiều này dẫn đến bổ đề.đến bổ đề
Bổ đề 3.2 Một Một nút nút trong trong của T tương ứng với CCC Biclusters Biclusters cực cực đại đại tráitráinếu và chỉ nếu nó thỏa mãn định nghĩa 3.7
Bicluster bắt đầu từ cột thứ nhấtthứ nhất trong A hoặctrong A hoặc đượcđược xác địnhxác định bằng bằng một chuỗimột chuỗi
ss,, xs hiệnhiện làlà mộtmột hàng đơn trong A và đhàng đơn trong A và được thể hiệnược thể hiện làlà chuỗi nhãn củachuỗi nhãn của mộtmột nútnút
lá trong T
lá trong T Vì vậy B cực đại trái,Vì vậy B cực đại trái, khikhi cả hai trường hợp không thể mở rộngcả hai trường hợp không thể mở rộngsang trái và cũng không bị mất hàng Nếu nút vv có liên kết hậu tố đến từcó liên kết hậu tố đến từ nútnút uii
nào đónào đó màmà L(uii) < L(v) thì B cực đại trái, khi CCCcực đại trái, khi CCC-Biclusters-Biclusters B đượcđược xác địnhxác định bởi
bởi uii sẽ có ít hàng hơn Nhưng đối với các hướng khác, nếu một nútsẽ có ít hàng hơn Nhưng đối với các hướng khác, nếu một nút trongtrong vv
Trang 34> L(v)), thì CCC-), thì CCC-Bicluster B được xác định bởiBicluster B được xác định bởi vv có thể mở rộng sang trái tồncó thể mở rộng sang trái tồntại với một tập hàng Do đó vv không xác định CCCkhông xác định CCC Bicluster cực đại trái.Bicluster cực đại trái.
Định lý 3.1 M ọọi CCC- Bicluster Bicluster cực cực đại đại có có ít ít nhất nhất hai hai hàng hàng tương tương ứng ứng vớivới
một nút trong của cây hậu tố tổng quát T thỏa mãn định nghĩa 3.7 , và mỗi nút
trong xác định một CCC -Bicluster cực đại có ít nhất hai hàng.
3.1.3.2 T 3.1.3.2 Tìm và ìm và đưa ra tất cả CCC-Bicluster trong thời gian tuyến tính
TThuật toán tìmhuật toán tìm vàvà đưa rađưa ra tất cả các CCCtất cả các CCC-Bic-Bicluster cực đạiluster cực đại, trong, trong dữ liệudữ liệuchuẩn hóa
chuẩn hóa từtừ ma trận biểu hiệnma trận biểu hiện gien A trong thời gian tuyến tínhgien A trong thời gian tuyến tính theo kíchtheo kíchthước của ma trận
thước của ma trận,, được xây dựngđược xây dựng dựadựa trêntrên cây hậu tố với tậpcây hậu tố với tập cáccác chuỗi {chuỗi {S1 , , S|R||} thu được như đã mô tả ở trên Thêm vào đó là kiểm tra mỗi nút} thu được như đã mô tả ở trên Thêm vào đó là kiểm tra mỗi nút trongtrong
với các nút trongtrong của cây hậu tố sẽcủa cây hậu tố sẽ là các CCC-là các CCC-Bicluster cực đại.Bicluster cực đại.
Thuật toán: CCC -Biclustering input
input: Ma trận biểu : Ma trận biểu hiện gien hiện gien.
1 Chuẩ
1 Chuẩn hóa n hóa ma trận và thu được ma trận và thu được tậ tậpp các chuỗi các chuỗi {S 1 , , S |R| }
2 Xây
2 Xây dựng cây hậu tố tổng quát T cho dựng cây hậu tố tổng quát T cho {S 1 , , S |R| }.
33 for each internal node v T do
4 Đánh dấu Đánh dấu nút nút vv hợp lệ “Valid” hợp lệ “Valid”.
5 Tính
5 Tính P(v) theo chiều sâu.
6 for each internal node v T do
7 Tính
7 Tính số lượng số lượng lá lá L(v) trong cây con có gốc trong cây con có gốc vv
8 for each internal node v T do
9 Nếu có liên kết từ nút vv đến đến u và L(u) = L(v) thì
10 Đánh dấu nút không hợp lệ (“ Invalid ”) ”)
11 for each internal node v T do
12 Nếu vv được đánh dấu là hợp lệ thì được đánh dấu là hợp lệ thì
13 Đưa ra Đưa ra CCC-Bicluster tương ứng với tương ứng với nút nút vv
Trang 35Trong thuật toánTrong thuật toán trên chúng tatrên chúng ta cầncần quan tâm đến ba vấn đề chi tiết dẫnquan tâm đến ba vấn đề chi tiết dẫnđến hiệu quả của thuật toán như sau:
đến hiệu quả của thuật toán như sau:
Thứ nhất Thứ nhất :: Cấu trúc dữ liệu được dùng trong cây hậu tố tổng quát Cấu trúc dữ liệu được dùng trong cây hậu tố tổng quát C
Chúng ta sử dụng ba kiểu núthúng ta sử dụng ba kiểu nút đểđể xây dựng cây hậu tố tổng quát T làxây dựng cây hậu tố tổng quát T là:: nút gốcnút gốc(root), nút trong và nút lá
+) Nút gốc gốc (root)(root) lưu trữ một mảng gọi làlưu trữ một mảng gọi là children với |C|||+|R| vị trí,
ở đó mỗi vị trí là một con trỏ
ở đó mỗi vị trí là một con trỏ M Mảng được sắp xếp theo thứ tự đảo ngược từảng được sắp xếp theo thứ tự đảo ngược từ kýký
tự đầu tiên của
tự đầu tiên của nhãn cạnh trong các nút Đầunhãn cạnh trong các nút Đầu tiêntiên với |C||với |C|||| vị trí lưu trữ cácvị trí lưu trữ cácnút trong có nhãn
nút trong có nhãn cạnhcạnh bắt đầu với bắt đầu với ’[|C|||] .’[1] Cuối cùng |R| vị trí lưutrữ
trữ |R| chuỗi kết thúc Trong thiết lập này,|R| chuỗi kết thúc Trong thiết lập này, children[j],, j {1, ., |C|||}, lànull nếu không có
null nếu không có hậu tốhậu tố bất kỳ bất kỳ nàonào củacủa chuỗichuỗi Sii bắt đầu với ký tự trong ’’[[ j],khi
khi đó nếu các nútđó nếu các nút gọi làgọi là khả năngkhả năng có nhãncó nhãn cạnh bắt đầu với ký tựcạnh bắt đầu với ký tự ’’[[ j] ] SSửửdụng
dụng thứ tự đảo ngược vì, trong thựcthứ tự đảo ngược vì, trong thực tếtế bước c bước chuẩhuẩn hóan hóa bảng bảng chữ chữ cáicái làlà mộtmộttập
tập các số nguyên dương vàcác số nguyên dương và giá trịgiá trị kết thúckết thúc được đại diện bởi số nguyên âm.được đại diện bởi số nguyên âm
+) Nút trong (internal node):: Mỗi nMỗi nút trongút trong vv lưu trữlưu trữ một con trỏ,một con trỏ, chiềuchiềudài của nó P(v), số lượng lá trong cây consố lượng lá trong cây con làlà L(v), và được đánh dấuvà được đánh dấu nếu nónếu nótương ứng với một CCC
tương ứng với một CCC-Bicluster-Bicluster cực đạicực đại hoặchoặc không Nút conkhông Nút con thứ nhấtthứ nhất củacủa nút trong là
nút trong là phần tử phần tử đầu đầu tiêntiên củacủa danh sách, các nút condanh sách, các nút con tương ứng được sắptương ứng được sắpxếp đảo ngược
xếp đảo ngược ký tự đầu tiên củaký tự đầu tiên của nhãnnhãn cạnh Chèn cáccạnh Chèn các nútnút được sắp xếp theođược sắp xếp theothứ tự đảo ngược ký tự của
thứ tự đảo ngược ký tự của nhãnnhãn cạnh gồmcạnh gồm O(|O(||)|) phần phần tửtử vào danh sáchvào danh sáchtương ứng với
tương ứng với ký tựký tự trongtrong ’ ’ vàvà sau đó làsau đó là chènchèn O(|R|) ký tự kết thúcO(|R|) ký tự kết thúc V Việc tìmiệc tìmkiếm
kiếm ký tựký tự ’ ’ trong núttrong nút con của một nútcon của một nút trongtrong vv luôn luôn cóluôn luôn có thời gian Othời gian O(|(||).Các nút anh em
Các nút anh em của mỗi nútcủa mỗi nút trongtrong vv cũng là phần tửcũng là phần tử đầuđầu của danh sách liêncủa danh sách liênkết
kết cũng đượccũng được lưu trữ.lưu trữ.
+) Nút lá (leaf) cũngcũng đượcđược lưu trữ các thông tin tương tự như nútlưu trữ các thông tin tương tự như nút trong.trong
Trang 36Thứ haiThứ hai:: Chuyển đổi bảng chữ cái và cây hậu tố tổng quát Chuyển đổi bảng chữ cái và cây hậu tố tổng quát Một câ Một câyyhậu tố tổng quát
hậu tố tổng quát được xây dựng chođược xây dựng cho tập các chuỗi (mảng ký tự) và bảng chữtập các chuỗi (mảng ký tự) và bảng chữcái
cái Khi các Khi các phần tử phần tử trongtrong khôngkhông chỉchỉ duy nhấtduy nhất một ký tựmột ký tự, thì, thì chuyển đổichuyển đổi bảng
bảng chữ cáichữ cái này sangnày sang một bảngmột bảng cáccác số nguyên Trong nội dungsố nguyên Trong nội dung này, tập cácnày, tập cácchuỗi {S1 , , , , S S|R||} thu được bằng cách áp dụng chuyển đổi bảng chữ cái chomỗi hàng AiC trong ma trậntrong ma trận A và được sử dụng để xây dựng câyvà được sử dụng để xây dựng cây hậu tốhậu tố tổngtổngquát T Trong Trong thuật toánthuật toán CCC-Biclustering lúc nàyCCC-Biclustering lúc này áp dụng với mộtáp dụng với một mảng cácmảng các
thực hiện cho ví dụ minh họa trong hình 3.13.1 Do đó, trong trường hợp này Do đó, trong trường hợp này
= {D, N, U}, mỗi phần tử trongmỗi phần tử trong ’ ’ thu được bằng cáchthu được bằng cách ghép các mãghép các mã ASCII
tương ứng với {68, 78,85} và một số trong phạm vi {1, , 5} Chuyển đổi bảng
bảng chữ cái chữ cái được sử được sử dụng trong dụng trong quá trình quá trình làlà ’’ = {681, 682, 683, 684, 685;= {681, 682, 683, 684, 685;
781, 782, 783, 784, 785; 851, 852, 853, 854, 855}
781, 782, 783, 784, 785; 851, 852, 853, 854, 855}.
Hình 3.5 Minh họa sau khi quá trình chuẩn hóa dữ liệu bằng cách ghép mã ASCII (a) là
ma trận A trong hình 3.1; (b) là ma trận A sau khi chuyển đổi bảng chữ cái được sử dụng trong các ví dụ trên, kết thúc chuỗi $i; (c) là m a trận sau khi chuyển đổi a trận sau khi chuyển đổi bảng chữ cái được bảng chữ cái được
dùng trong thao tác kỹ thuật của CCC -Biclusters Mỗi gien được đại diện là một mảng các
số nguyên Cuối cùn g là -(|R| - i + 1) được sử dụng cho mỗi gien và |R| = 5.
Chuỗi kết thúcChuỗi kết thúc củacủa tậptập cáccác chuỗichuỗi {S1 , , , , S S|R| } sử dụng trong quá trìnhsử dụng trong quá trìnhthực hiện cũng là một tập các số nguyên,
thực hiện cũng là một tập các số nguyên, những ký tự kết thúcnhững ký tự kết thúc được sử dụngđược sử dụnglà
là giá trị số nguyêngiá trị số nguyên ii cho gien ii Tuy nhiên, Tuy nhiên, khi số lượng của các gkhi số lượng của các gien trongien trong