Ngồi 3 module chính cịn 2 module nhập xuất thực hiện việc xử lý dữ liệu đầu vào cũng như xuất kết quả của giải thuật.
Input/Output.
Dữ liệu đầu vào của chương trình tuân theo chuẩn định dạng FASTA(NCBI)[21]. Chuẩn định dạng FASTA được sử dụng phổ biến trong hầu hết các chương trình tìm MSA.
Chuẩn định dạng này lưu trữ các sequence theo cấu trúc: tên, mô tả và nội dung của sequence. Mỗi ký tự “>” biểu hiện cho sự khai báo một sequence trong file. Nội dung của sequence không chứa ký tự khoảng trắng.
Định dạng:
Bảng 4.1 Định dạng của file dữ liệu đầu vào
Dữ liệu đầu ra của chương trình được biểu diễn theo từng phần của tồn bộ MSA. Định dạng của file kết quả có dạng như sau.
Giải thuật GA
cho TSP Chu trình qua các
đỉnh Ma trận khoảng cách Số đỉnh GALib >Tênsequence Mô tả Nội dung >Tênsequence Mô tả Nội dung . . . . >Sequence1 cbfx_mouse VLGTVKWFNVRNGYGFINRNDT KEDVFVHQTAIKKNNPRKYLRSV GDGETVEFDVVEGEKGAEAANV TGP >Sequence2 grp2_nicsy KGTVKWFSDQKGFGFITPDDGGE DLFVHQSGIRSEGFRSLAEGETVE FEVESGGDGRTKAVDVTGP
Bảng 4.2 Định dạng của file dữ liệu đầu ra.
Ngồi ra chương trình cịn cho phép lưu trữ kết quả theo chuẩn định dạng MSF, để phục vụ cho quá trình so sánh thống kê kết quả khi kiểm thử trên tập BAliBASE benchmark, phần này sẽ được đề cập chi tiết trong Chương 5. Chuẩn định dạng MSF có dạng như sau:
Bảng 4.3 Định dạng file dữ liệu đầu ra theo chuẩn MSF
Result MSA:
Tên sequence Nội dung của sequence trong MSA Tên sequence Nội dung của sequence trong MSA …
Tên sequence Nội dung của sequence trong MSA
Result MSA: grp2_nicsy -----KGTVKWFSDQKGFGFITPDDGGEDLFVHQSGIRSEG----FRSLA cbfx_mouse ----VLGTVKWFNVRNGYGFINRNDTKEDVFVHQTAIKKNNPRKYLRSVG ************************************************************* grp2_nicsy EGETVEFEVESGGDGRTKAVDVTGP- cbfx_mouse DGETVEFDVVEGEKG-AEAANVTGP- PileUp
MSF: l (chiều dài MSA) Type: P hay N (cho biết là các sequence đang xét là protein hay nucleotide)
Name: Tên của sequence oo Len: chiều dài sequence trong MSA …
Name: Tên của sequence oo Len: chiều dài sequence trong MSA // (2 ký tự này cho biết kết thúc phần header của file)
Tên sequence Nội dung của sequence trong MSA(Các ký hiệu ‘-‘ được thay bằng ‘.’) Tên sequence Nội dung của sequence trong MSA
PileUp
MSF: 82 Type: P
Name: hmgl_trybr oo Len: 82 Name: hmgt_mouse oo Len: 82 Name: hmgb_chite oo Len: 82 //
hmgl_trybr .KKDSNAPKR AMTSFMFFSS ....DFRSKH SDLSI.VEMS KAAGAAWKEL hmgt_mouse ......KPKR PRSAYNIYVS ESFQEAKDDS AQGKL..... KLVNEAWKNL hmgb_chite ....ADKPKR PLSAYMLWLN SARESIKREN PDFKV.TEVA KKGGELWRGL
hmgl_trybr GPEERKVYEE MAEKDKERYK REM....... .. hmgt_mouse SPEEKQAYIQ LAKDDRIRYD NEMKSWEEQM AE hmgb_chite ..KDKSEWEA KAATAKQNYI RALQEYERNG G.
Bảng tóm tắt các lớp được xây dựng của chương trình: Lớp Chức năng
MultipleAlignmentAlgorithm Hiện thực chức năng module MSA: Feng- Doolittle, tạo ma trận khoảng cách, thực hiện giải thuật align MSA
LinearSapceAlgorithm Hiện thực giải thuật PSA theo kỹ thuật chia
để trị sử dụng 3 ma trận BLOSUM
Sequence Lưu trữ Sequence
GATSP Hiện thực giải thuật di truyền cho bài toán TSP dựa trên thư viện hàm GALib
AlignSequenceProfile Lưu trữ các nhóm sequence đã được align InitValue Khởi tạo các thông số cho giải thuật PSA MatrixPenalty Đối tượng lưu trữ ma trận đánh giá, các
tham số về gap
StoreOPDBPF Lưu trữ thơng tin cho phép tìm lại con
đuờng của giải thuật PSA
TSPResultObject Lưu trữ kết quả lời giải TSP
Bảng 4.4 Bảng tóm tắt các lớp của chương trình.
Ngồi ra chương trình cịn 1 số lớp phụ khác phục vụ cho quá trình xây dựng giao diện, hỗ trợ cấu trúc dữ liệu cho việc thực thi các thuật giải…
Chương 5. KẾT QUẢ NHẬN XÉT
Chương này giới thiệu một số kết quả của chương trình. Thực hiện việc kiểm thử chương trình trên BAliBASE benchmark, so sánh kết quả với một số chương trình đang được sử dụng phổ biến trên thế giới.
Các kết quả của MSAPR trong phần này thu được khi chạy trên máy PC cấu hình 512MB RAM, CPU Intel 4 2.4 GHz, sử dụng hệ điều hành Microsoft Windows XP.
5.1. Một số kết quả chạy chương trình.
Ví dụ kiểm thử kết quả chương trình trên tập TAT protein của HIV1(Human Immunodeficiency Virus 1):
Bảng 5.1 TAT Protein HIV1
>1 MDPVDPNLESWNHPGSQPRTACNKCHCKKCCYHC >2 MDPVDPNLEPWNHPGSQPRTPCNKCHCKKCCYHC >9 MEPVDPRLEPWKHPGSQPKTACNNCYCKKCCYHC >16 MEPVDPRLEPWKHPGSQPKTASNNCYCKRCCLHC >20 MEPVDPRLEPWKHPGSQPKTACTNCYCKKCCFHC >22 MEPVDPRLEPWKHPGSQPKTACTTCYCKKCCFHC >21 MDPVDPRLEPWKHPGSQPKAACTSCYCKKCCFHC >23 MEPVDPSLEPWKHPGSQPKTACTNCYCKKCCLHC >18 MEPVDPNLEPWKHPGSQPRTACNNCYCKKCCFHC >19 MEPVDPNLEPWKHPGSQPRTACNNCYCKKCCFHC >8 MEPVDPNLEPWKHPGSQPRTACTNCYCKKCCFHC >15 MEPVDPRLEPWKHPGSQPKTACTNCYCKKCCFHC >14 MEPVDPRLEPWKHPGSQPKTACTNCYCKKCCFHC >13 MEPVDPRLEPWKHPGSQPKTACTNCYCKKCCFHC >12 MEPVDPRLEPWKHPGSQPKTACTNCYCKKCCFHC >11 MEPVDPRLEPWKHPGSQPKTACTNCYCKKCCFHC >10 MEPVDPRLEPWKHPGSQPKTACTTCYCKKCCFHC >17 METHLKAPESSLESYNEPSSCTSEQGVTAQELAKQGEELLSQLHRPLEACTNSCYCKQCSFHC >7 MEPVDPNLEPWKHPGSQPTTACSNCYCKVCCWHC >6 MDPIDPDLEPWKHPGSQPRTVCNNCYCKACCYHC >24 MDPVDPNIEPWNHPGSQPKTACNRCHCKKCCYHC >5 MDPVDPNIEPWNHPGSQPKTACNRCHCKKCCYHC >4 MDPVDPNLEPWNHPGSQPKTACNRCHCKKCCYHC >3 MDPVDPNLEPWNHPGSQPRTPCNKCYCKKCCYHC
Trong đó: 1,..,24 lần lượt là 24 protein của TAT : 1 -> P18804 2 -> P04611 3 -> P04613 4 -> P04609 5 -> P12506 6 -> P17285 7 -> P24738 8 -> P19552 9 -> P05908 10 -> P04610 11 -> P04607 12 -> P04606 13 -> P04326 14 -> P04608 15 -> P05907 16 -> P20893 17 -> P18044 18 -> P35965 19 -> P04614 20 -> P19553 21 -> P05906 22 -> P05905 23 -> P20879 24 -> PDB1tiv
Bảng 5.2 Kết quả Alignment của MSAPR và CLUSTALW với TAT HIV1
Result of MSA: 6 MDP----IDPDLEPWKHPGS------------------------QPRTVCNN-CYCKACCYHC 3 MDP----VDPNLEPWNHPGS------------------------QPRTPCNK-CYCKKCCYHC 2 MDP----VDPNLEPWNHPGS------------------------QPRTPCNK-CHCKKCCYHC 1 MDP----VDPNLESWNHPGS------------------------QPRTACNK-CHCKKCCYHC 24 MDP----VDPNIEPWNHPGS------------------------QPKTACNR-CHCKKCCYHC 5 MDP----VDPNIEPWNHPGS------------------------QPKTACNR-CHCKKCCYHC 4 MDP----VDPNLEPWNHPGS------------------------QPKTACNR-CHCKKCCYHC 19 MEP----VDPNLEPWKHPGS------------------------QPRTACNN-CYCKKCCFHC 18 MEP----VDPNLEPWKHPGS------------------------QPRTACNN-CYCKKCCFHC 8 MEP----VDPNLEPWKHPGS------------------------QPRTACTN-CYCKKCCFHC 7 MEP----VDPNLEPWKHPGS------------------------QPTTACSN-CYCKVCCWHC 23 MEP----VDPSLEPWKHPGS------------------------QPKTACTN-CYCKKCCLHC 16 MEP----VDPRLEPWKHPGS------------------------QPKTASNN-CYCKRCCLHC 9 MEP----VDPRLEPWKHPGS------------------------QPKTACNN-CYCKKCCYHC 12 MEP----VDPRLEPWKHPGS------------------------QPKTACTN-CYCKKCCFHC 14 MEP----VDPRLEPWKHPGS------------------------QPKTACTN-CYCKKCCFHC 20 MEP----VDPRLEPWKHPGS------------------------QPKTACTN-CYCKKCCFHC 11 MEP----VDPRLEPWKHPGS------------------------QPKTACTN-CYCKKCCFHC 15 MEP----VDPRLEPWKHPGS------------------------QPKTACTN-CYCKKCCFHC 13 MEP----VDPRLEPWKHPGS------------------------QPKTACTN-CYCKKCCFHC 10 MEP----VDPRLEPWKHPGS------------------------QPKTACTT-CYCKKCCFHC 22 MEP----VDPRLEPWKHPGS------------------------QPKTACTT-CYCKKCCFHC 21 MDP----VDPRLEPWKHPGS------------------------QPKAACTS-CYCKKCCFHC 17 METHLKAPESSLESYNEPSSCTSEQGVTAQELAKQGEELLSQLHRPLEACTNSCYCKQCSFHC 1 ----MDPVDPNLESWNHP-----------------GS-------QPRTACNK-CHCKKCCYHC 2 ----MDPVDPNLEPWNHP-----------------GS-------QPRTPCNK-CHCKKCCYHC 9 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACNN-CYCKKCCYHC 16 ----MEPVDPRLEPWKHP-----------------GS-------QPKTASNN-CYCKRCCLHC 20 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCFHC 22 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTT-CYCKKCCFHC 21 ----MDPVDPRLEPWKHP-----------------GS-------QPKAACTS-CYCKKCCFHC 23 ----MEPVDPSLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCLHC 18 ----MEPVDPNLEPWKHP-----------------GS-------QPRTACNN-CYCKKCCFHC 19 ----MEPVDPNLEPWKHP-----------------GS-------QPRTACNN-CYCKKCCFHC 8 ----MEPVDPNLEPWKHP-----------------GS-------QPRTACTN-CYCKKCCFHC 15 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCFHC 14 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCFHC 13 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCFHC 12 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCFHC 11 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCFHC 10 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTT-CYCKKCCFHC 17 METHLKAPESSLESYNEPSSCTSEQGVTAQELAKQGEELLSQLHRPLEACTNSCYCKQCSFHC 7 ----MEPVDPNLEPWKHP-----------------GS-------QPTTACSN-CYCKVCCWHC 6 ----MDPIDPDLEPWKHP-----------------GS-------QPRTVCNN-CYCKACCYHC 24 ----MDPVDPNIEPWNHP-----------------GS-------QPKTACNR-CHCKKCCYHC 5 ----MDPVDPNIEPWNHP-----------------GS-------QPKTACNR-CHCKKCCYHC 4 ----MDPVDPNLEPWNHP-----------------GS-------QPKTACNR-CHCKKCCYHC 3 ----MDPVDPNLEPWNHP-----------------GS-------QPRTPCNK-CYCKKCCYHC
Kết quả MSA với tập HIV1 của MSAPR
Thời gian chạy đối với việc tìm MSA của TAT HIV1 là 15s, của CLUSTALW là 12s. Thử nghiệm trên một số tập protein thực khác, và so sánh với kết quả của CLUSTALW, chương trình cho kết quả chạy tốt. Khi số sequence lớn và chiều dài trung bình của các sequence lớn hơn 500, thời gian chạy của chương trình cao hơn so với CLUSTALW. Vấn đề so sánh thời gian chạy và không gian bộ nhớ sử dụng sẽ được đề cập chi tiết trong phần sau.
Phần tiếp theo sẽ thực hiện việc so sánh kết quả của MSAPR với một số chương trình, trên cùng một tập dữ liệu đầu vào BAliBASE.
5.2. BAliBASE (Benchmark Alignment Database)
BAliBASE[3] là một tập dữ liệu các MSA của các protein được giới thiệu bởi Thompson(1999). Các MSA trong BAliBASE được xây dựng dựa trên cấu trúc bậc 3 (cấu trúc của các protein trong không gian 3 chiều) quan sát được của các protein. Từ cấu trúc bậc 3, các protein được chuyển đổi về cấu trúc bậc 2, từ đó tạo nên các MSA trong BAliBASE. Đây là một benchmark chuẩn, thường được dùng để kiểm thử các chương trình tìm lời giải của bài toán MSA. Phiên bản được sử dụng trong đề tài BAliBASE 2.01.
BAliBASE 2.01 bao gồm 220 MSA, với khoảng 1000 sequence. Các protein trong MSA là các protein thật sự trong thực tế. Các MSA trong BAliBASE chia làm 8 nhóm. Mỗi nhóm này giới thiệu một số các trường hợp MSA thường gặp trong thực tế.
Nhóm 1 là các MSA của các sequence có độ dài tương đương nhau, và có nhiều mức độ tương đồng giữa các sequence.
Nhóm 2 bao gồm các MSA của 1 tập khoảng 15 sequence, có độ giống nhau quan sát được trong cấu trúc bậc 3 nhỏ hơn 25%.
Nhóm 3 bao gồm 4 nhóm con, các nhóm con này có độ giống nhau ở các vị trí của các sequence giữa các nhóm nhỏ hơn 25%.
Nhóm 4 và nhóm 5 chứa các alignment có từ 20 sequence trở lên bao gồm các N/C terminal extension và các insertions.
Nhóm 6 gồm các MSA được hình thành từ các sequence có sự lặp lại của các đoạn con.
Nhóm 8 bao gồm các MSA được hình thành từ các protein có sự đột biến theo dạng vòng(Đột biến vòng được định nghĩa: Xét 1 protein ABCDEFGH, đột biến vịng có thể có dạng như sau ABCDEFGH, BCDEFGHA, CDEFGHAB ,DEFGHABC, EFGHABCD).
BAliBASE sử dụng 2 định dạng file để cho phép người dùng có thể kiểm nghiệm kết quả của các chương trình trên tập dữ liệu này. Các file .tfa lưu trữ các sequence(tạo nên mỗi MSA tương ứng trong BAliBASE) theo chuẩn FASTA. Các file .msf lưu trữ các MSA theo chuẩn MSF.
Việc so sánh kết quả MSA của BAliBASE với các kết quả MSA khác(được tạo ra bởi cùng 1 tập sequence đầu vào) sẽ được thực hiện thông qua chương trình bali_score (Thompson) [4].
Chương trình này sẽ cho biết MSA được đưa vào sẽ có độ chính xác bao nhiêu so với MSA của BAliBASE. Gọi độ chính xác là Δ. Tiêu chí đánh giá độ chính xác của MSA thường căn cứ vào Δ.
Một số tính chất của Δ: Δ ∈[0,1].
Δ =1 có sự giống nhau hồn tồn giữa 2 MSA. Δ =0, 2 MSA có sự khác biệt hồn tồn. Δ →1 độ chính xác cao.
Δ →0 độ khác biệt cao.
Chương trình MSAPR cho kết quả chạy khá tốt trên BAliBASE benchmark.
5.3. So sánh kết quả
Để kiểm định kết quả của MSAPR, đề tài sử dụng các file .tfa của BAliBASE, thực hiện việc tính tốn đồng thời kết quả của cả MSAPR và CLUSTALW. Ngoài ra để cung cấp một cái nhìn tồn diện hơn, chương trình có sử dụng lại các kết quả tính tốn của Thompson [29] với 7 chương trình khác để thực hiện việc so sánh. Các