1. Trang chủ
  2. » Luận Văn - Báo Cáo

NGHIÊN CỨU VÀ ỨNG DỤNG CÁC THUẬT TOÁN BICLUSTERING TRONG VIỆC KHAI PHÁ BICLUSTER TRONG DỮ LIỆU BIỂU HIỆN GIEN THEO CHUỖI THỜI GIAN DỰA TRÊN CÂY HẬU TỐ LUẬN VĂN CÔNG NGHỆ SINH HỌC

72 30 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 1,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

MỞ ĐẦ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 2

nghiê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 3

Cà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 4

NỘ 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 5

 Hì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 6

Dướ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 7

1.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 8

q-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 9

Mô 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 11

 Bả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 12

1.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 13

toá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 14

Chươ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 15

   Mỗ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 17

 Hì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 18

 Hì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 19

nú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 20

toà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 21

Gọ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 22

Thuậ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 23

Dướ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 24

cá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 26

Chươ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 27

mỗ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 28

 3.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 29

 Hì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 30

nă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 31

 Hì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 32

nú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 33

chư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 35

Trong 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 36

Thứ 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

Ngày đăng: 09/08/2020, 17:02

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w