Phần hiện thực giải thuật và chương trình:

Một phần của tài liệu Các kỹ thuật toán học cho bài toán so sánh đa trình tự (Trang 71 - 77)

4- NGÀY HOÀN THÀNH NHI ỆM VỤ :

4.4.Phần hiện thực giải thuật và chương trình:

Chương trình tính MSA(MSAPR) được viết bằng VC++8(2005) trên nền IDE Visual Studio 2005. Chương trình chạy trên nền hệ điều hành Microsoft Windows XP, cung cấp giao diện đồ hoạ cho phép người dùng tương tác một cách dễ dàng.

Chương trình tính MSA hiện thực cả 2 giải thuật 1A, 1B. Người sử dụng có thể lựa chọn 1 trong 2 giải thuật này.

Dựa trên các ý tưởng đã được phân tích trong phần giải thuật. Cấu trúc chương trình chương trình hiện thực bài toán MSA gồm có 3 phần:

ƒ Module giải quyết bài toán PSA ƒ Module giải quyết bài toán TSP

Trước [0 1 2 3 4 5 6] Sau phép đột biến [0 1 3 2 4 5 6] parent 1 : 1 2 | 5 6 4 | 3 8 7 parent 2 : 1 4 | 2 3 6 | 5 7 8 ________________________________ offspring (step 1) : 1 4 5 6 4 5 7 8 (step 2) : 1 3 5 6 4 2 7 8

ƒ Module hiện thực giải thuật 1B.

Hình 4.8 Cấu trúc chương trình hiện thực

PSA Module: hiện thực giải thuật “Chia để trị” kết hợp với việc sử dụng 3 ma trận BLOSUM để giải quyết bài toán PSA.

Hình 4.9 Module PSA

MSA Module :Hiện thực giải thuật tính MSA. Bao gồm các khối chức năng: ƒ Khối chức năng tính toán ma trận khoảng cách dựa trên việc sử dụng

module PSA.

ƒ Khối chức năng tìm thứ tự align các sequence dựa trên ma trận khoảng cách và Module TSP.

ƒ Khối chức năng thực hiện giải thuật Feng-Doolittle, align 2 nhóm sequence. Input MSA Module PSA Module TSP Module Output PSA Module Kết quả hàm đánh giá 2 sequence Kết quả alignment 2 sequence Sequence 1 Sequence 2 Đầu ra Đầu vào

Giải thuật Chia để trị kết hợp quy hoạch động

Các ma trận BLOSUM

ƒ Khối chức năng thực hiện giải thuật align bao gồm việc gom nhóm, thực hiện giải thuật align theo thứ tự từ lời giải bài toán TSP, lưu trữ các nhóm sequence đã được align.

Hình 4.10 Sơđồ các khối chức năng của Module MSA.

TSP Module: Module hiện thực giải thuật giải quyết bài toán TSP. Trên cơ sở thư viện hàm GALib[12] được phát triển bởi MIT(Massachusetts Institute of Technology), chương trình tích hợp và thừa kế thư viện GALib đồng thời hiện thực một giải thuật di truyền cho bài toán TSP. GALib là một thư viện hàm mở, được viết bằng C++, cung cấp các phương thức hỗ trợ người dùng xây dựng một giải thuật di truyền(GA) để phát triển các ứng dụng .

Mặc dù là bài toán NP, tuy nhiên hiện tại bài toán TSP đã được giải quyết rất tốt với số đỉnh nhỏ hơn 10000.Về phương pháp giải quyết bài toán TSP, có khá nhiều phương pháp, phương pháp tiếp cận theo nhánh và cận(branch and bound) kết hợp một số kỹ thuật heuristic được sử dụng phổ biến nhất và cho kết quả nhanh nhất. Sử dụng giải thuật GA cho bài toán TSP là một giải pháp không thật sự tối ưu, tuy nhiên giải thuật là chấp nhận được về mặt thời gian cũng như không gian nhớ khi số đỉnh nhỏ hơn 500. Do phạm vi của luận văn nên phần giải quyết bài toán TSP chỉ giới hạn trong việc áp dụng giải thuật GA.

Input (k sequence) Ma trận khoảng cách Lời giải TSP Feng-Doolittle Algorithm Module PSA Module TSP Module Module gom nhóm, align Kết quả MSA

Hình 4.11 Sơđồ các khối chức năng của module TSP.

Ngoà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 toà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.

Ngoà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.

Ngoà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. KT QU NHN 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.

Một phần của tài liệu Các kỹ thuật toán học cho bài toán so sánh đa trình tự (Trang 71 - 77)