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

khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học

74 228 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 74
Dung lượng 1,71 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 biệt đó là bài toán tìm sự tương đồng của các trình tự.Sequence Similarity Searching Tuy nhiên, hiện nay số lượng các trình tự trong các cơ sở dữ liệu sinh học lớn trên thế giới như

Trang 1

LỜI CẢM ƠN

Lời đầu tiên tôi xin chân thành cám ơn đến PGS TS Trần Văn Lăng đã tận tình giúp đỡ tôi trong suốt thời gian học tập vừ qu và h ớng dẫn tôi hoàn thành luận văn này

Tôi chân thành cám ơn thầy cô Khoa Công nghệ thông tin nơi tôi học tập

và nghiên cứu đã tạo điều kiện và hỗ trợ tôi trong suốt thời gian qua

Tôi cũng xin chân thành cám ơn ng ời thân, bạn bè đã giúp đỡ và động viên tôi trong suốt thời gian học tập cũng nh trong thời gian thực hiện luận văn Chân thành cám ơn !

Biên Hòa, ngày 25 tháng 05 năm 2013

Phạm Đông Phong

Trang 2

LỜI CAM ĐOAN

Tôi xin c m đo n đây là công trình nghiên cứu của bản thân Các số liệu, kết quả trình bày trong luận văn này là trung thực Những t liệu đ ợc sử dụng trong luận văn có nguồn gốc và trích dẫn rõ ràng đầy đủ

Biên Hòa, ngày 25 tháng 05 năm 2013

Học viên

Phạm Đông Phong

Trang 3

TÓM TẮT

Bắt cặp các trình tự (Sequence Alignment) sinh học DNA, Protein là một bài toán cơ bản và đòi hỏi nhiều thời gian xử lý trong lĩnh vữc sinh tin học (Bioinfomatics) Trong đó, Smith-Waterman là một thuật toán bắt cặp cục bộ nhằm giải quyết bài toán này Trên cơ sở bài toán bắt cặp này, có thể ứng dụng cho nhiều bài toán khác Đặc biệt đó là bài toán tìm sự tương đồng của các trình tự.(Sequence

Similarity Searching)

Tuy nhiên, hiện nay số lượng các trình tự trong các cơ sở dữ liệu sinh học lớn trên thế giới như NCBI, EMBL, DDBJ đang gia tăng nhanh chóng dẫn đến việc các thuật toán xử lý trên khối lượng lớn dữ liệu trở nên kém hiệu quả Luận văn này trình bày một phương pháp triển khai thuật toán Smith-Waterman trên môi trường phân tán MPI kết hợp với kiến trúc chia sẻ GPU-CPU nhằm tăng tốc thuật toán Môi trường phân tán MPI với các thuật toán xử lý song song phù hợp cho phân hoạch dữ liệu giúp cải thiện hiệu suất tìm kiếm và kiến trúc chia sẻ sử dụng CUDA

cho phép song song hóa bài toán bắt cặp trình tự

Từ khoá: Sinh tin học, bắt cặp trình tự, CUDA, GPU, MPI

Trang 4

MỤC LỤC

LỜI CẢM ƠN i

LỜI CAM ĐOAN ii

TÓM TẮT iii

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT vi

DANH MỤC HÌNH vii

DANH MỤC BẢNG ix

DANH MỤC BIỂU ĐỒ x

MỞ ĐẦU 1

CHƯƠNG 1 TỔNG QUAN 5

1.1 Giới thiệu vấn đề 5

1.2 Tổng quan về sinh tin học 7

1.2.1 Amino acid và tính chất 7

1.2.2 DNA và RNA 8

1.2.3 Protein 10

1.2.4 Ngân hàng dữ liệu và phần mềm trong sinh tin học 11

1.3 Bắt cặp trình tự 13

1.4 Song song hoá dữ liệu trên môi trường phân tán dùng MPI 14

1.5 Công nghệ CUDA giải quyết bài toán sắp hàng trình tự 15

CHƯƠNG 2 CÁC PHƯƠNG PHÁP SẮP HÀNG TRÌNH TỰ 19

2.1 Khái niệm alignment 19

2.1.1 Ký tự ―gap‖ 19

2.1.2 Hàm đánh giá 20

2.1.3 Phân loại bắt cặp trình tự 22

2.2 Bắt cặp hai trình tự (Pairwise Sequence Alignment-PSA) 22

2.3 Bắt cặp đa trình tự (Multiple Sequence Alignment-MSA) 23

2.4 Các thuật toán so sánh các trình tự sinh học 24

2.4.1 Thuât toán Needleman – Wunsch 24

2.4.2 Thuật toán Smith-Waterman 27

CHƯƠNG 3 MÔI TRƯỜNG LẬP TRÌNH CUDA VÀ MPI 30

3.1 Khái niệm và thuật ngữ 30

3.1.1 Kiến trúc máy tính Von Neumann 30

3.1.2 Phân loại theo Flynn 31

3.2 Môi trường lập trình CUDA 34

3.2.1 Giới thiệu bộ xử lý đồ hoạ - GPU 34

3.2.2 Môi trường lập trình CUDA 38

3.3 Môi trường lập trình truyền thông điệp với MPI 44

3.3.1 Lịch sử MPI 44

3.3.2 Đặc điểm của MPI 45

Trang 5

3.3.3 Cấu trúc chương trình MPI 45

3.3.4 Cách lập trình MPI 45

CHƯƠNG 4 GIẢI THUẬT VÀ PHƯƠNG PHÁP HIỆN THỰC HÓA GIẢI THUẬT TRÊN MÔI TRƯỜNG MPI KẾT HỢP CÔNG NGHỆ CUDA 47

4.1 Thuật toán Smith-Waterman 47

4.2 Xây dựng giải thuật song song và cài đặt trên môi trường CUDA 51

Xây dựng giải thuật 51

4.3 Song song hoá xử lý dữ liệu dựa trên mô hình truyền thông điệp MPI 54

4.3.1 Lý do chọn mô hình truyền thông điệp MPI 54

4.3.2 Mô tả bài toán 54

4.3.3 Mô tả thuật toán 54

CHƯƠNG 5 KẾT QUẢ THỰC NGHIỆM 58

5.1 So sánh thời gian chạy chương trình 59

5.2 So sánh độ chính xác 62

KẾT LUẬN 64 TÀI LIỆU THAM KHẢO

Trang 6

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT

Trang 7

DANH MỤC HÌNH

Hình 1.1 Cơ bản cấu trúc của một acid α-amino 8

Hình 1.2 Cấu tạo một nucleotide 9

Hình 1.3 Chuỗi xoắn kép DNA 9

Hình 1.4 Hình thức của protein 11

Hình 1.5 Biểu đồ năng lực tính toán CPU-GPU 17

Hình 2.1 Các loại GAP 20

Hình 2.2 Bắt cặp hai trình tự 22

Hình 3.1 Kiến trúc máy tính Von Neumann 30

Hình 3.2 Kiến trúc máy SISD 32

Hình 3.3 kiến trúc máy SIMD 32

Hình 3.4 Kiến trúc máy MISD 33

Hình 3.5 Kiến trúc máy MIMD 34

Hình 3.6 Kiến trúc GPU GF100 35

Hình 3.7 Cấu trúc của một SM 36

Hình 3.8 Kiến trúc bộ phần mềm CUDA 39

Hình 3.9 Các thao tác thu hồi và cấp phát bộ nhớ 40

Hình 3.10 Vùng nhớ dùng chung mang dữ liệu gần ALU hơn 40

Hình 3.11 Khối luồng 42

Hình 3.12 Mô hình bộ nhớ 43

Hình 4.1 Bước khởi tạo 49

Hình 4.2 Điền giá trị vào ma trận 50

Hình 4.3 Tìm ô ( i max, j max) có điểm cao nhất trong ma trận 50

Hình 4.4 Quay lui tìm kết quả 50

Hình 4.5 Phương pháp song song tính giá trị các phần tử ma trận đánh giá 53

Trang 8

Hình 4.6 Sơ đồ biểu diễn Server gửi chuỗi DNA về Client 55 Hình 4.7 Sơ đồ biểu diễn Server gửi vị trí các trình tự DNA trong ngân hàng về Client 56 Hình 4.8 Sơ đồ biểu diễn Client bắt cặp từng trình tự DNA trong ngân hàng với chuỗi truy vấn DNA muốn tìm 57 Hình 5.1 Kết quả chạy chương trình với file cơ sở dữ liệu db1b 59 Hình 5.2 File lưu trữ kết quả sắp hàng đa trình tự 59

Trang 9

DANH MỤC BẢNG

Bảng 1.1 Bảng các amino acid 8

Bảng 2.1 Ma trận M và σ 24

Bảng 2.2 Tạo vết từ ma trận Mnm và σij 26

Bảng 2.3 Các phần tử của ma trận Hij 27

Bảng 2.4 Viết lại ma trận Hij 28

Bảng 2.5 Tạo vết xuất phát từ Hnmax,mmax 29

Bảng 3.1 Ma trận phân loại theo Flynn 31

Bảng 5.1 Kết quả sắp hàng đa trình tự với nhóm 1 Mỗi nhóm tiến hành chạy thử nghiệm 10 lần và lấy thời gian trung bình 59

Bảng 5.2 Kết quả sắp hàng đa trình tự với nhóm 2 Mỗi nhóm tiến hành chạy thử nghiệm 10 lần và lấy thời gian trung bình 60

Bảng 5.3 Kết quả sắp hàng đa trình tự với nhóm 3 Mỗi nhóm tiến hành chạy thử nghiệm 10 lần và lấy thời gian trung bình 60

Bảng 5.4 Kết quả sắp hàng đa trình tự của chương trình CUDA và chương trình CPU với lần lượt 9 nhóm dữ liệu Thời gian chạy tính bằng giây 61

Trang 10

DANH MỤC BIỂU ĐỒ

Biểu đồ 5.1 Biểu đồ tương quan về thời gian chạy của 3 nhóm 60 Biểu đồ 5.2 Biểu đồ tương quan về thời gian chạy của 2 chương trình với 9 nhóm dữ liệu 61 Biểu đồ 5.3 Biểu đồ tương quan về độ chính xác của 2 chương trình với 2 nhóm dữ liệu 63

Trang 11

MỞ ĐẦU

Lý do thực hiện luận văn

Nhu cầu tính toán trong lĩnh vực khoa học, công nghệ ngày càng cao và trở thành một thách thức lớn Từ đó các giải pháp nhằm tăng tốc độ tính toán đã được

ra đời, từ năm 2001 đến năm 2003 tốc độ của Pentium 4 đă tăng gấp đôi từ 1.5GHz lên đến 3GHz Tuy nhiên hiệu năng của CPU (Central Processing Unit) không tăng tương xứng như mức gia tăng xung của CPU và việc gia tăng tốc độ xung của CPU nhanh chóng chạm phải ngưỡng tối đa mà cụ thể trong khoảng thời gian 2 năm từ năm 2003 đến năm 2005 tốc độ của CPU chỉ tăng từ 3GHz lên 3.8GHz Trong quá trình tăng tốc độ xung của CPU các nhà sản xuất đã gặp phải vấn đề về nhiệt độ của CPU sẽ quá cao và các giải pháp tản nhiệt khí đã đến mức tới hạn không thể đáp ứng được khả năng làm mát khi CPU hoạt động ở xung quá cao như vậy Vì vậy việc gia tăng xung hoạt động của CPU không sớm thì muộn cũng sẽ đi vào bế tắc Trước tình hình này, các nhà nghiên cứu vi xử lý đã chuyển hướng sang phát triển công nghệ đa lõi, nhiều lõi, với cơ chế xử lý song song trong các máy tính nhằm tăng hiệu năng và tiết kiệm năng lượng

Một trong các công nghệ xử lý song song ra đời đó là GPU (Graphics Processing Unit - bộ xử lý đồ họa) Ban đầu, việc chế tạo GPU chỉ với những mục đích công việc phù hợp với khả năng là tăng tốc độ xử lý đồ họa, cũng như trong ngành trò chơi là chủ yếu Nhưng đến thời điểm GPU NV30 của NVIDIA ra đời, GPU bắt đầu tham gia vào những công việc khác ngoài đồ họa như: Hỗ trợ tính toán dấu chấm động đơn, hỗ trợ tính toán lên cả ngàn lệnh Vì thế đã nảy sinh ra ý tưởng dùng GPU để xử lý, tính toán song song những chương trình không thuộc đồ họa Câu hỏi được đặt ra là làm thế nào để ứng dụng GPU vào việc xử lý tính toán song song Câu hỏi này nhanh chóng được giải quyết bằng công nghệ CUDA (Compute Unified Device Architecture) của NVIDIA ra đời năm 2007 Với CUDA, các lập trình viên nhanh chóng phát triển các ứng dụng song song trong rất nhiều lĩnh vực khác nhau như: Điện toán hóa học, sắp xếp, tìm kiếm, mô phỏng các mô hình vật lý, chuẩn đoán y khoa, thăm dò dầu khí, … CUDA là bộ công cụ phát triển

Trang 12

phần mềm trên GPU được xây dựng bằng ngôn ngữ lập trình C Với CUDA các lập trình viên dùng để điều khiển GPU để xử lý, tính toán song song các dữ liệu lớn Việc tăng tốc trong quá trình tính toán không những đòi hỏi những thiết bị GPU có khả năng xử lý tốc độ cao với dữ liệu khổng lồ mà cần phải có những giải thuật song song hữu hiệu

Xuất phát từ nhu cầu trên, luận văn tập trung xây dựng các module chương trình giải quyết vấn đề xếp hàng trình tự trên hệ thống phân tán và tìm sự tương đồng giữa các trình tự sinh học

Mục tiêu luận văn

Khảo sát thuật toán Smith - Waterman để sắp hàng trình tự trên hệ thống phân tán dùng MPI và kiến trúc chia sẻ với CUDA

– Luận văn tập trung nghiên cứu khả năng giải quyết bài toán sắp hàng trình tự cục bộ bằng cách xử lý song song hóa dữ liệu trình tự trên môi trường phân tán MPI và song song hoá xử lý của thuật toán Smith-Waterman và hiện thực trên kiến trúc chia sẻ đa nhân đồ hoạ GPU nhằm gia tăng hiệu năng tính toán

– Cung cấp thực nghiệm cho các nghiên cứu khác sâu hơn hoặc phát triển các ứng dụng phục vụ nhu cầu thực tiễn

Nội dung thực hiện

Để hoàn thành được mục tiêu đề ra cần luận văn cần nghiên cứu các nội dung như sau:

− Thu thập các tài liệu có liên quan đến vấn đề bắt cặp trình tự

− Khảo sát và cài đặt thuật toán Smith – Wateman với các môi trường khác nhau như MPI, CUDA để tìm kết quả bắt cặp cho sự tương đồng và không tương đồng của hai phần tử trong hai trình tự

− Tìm hiểu các giải thuật tính toán song song và các cách thiết kế mẫu trong tính toán song song xử lý song song hóa dữ liệu trên môi trường MPI và xây dựng giải thuật toán song song trên thiết bị đồ họa GPU

− Đánh giá kết quả theo yêu cầu của luận văn

Trang 13

− Sử dụng thuật toán Smith - Waterman để thực hiện trên một số trình tự cần

so sánh Thuật toán này bắt cặp cục bộ để tìm vùng tương đồng giữa hai trình

tự nucleotide hay protein, thuật toán tìm các đoạn hay các miền có độ tương đồng cao từ đó đánh giá mức độ tương đồng của hai trình tự

Dự kiến kết quả đạt được

− Về lý thuyết: Tài liệu về vấn đề khai thác kiến trúc phân tán và chia sẻ tìm

sự tương đồng của các trình tự sinh học

− Về sản phẩm: Module chương trình về sự tương đồng của các trình tự sinh học

Dự kiến tên công trình công bố trên tạp chí hoặc hội thảo khoa học:

Khai thác kiến trúc phân tán và chia sẻ để tìm sự tương đồng của các trình tự sinh học

Trang 14

truyền gói tin MPI Chương thứ tư trình bày giải thuật và phương pháp hiện thực hóa giải thuật trên môi trường MPI kết hợp công nghệ CUDA Chương thứ năm

trình bày kết quả thực hiện, đánh giá thực nghiệm và phần kết luận

Chương 1: Tổng quan

Trong chương này giới thiệu về sự cần thiết việc ứng dụng công nghệ thông tin vào sinh học Tổng quan về sinh tin học và vấn đề bắt cặp trình tự nhằm giải quyết bài toán tìm sự tương đồng giữa các trình tự sinh học Giới thiệu song song hóa dữ liệu trên môi trường MPI và công nghệ CUDA giải quyết bài toán sắp hàng trình tự

Chương 2: Các phương pháp sắp hàng trình tự

Trong chương này, luận văn đưa ra khái niệm alignment, vấn đề bắt cặp trình

tự để tìm sự tương đông giữa hai trình tự hoặc đa trình tự trong đó, luận văn cũng giới thiệu hai thuật toán cơ bản được áp dụng trong vấn đề bắt cặp như: Needleman – Wunsch, Smith – Waterman

Chương 3: Môi trường lập trình CUDA và MPI

Trong chương này, luận văn giới thiệu kiến trúc máy tính Von Neumann và phân loại theo Flynn Cũng như môi trường lập trình CUDA và môi trương truyền thông điệp MPI

Chương 4: giảu thuật và phương pháp thực hiện giải thuật trên môi trường MPI kết hôp công nghệ CUDA

Trong chương này, giới thiệu thuật toán Smith – Waterman giúp nhận ra những miền tương đồng giữa hai chuỗi tìm kiếm cho việc sắp hàng chuỗi cục bộ tối

ưu hơn Xây dựng các giải thuật song song và cài đặt trên môi trường CUDA vấn

đề song song hóa dữ liệu trên môi trường MPI

Chương 5: Kết quả thực nghiệm

Trong chương này, thực hiện so sánh thời gia chạy cũng như độ chính xác Cũng như nhận xét chương trình chạy trên CUDA vượt trội hơn chương trình CPU

ở các trường hợp các trình tự có độ dài chuỗi lớn và số trình tự nhiều

Trang 15

ra các loại thuốc chữa bệnh mới…

Các lĩnh vực lớn đang được sinh tin học giải quyết hiện nay:

 Genomic: nghiên cứu cấu trúc và chức năng của gen

 Proteinomics: phân tích một tỉ lệ lớn các protein của một sinh vật

 Pharmacogenomics: phát triển các loại thuốc mới nhắm đến một căn bệnh xác định

 Micro Array: nghiên cứu về DNA chip, protein chip

Mục tiêu hàng đầu của sinh tin học gắn liền với quá trình phân tích các thông tin sinh học Điều này được thể hiện qua các nghiên cứu về:

 Tìm kiếm các gen trên các trình tự DNA ở các sinh vật khác nhau

 Phát triển các phương pháp nhằm dự đoán cấu trúc RNA, cấu trúc và chức năng của các protein mới được phát hiện

 Tập hợp các trình tự có sự tương đồng cao để đưa ra mô hình protein

 So sánh các trình tự DNA tương đồng và thành lập cây phả hệ mô tả mối quan hệ tiến hóa

Bắt cặp các trình tự hay sắp hàng các trình tự sinh học nhằm xác định sự tương đồng giữa chúng là một bài toán lớn đòi hỏi nhiều tài nguyên tính toán và mất nhiều thời gian để xử lý, đặc biệt trong bối cảnh hiện nay khi mà các ngân hàng dữ liệu sinh học đã thu thập và lưu trữ được một số lượng trình tự rất lớn của nhiều chủng loài sinh vật Có hai loại bắt cặp trình tự: bắt cặp toàn cục và bắt cặp cục bộ Bắt

Trang 16

cặp toàn cục đòi hỏi sắp xếp và so sánh về trình tự một cách toàn bộ Trong loại này, trình tự đầu vào thường tương tự và có độ dài xấp xỉ bằng nhau Bắt cặp cục bộ tập trung vào tính tương đồng của các bộ phận cục bộ Các thuật toán liên kết cục

bộ thường cố gắng sắp hàng các trình tự để có được phần giống nhau dài nhất Liên kết cục bộ phù hợp với trình tự có độ dài khác nhau

Đối với bắt cặp toàn cục, thuật toán được phát triển nhất là Wunsch [7] Đây là một phương pháp sắp xếp dựa vào quy hoạch động, để tính điểm cho quá trình liên kết Mặt khác, các thuật toán BLAST [8] cho phép tìm kiếm trình tự con (subsequences) giống như trình tự truy vấn BLAST sử dụng phương pháp heuristic vì vậy tốc độ đặc biệt nhanh khi thực hiện trên các ngân hàng gen lớn Điều này đã làm BLAST trở thành công cụ phổ biến Mặc dù với tốc độ thấp hơn thuật toán BLAST, nhưng với một độ chính xác cao hơn, nên thuật toán Smith-Waterman [9] được xem là một trong những thuật toán phổ biến nhất của việc giải quyết các vấn đề về sắp hàng trình tự cục bộ Việc cài đặt thuật toán Smith-Waterman đòi hỏi một lượng lớn các tính toánnên không thể chấp nhận cho hệ thống máy tính thông thường

Needleman-Đã có nhiều giải pháp đưa ra để giải quyết bài toán, trong đó việc xử lý song song trên môi trường phân tán với kỹ thuật truyền thông điệp MPI hoặc sử dụng công nghệ CUDA (Compute Unified Device Architecture) trên GPU đa nhân là hướng tiếp cận được nhiều tác giả quan tâm Nhóm tác giả Fa Zhang, Xiang-Zhen Qiao, Zhi-Yong Liu trong [10] trình bày phương pháp song song hoá dữ liệu với kỹ thuật chia để trị, nhóm tác giả M.Noorian, H.Pooshfam, Z.Noorian, R.Abdullah trong [11] đề xuất một thuật toán lai dựa trên các hệ thống phân tán MPI và OpenMP triển khai trên cụm máy chủ SMP Hướng tiếp cận hiện nay là dựa trên kiến trúc chia sẻ đa nhân đồ hoạ GPU có khá nhiều công trình nghiên cứu, điển hình

là các công trình được nêu trong các tài liệu [12], [13], đây có thể xem là hướng tiếp cận có nhiều triển vọng do công nghệ đồ hoạ đa nhân đang phát triển mạnh mẽ Tuy nhiên việc tập trung xử lý trên môi trường chia sẻ bộ nhớ của một máy tính với công nghệ CUDA, OpenCL hoặc các công nghệ dựa trên đa nhân đồ hoạ khác chưa giải quyết trọn vẹn vấn đề với số lượng dữ liệu trình tự lớn mà chỉ nhằm tăng tốc xử

lý cho thuật toán quy hoạch động vốn đòi hỏi nhiều tài nguyên tính toán Một nhánh

Trang 17

nghiên cứu khác triển khai thuật toán Smith-Waterman trên nền tảng phần cứng được thiết kế riêng cho bài toán bắt cặp cục bộ như trong các bài báo [14], [15] Ở Việt Nam, cũng có một số tác giả nghiên cứu về vấn đề này như nhóm tác giả Nguyễn Thanh Thuý, Nguyễn Hữu Đức, Phạm Hồng Phong, Tạ Minh Ngọc, Dương Nhật Tân, Lê Đức Hùng trong bài báo [6] đề xuất giải pháp tăng tốc thuật toán Smith-Waterman trên môi trường chia sẻ cụm thiết bị đồ hoạ GPU, hay tác giả Trương Văn Hiệu trong luận văn thạc sĩ tại trường Đại học Đà Nẵng [2] năm 2011 trình bày một số thuật toán song song sử dụng công nghệ CUDA, tác giả Nguyễn Ngọc Điệp trong luận văn thạc sĩ tại Trường Đại học Lạc Hồng [1] năm 2012 trình bày phương pháp gia tăng hiệu năng tính toán cho bài toán sắp hàng đa trình tự dựa trên công nghệ CUDA

Luận văn đề xuất một giải pháp sử dụng kết hợp thuật toán song song trên môi trường phân tán truyền thông điệp MPI và kiến trúc chia sẻ xử lý đa nhân đồ hoạ GPU với công nghệ CUDA nhằm tăng khả năng tính toán để giải quyết bài toán sắp hàng trình tự cục bộ bằng thuật toán Smith-Waterman trên khối lượng dữ liệu trình tự lớn

1.2 Tổng quan về sinh tin học

Sinh tin học là một ngành khoa học mà trong đó có sự kết hợp giữa sinh học,

khoa học máy tính và công nghệ thông tin Sinh tin học sử dụng các thuật toán phân tích tối ưu xử lý dữ liệu sinh học thông qua các thiết bị phần cứng và hệ thống

mạng

1.2.1 Amino acid và tính chất

Amino acid là những chuỗi tạo thành protein Một amino acid là một phân tử

có chứa cả hai carboxyl và amin nhóm chức năng Một α-amino acid như trong hình 1.1 là một trong các nhóm amino (nhóm R) và chức năng carboxylate được gắn vào cùng một nguyên tử cacbon, được gọi là α-carbon Các α-amino acid khác nhau bởi các thành phần tạo nên chúng Nhóm R trong hình 1.1 xác định amino acid, R có thể là một trong 20 amino acid tiêu chuẩn như trong Bảng 1.1

Trang 18

Hình 1.1 Cơ bản cấu trúc của một acid α-amino [22]

Cách phân loại amino acid phổ biến là dựa vào gốc R và được chia làm 5 nhóm: nhóm I gồm 7 amino acid có R không phân cực, kỵ nước; nhóm II gồm 3 amino acid có gốc R chứa nhân thơm; nhóm III gồm 5 amino acid có R phân cực, không tích điện; nhóm IV gồm 3 amino acid có R tích điện dương; nhóm V gồm 2 amino acid có R tích điện âm

20 amino acid có liên quan đến sinh tổng hợp protein và được quy định bởi

mã di truyền, cùng với một số thuộc tính của chúng, được thể hiện trong Bảng 1.1

Bảng 1.1 Bảng các amino acid [3]

Amino Acid 3-letter 1-letter Amino Acid 3-letter 1-letter

1.2.2 DNA và RNA

DNA là chữ viết tắt của axit 2‘-deoxyribonucleic, được nhà sinh học người Thụy Điển Miescher tìm ra vào năm 1869 trong nhân tế bào bạch cầu (tế bào mủ) Đầu tiên ông gọi nó là nuclein có nghĩa là hạch nhân Sau đó, ông đã phát hiện ra nó

có bản chất axit và gọi nó là axit nucleic Sau hơn 80 năm cùng với sự tranh cãi của nhiều nhà khoa học, đến năm 1952, người ta mới công nhận DNA là vật chất di truyền DNA là một chuỗi các nucleotic sắp xếp kế tiếp nhau Nucleotic có 4 loại

Trang 19

và được ký hiệu là A (Adenine), G (Guanine), C (Cytosine), T (Thymine) Ta có bộ

ký hiệu cho các nucleotic như sau: Nuc={A, C, G, T}

DNA gồm 3 thành phần chính: bazơ nitơ dạng purine và pyrimidine (A,T,C,G), đường pentose (đường 5 carbon) và axit phosphoric (H3PO4) Ba thành phần này có tỷ lệ 1:1:1 và chúng liên kết với nhau tạo thành một nucleotide

Hình 1.2 Cấu tạo một nucleotide [1]

Cấu trúc của DNA được Watson-Crick khám phá ra Đó là chuỗi xoắn kép cong nhẹ nhàng, có cấu trúc không gian 3 chiều, gồm hai sợi song song, đối xứng

và bổ sung cho nhau (hình 1.3.) theo một qui luật nghiêm ngặt: A bắt cặp với T và

C bắt cặp với G nhờ các liên kết hydro Cấu trúc xoắn kép của Watson- Crick là chiếc chìa khóa để mở ra những kỹ thuật của sự sống

Hình 1.3 Chuỗi xoắn kép DNA [3]

Trang 20

RNA (Ribonucleic Acid) là 1 loại acid nucleic (như ADN), cấu tạo từ các nguyên tố C, H, O, N, P RNA là một đại phân tử, cấu tạo theo nguyên tắc đơn phân

mà các đơn phân là các Ribonucleotide (riboNu) RNA tương tự như DNA có 3 điểm khác nhau:

 Là chuỗi xoắn đơn

Trong tế bào có 3 loại RNA chính, tham gia vào quá trình dịch mã sang protein:

 mRNA là RNA thông tin Đây là các bản sao của các trình tự trên DNA, nhằm chuyển hóa thông tin mã hóa trên DNA đến bộ máy giải

mã protein tương ứng

 tRNA là các RNA vận chuyển, đóng vai trò vận chuyển các Amino acid dịch mã để tổng hợp ra protein từ mRNA tương ứng

của tế bào Ribosome là một thành phần trong bộ máy dịch mã của tế bào, được tạo thành bằng cách kết hợp rRNA với protein

Ngoài ra còn có RNA mạch đơn, kép là vật chất di truyền ở virus, nhiều phân

tử RNA rất nhỏ có chức năng điều hoà, RNA có chức năng như 1 enzim (ribozim) Mỗi loại RNA có cấu trúc, thời gian tồn tại trong tế bào khác nhau phù hợp với chức năng

1.2.3 Protein

Protein là hợp chất hữu cơ gồm 4 nguyên tố cơ bản C, H, O, N thường có

thêm S và đôi lúc có P Có hơn 20 loại axit amin khác nhau tạo nên các protein, mỗi axit amin có 3 thành phần: gốc cacbon (R), nhóm amin (-NH2) và nhóm cacboxil (-

COOH), chúng khác nhau bởi gốc R Protein được tạo thành từ các amino acid bố

trí trong một chuỗi tuyến tính và liên kết với nhau bằng các peptide xương sống giữa carboxyl và nhóm amin của amino acid liền kề (Hình 1.4)

Trang 21

Hình 1.4 Hình thức của protein [21]

Trong Hình 1.4, R1 là một amino acid và R2 là một amino acid khác R1 và R2 có thể là một trong hai mươi amino acid có sẵn Khi amino acid được nối với nhau, chúng tạo thành một liên kết peptide, các liên kết peptide liên kết hóa học các amino acid monome trong một chuỗi protein Mỗi protein có duy nhất chuỗi amino acid của nó, được gọi là cấu trúc chính Amino acid có thể được liên kết với nhau theo các tuần tự khác nhau để tạo thành một số lượng lớn các protein Tùy thuộc vào cách các acid amino được kết hợp, chức năng của các amino acid khác nhau

1.2.4 Ngân hàng dữ liệu và phần mềm trong sinh tin học

Hiện nay, trên thế giới đã có những ngân hàng dữ liệu sinh học nổi tiếng như:

 NCBI - Trung tâm Quốc gia về Thông tin Công nghệ Sinh học

(National Center for Biotechnology Information) của Mỹ Tính đến

tháng 2/2013 đã có 150.141.354.858 base và 162.886.727 trình tự

EMBL - Phòng thí nghiệm Sinh học phân tử (European Molecular

Biology Laboratory) của Châu Âu Ngân hàng EMBL chứa

247.335.689 trình tự bao gồm 429.512.389.024 nucleotide tính đến tháng 09/2012

DDBJ - Ngân hàng dữ liệu DNA, Nhật Bản (DNA Data Bank of

Japan) Tính đến 03/2013 có 163,017,305 entries với 150,760,062,903

nucleotits

Về phần mềm, trên thế giới có nhiều phần mềm giúp xử lý các trình tự sinh học DNA và protein như: phần mềm FastA, Blast, Cn3D, Phylip, PepTool, GeneTool, ClustalX, BioEdit, SeqVISTA, SAGA, Primer3, PC-Genes, Discovery Studio Gene, DNASIS, DNAMAN, VECTOR NTI, AnnHyb, DNA Club, Plasmid Processor, Oligos, v.v Những phần mềm này có một số chức năng:

Trang 22

 Chuyển mã trình tự DNA sang RNA

 Hiển thị cặp trình tự chính và trình tự bắt cặp

 Tìm vị trí của một enzyme giới hạn trong một trình tự

 Vẽ bản đồ plasmid, hỗ trợ thiết kế phân tử

 Tìm kiếm các đoạn mồi (primer)

 So sánh mức độ tương đồng (similarity) giữa các trình tự

 Vẽ cây biểu diễn mức độ tương đồng giữa các trình tự (biểu đồ dendogram)

 Tìm kiếm các trình tự, các đoạn lặp (motif), các enzyme trong cơ sở dữ liệu

Ở Việt Nam, lĩnh vực này cũng chỉ xuất hiện ở các viện nghiên cứu, trong một vài trường đại học lớn, và cũng chỉ dừng lại ở trong giới nghiên cứu về Công nghệ sinh học Hoạt động của khoa Công nghệ sinh học, trường đại học Khoa Học Tự Nhiên TP Hồ Chí Minh; Viện Công nghệ sinh học, Viện Khoa học và Công nghệ Việt Nam; Trường đại học Y Dược TP Hồ Chí Minh là những minh chứng

Phân viện Công nghệ thông tin tại TP Hồ Chí Minh, từ năm 2004 đã hợp tác với một số nhà nghiên cứu của Viện Công nghệ Sinh học; của NCBI/NLM/NIH và NIAID/NIH đã xây dựng phần mềm HiBio [4] phục vụ việc nghiên cứu Công nghệ Sinh học với các chức năng:

– Thiết kế mồi để hiển thị cặp mồi tốt nhất, các đoạn mồi xuôi, các đoạn mồi ngược, hoặc sắp xếp theo các tính chất

– Thiết kế bản đồ plasmid với các tính năng cần thiết ở các dạng khác nhau, trong đó có cả việc đề xuất những enzym cắt

– Có thể sử dụng để dự đoán cấu trúc protein bậc 2, xem cấu trúc bậc 3 của một protein nào đó

– Sử dụng để vẽ cây sinh loài theo hai dạng có gốc và không gốc

– Vấn đề tìm kiếm motif cũng được đặt ra trong HiBio

Ngoài phần mềm trên, Sở Khoa học và Công nghệ Tp Hồ Chí Minh cũng quản lý dự án về Xây dựng mô hình và công cụ tin học để xử lý thông tin về gene,

Trang 23

hỗ trợ nghiên cứu ứng dụng trong công nghệ sinh học ở Việt Nam Nhưng cũng mới dừng lại ở việc thể hiện các khái niệm cơ bản và cấu trúc của protein

1.3 Bắt cặp trình tự

Trong lĩnh vực nghiên cứu phân tích cấu trúc và chức năng của gen và protein, phân tích trình tự chuỗi DNA, protein đóng vai trò quan trọng Để đơn giản, trình tự DNA, protein sẽ được tuần tự hóa và nghiên cứu dưới dạng chuỗi các ký tự Thông thường khi một gen được phát hiện, một trong những yêu cầu quan trọng là làm thế nào xác định được chức năng của gen này, yêu cầu tương tự cũng được đặt ra khi phát hiện ra protein mới Một phương pháp tiếp cận phổ biến là so sánh, đánh giá sự tương đồng của chuỗi DNA, protein này với những chuỗi DNA, protein đã biết, từ

đó có thể đưa ra dự đoán về chức năng cũng như cấu trúc của những gen mới phát hiện Quá trình tiến hóa của loài người là một quá trình biến đổi đa dạng, từ một gen

tổ tiên dưới tác động của quá trình tiến hóa đã biến đổi tạo nên những khác biệt so với gen gốc ban đầu Do đó việc nhận định sự giống nhau của các đoạn gen, trình tự

là một vấn đề lớn của sinh tin học Vấn đề được đặt ra là làm thế nào để có được phép so sánh tốt cho các trình tự DNA, khi số lượng tế bào trong cơ thể khoảng 1014

và mỗi tế bào mang khoảng 3.109 ký tự trong đoạn DNA của chúng

Trong việc giải quyết bài toán sắp hàng trình tự, trước hết phải xem xét bài toán bắt cặp 2 trình tự (Pairwise Sequence Alignment – PSA) Bài toán này đã được giải quyết trọn vẹn bằng nhiều phương pháp khác nhau Đồng thời với việc giải quyết bài toán này, xuất hiện nhu cầu về việc so sánh nhiều trình tự, để so sánh nhiều đoạn gen hoặc tìm ra một phần tử đại diện cho một tập các gen nhằm đáp ứng nhu cầu ngày càng cao của việc tìm kiếm dự đoán cấu trúc của các gen, protein, khi kho dữ liệu sinh học được tập hợp ngày càng lớn

Sắp hàng trình tự là một thủ tục cực kỳ quan trọng trong tin sinh học, nó được xem là nền tảng cho tất cả các thủ tục khác Vấn đề đặt ra là tạo ra những sự sắp hàng giữa các nucleotide thông qua việc chèn các ký tự gap, làm cho khoảng cách giữa hai trình tự tức chi phí sửa chữa (là tổng chi phí cho các sự kiện chèn – xóa, thay thế các nucleotide) giữa hai trình tự là nhỏ nhất (hoặc lớn nhất)

Trang 24

Đầu vào là 2 trình tự X = (x1, x2, …xp) và Y = (y1, y2, …yq), sắp hàng trình tự X và Y là cách chèn các kí tự trống (gap) vào hai trình tự X và Y sao cho chúng có độ dài bằng nhau và khoảng cách (chi phí sửa chữa) giữa hai trình tự là nhỏ nhất (hoặc lớn nhất)

Các thuật toán quy hoạch động đầu tiên cho việc sắp hàng giữa các chuỗi ký

tự được trình bày bởi Levenshtein với độ phức tạp về thời gian và bộ nhớ là O(n2) Needleman và Wunsch [7] lần đầu tiên áp dụng thuật toán này vào lĩnh vực sinh tin học năm 1970 Waterman [9], tiến hành thực nghiệm trên một khối lượng lớn các trình tự với trọng số cho việc chèn gap với độ phức tạp thời gian là O(n3) nhưng cho kết quả chính xác cao hơn Lý do của việc tăng độ phức tạp về thời gian là do bổ sung thêm tính toán chi phí chèn – xóa gap trong các trường hợp

1.4 Song song hoá dữ liệu trên môi trường phân tán dùng MPI

Xử lý song song dựa trên hai kiến trúc cơ bản: Bộ nhớ phân tán và bộ nhớ dùng chung Máy tính song song theo kiến trúc bộ nhớ phân tán thực chất là một tập các máy tính tuần tự (gọi là các nút – nodes) cùng làm việc để giải quyết một vấn

đề Mỗi nút có khả năng truy cập nhanh vào bộ nhớ riêng của nó và truy cập vào bộ nhớ của nút khác thông qua mạng giao tiếp, thường là mạng giao tiếp có tốc độ cao

Dữ liệu được trao đổi giữa các nút là các gói tin được truyền trên mạng giao tiếp Máy tính song song bộ nhớ dùng chung, nhiều bộ xử lý dùng chung một không gian

bộ nhớ bằng một bộ bus bộ nhớ tốc độ cao Không gian bộ nhớ dùng chung cho phép các bộ xử lý trao đổi và chia sẻ việc truy cập dữ liệu một cách hiệu quả Số lượng bộ xử lý dùng trong mô hình bộ nhớ dùng chung là có giới hạn nhỏ Lý do là

số lượng dữ liệu được truyền tải qua bus bộ nhớ đến các bộ xử lý là có giới hạn Thế

hệ tiếp theo của máy tính song song hiện nay sử dụng kết hợp giữa kiến trúc bộ nhớ phân tán và bộ nhớ dùng chung Mỗi nút là một nhóm các bộ xử lý dùng chung bộ nhớ và các nút được kết nối bằng một mạng giao tiếp tốc độ cao

Trong mô hình phân tách dữ liệu hay song song hóa dữ liệu, dữ liệu được chia thành các phần có kích thước xấp xỉ nhau tương ứng với các bộ xử lý khác nhau Mỗi bộ xử lý sau đó làm việc trên phần dữ liệu tương ứng với nó, các bộ xử lý có thể cần phải trao đổi dữ liệu với nhau sau những khoảng thời gian nhất định

Trang 25

Mô hình song song hóa dữ liệu chỉ có một luồng điều khiển Một giải thuật song song dữ liệu bao gồm các phép xử lý tuần tự phù hợp với dữ liệu: Một phép xử

lý được bắt đầu chỉ khi phép xử lý trước nó đã kết thúc Mô hình đơn chương trình

đa dữ liệu (Single-Program-Multiple-Data (SPMD)) trong đó chương trình được cài đặt ở tất cả các bộ xử lý thỏa mãn mô hình song song hóa này

Chiến lược này phù hợp với các giải thuật sắp hàng trình tự, trong đó các bộ

xử lý có thể tính toán sắp hàng chuỗi truy vấn với một chuỗi trong tập dữ liệu trình

tự có kích thước lớn đã được phân hoạch, sự trao đổi dữ liệu giữa các tiến trình đang thực hiện song song hầu như không xảy ra

MPI được coi như là một chuẩn thực hiện của mô hình ―truyền gói tin‖ trong tính toán song song Quá trình tính toán song song bao gồm một số lượng tiến trình, mỗi tiến trình làm việc với một bộ dữ liệu cục bộ Mỗi tiến trình có các biến cục bộ,

và không có cơ chế nào để một tiến trình có thể truy cập trực tiếp vào bộ nhớ của một tiến trình khác Trao đổi dữ liệu giữa các tiến trình được thực hiện bằng cách truyền gói tin, là phương tiện duy nhất để thực hiện gửi và nhận dữ liệu giữa các tiến trình Lý do chính khiến mô hình này trở nên hữu dụng vì về bản chất mọi kiểu tính toán song song đều có thể thực hiện trên mô hình truyền gói tin Thêm vào đó,

mô hình này:

– Có thể thực hiện trên nhiều nền tảng khác nhau, từ kiến trúc nhiều bộ xử lý dùng chung bộ nhớ đến trạm làm việc thậm chí là một máy đơn bộ xử lý

– Cho phép quản lý dữ liệu và tiến trình chi tiết hơn so với ứng dụng song song theo mô hình bộ nhớ dùng chung Hơn nữa chương trình có thể tạo ra một hiệu năng xử dụng cao hơn

1.5 Công nghệ CUDA giải quyết bài toán sắp hàng trình tự

Bài toán sắp hàng trình tự có một lịch sử nghiên cứu và phát triển khá lâu, nhưng tới thời điểm hiện tại vẫn là một bài toán quan trọng cần phải tiếp tục tập trung nghiên cứu và phát triển để giải quyết các đòi hỏi ngày một cao của lĩnh vực sinh học Với khối lượng dữ liệu sinh học khổng lồ ngày một phình to đòi hỏi tiêu tốn rất nhiều tài nguyên máy tính Vì thế, cải thiện năng lực xử lý của phần cứng

Trang 26

máy tính là một nhiệm vụ cấp bách và cần thiết Để giải quyết khó khăn này, người

ta đã nghiên cứu tăng tốc độ tính toán bằng hai phương pháp hoặc kết hợp cả hai:

 Phương pháp 1: Cải tiến công nghệ, tăng tốc độ xử lý của máy tính Công việc này đòi hỏi nhiều thời gian, công sức và tiền của, nhưng tốc

độ cũng chỉ đạt được đến một giới hạn nào đó

chạy song song trên nhiều bộ xử lý

Việc gia tăng tốc độ tính toán theo phương pháp thứ hai được thực hiện dựa vào công nghệ tính toán song song, đó là việc sử dụng đồng thời nhiều tài nguyên tính toán để giải quyết bài toán Các tài nguyên tính toán có thể bao gồm một máy tính với nhiều bộ vi xử lý, một tập các máy tính kết nối mạng hay là một sự kết hợp của hai dạng trên Công nghệ tính toán song song cho phép giảm thời gian thực thi bài toán tùy thuộc cách phân chia và số bộ xử lý thực thi chương trình Nguyên tắc quan trọng nhất của tính toán song song chính là tính đồng thời hay xử lý nhiều tác

vụ cùng một lúc Lập trình song song tập trung vào việc phân chia bài toán tổng thể

ra thành các công việc con nhỏ hơn rồi định vị các công việc đó đến từng bộ xử lý

và đồng bộ các công việc để nhận được kết quả cuối cùng Hướng tiếp cận là phân tích và chia nhỏ bài toán cần thực hiện thành nhiều nhiệm vụ có thể được xử lý cùng một lúc bằng cách tận dụng khả năng xử lý tác vụ trên nhiều lõi của card đồ họa Nvidia với công nghệ CUDA

Trong vài năm gần đây, năng lực tính toán của các bộ xử lý đồ họa tăng lên đáng kể so với CPU Tính đến tháng 6/2008, dòng GPU GT200 của nVidia đã đạt ngưỡng 933 Gflops, gấp hơn 10 lần so với bộ xử lý 2 lõi Intel Xeon 3.2 GHz tại cùng thời điểm

Hình 1.5 thể hiện sự tăng tốc về năng lực tính toán của các GPU nVidia so với CPU của Intel

Trang 27

Hình 1.5 Biểu đồ năng lực tính toán CPU-GPU [17]

Tuy vậy, sự vượt trội về hiệu năng này không đồng nghĩa với sự vượt trội về công nghệ GPU và CPU được phát triển theo 2 hướng khác biệt: trong khi công nghệ CPU cố gắng tăng tốc cho một nhiệm vụ đơn lẻ thì công nghệ GPU lại tìm cách tăng số lượng nhiệm vụ có thể thực hiện song hành Vì vậy, khi mà số lượng lõi tính toán trong CPU đạt đến con số 8 lõi thì số lượng lõi xử lý của GPU đã đạt đến 240 và hứa hẹn ngày càng tiếp tục được tăng lên Để trả giá cho năng lực tính toán, GPU hy sinh tính linh động của các lõi xử lý Hiện tại các lõi của GPU tại một thời điểm chỉ thực hiện được một nhiệm vụ duy nhất, do vậy chỉ thích hợp với những bài toán song song dữ liệu trong đó cùng một đoạn mã chương trình được thực thi song song cho nhiều bộ dữ liệu khác nhau

Bên cạnh việc phát triển các bộ xử lý đồ họa có năng lực tính toán lớn, các hãng sản xuất cũng quan tâm tới môi trường phát triển ứng dụng cho các bộ xử lý

đồ họa này CUDA là môi trường phát triển ứng dụng trên các GPU của nVidia, bao gồm ngôn ngữ lập trình song song, dữ liệu cùng với các công cụ biên dịch, gỡ rối và giám sát thực thi cho các ứng dụng hoạt động dựa vào công nghệ này Một số đặc điểm chính của công nghệ CUDA:

 CUDA dựa trên nền tảng ngôn ngữ C, do đó nó quen thuộc với đa số nhà phát triển ứng dụng

 Mã CUDA chia làm 2 phần: phần thực thi trên CPU và phần thực thi trên GPU Phần thực thi trên GPU, còn gọi là kernel, khi được gọi có

Trang 28

thể thực thi song song trên hàng ngàn tiến trình riêng biệt Mỗi tiến trình có một định danh riêng để xác định nhiệm vụ của tiến trình đó

 Để tránh sự phụ thuộc vào phần cứng, CUDA cho phép người lập trình tùy ý xác định số lượng tiến trình song song, tuy nhiên các tiến trình này cần được phân theo từng block với số lượng tối đa là 512 Cách chia block giúp người lập trình không cần quan tâm tới năng lực phần cứng, đồng thời giúp việc thực thi được hiệu quả ngay cả trên nhiều loại GPU khác nhau

Bộ nhớ được tổ chức phân cấp theo các lớp sau:

 Bộ nhớ chính: vùng bộ nhớ dành cho phần mã CPU Chỉ có phần mã này có thể truy cập và chỉnh sửa thông tin trên đó

 Bộ nhớ toàn cục GPU: vùng bộ nhớ mà tất cả các tiến trình của GPU có thể truy cập Có thể chuyển dữ liệu từ bộ nhớ chính sang bộ nhớ này thông qua một số hàm thư viện của CUDA Bộ nhớ này thông thường được dùng để lưu trữ các dữ liệu đầu vào và đầu ra cho các tiến trình song song trên GPU

 Bộ nhớ chia sẻ: vùng bộ nhớ mà chỉ các tiến trình trong cùng một block mới có thể truy cập Bộ nhớ chia sẻ được tích hợp ngay trên chip xử lý nên tốc độ truy cập dữ liệu cao hơn rất nhiều so với bộ nhớ toàn cục

Bộ nhớ này được dùng để lưu trữ các dữ liệu chia sẻ tạm thời nhằm tăng tốc quá trình sử dụng bộ nhớ

 Bộ nhớ cục bộ GPU: vùng bộ nhớ được cấp phát cho các biến cục bộ của từng tiến trình GPU và không thể truy cập được từ các tiến trình khác

Với khả năng song song hóa dữ liệu với cực nhiều tiến trình như vậy, công nghệ CUDA là giải pháp thích hợp nâng cao năng lực tính toán cho bài toán sắp hàng trình tự, trong đó mỗi tiến trình có thể đảm nhận việc sắp hàng 2 trình tự một trong toàn bộ chuỗi dữ liệu cần thực hiện

Trang 29

CHƯƠNG 2 CÁC PHƯƠNG PHÁP SẮP HÀNG TRÌNH TỰ 2.1 Khái niệm alignment

Sắp hàng hay bắt cặp trình tự là quá trình nghiên cứu sự giống nhau giữa các chuỗi trình tự, đo lường sự giống nhau giữa các chuỗi trình tự Nó là sự so sánh giữa hai hay nhiều trình tự dựa trên việc so sánh một chuỗi các thành phần của trình

tự để tìm ra điểm tương đồng, giống nhau giữa các trình tự Các trình tự là các chuỗi DNA, RNA hoặc các trình tự amino acid Sắp hàng trình tự giúp cho quá trình dự báo sự giống nhau về chức năng của các trình tự, dự báo cấu trúc bậc 3 của DNA, protein Trong việc tìm hiểu một gene mới cho phép xác định những đặc điểm để phân biệt gene đồng thời đưa ra những giả thuyết về chức năng của gene Chức năng của gene thường dựa vào những giải thuật đánh giá sự giống nhau, tương đồng giữa các trình tự

Mục đích của vấn đề bắt cặp trình tự, hay là sắp xếp thẳng hàng trình tự (Sequence Alignment) nhằm đạt đến sự giống nhau đến mức tối đa của các trình tự Việc bắt cặp được thực hiện bằng cách thêm các ―gap‖ vào các vị trí có thể sao cho các cột giống nhau hoặc tương tự nhau

2.1.1 Ký tự “gap”

Trong quá trình tiến hóa, các trình tự có thể thêm hoặc bớt một số phần tử trong trình tự, các sinh vật có họ hàng gần nhau có thể khác nhau ở phần thêm vào giữa các trình tự Vì vậy khi so sánh trong mô hình toán học cho phép có phần trống, được mô tả bằng gạch nối ngang (gap) để có thể tìm được các phần trình tự giống nhau nhất Tuy nhiên, khả năng thêm hay bớt trong các trình tự là quá trình tiến hóa lâu dài, vì vậy khi đánh giá các sinh vật nào gần nhau thì cũng có ít phần trống hơn Do đó trong mô hình toán học có đưa thêm vào điểm phạt cho phần trống gap sao cho đáp ứng giống bài toán thực tế Các loài gần nhau sẽ có trình tự giống

Trang 30

nhau các đoạn liên tục và dài cho nên các mô hình toán học còn thêm điểm phạt cho mỗi một đoạn trống

Bên cạnh đó, trong quá trình tiến hóa cũng có sự đột biến hoặc mất đi tại một

số phần tử trong trình tự Do vậy ký tự ―gap‖ được chia thành 2 loại là deletion gap

và insertion gap tương ứng với quá trình thêm vào hoặc mất đi các phần tử di truyền

Ví dụ, cho hai trình tự như sau

match

mismatch insertion

deletion

Trang 31

 Chẳng hạn, nếu

– Giống nhau ở cùng vi trí: giá trị là +2

– Không giống nhau: giá trị là -1

– Gap: giá trị là -2

 Giá trị càng cao thì sự giống nhau càng nhiều

Định nghĩa: Mức độ tương đồng (điểm đánh giá) của 2 trình tự bắt cặp S1‘

và S2‘ là đại lượng: na x match + ni x mismatch + ng x gap

Trang 32

2.1.3 Phân loại bắt cặp trình tự

Việc phân loại bắt cặp trình tự được chia thành hai loại nhằm tìm sự tương đồng giữa các trình tự tùy thuộc vào phạm vi áp dụng là trên toàn bộ trình tự hoặc trên một số phần tử của các trình tự cần so sánh

– Bắt cặp toàn cục (Global Alignment) là phép sắp hàng được áp dụng trên toàn bộ trình tự để tìm sự tương đồng giữa các trình tự Thuật toán được sử dụng trong vấn đề bắt cặp toàn cục là giải thuật Needleman – Wunsch Thuật toán có những đặc điểm sau:

o Tìm so sánh đối xứng toàn cục tốt nhất giữa hai trình tự bất kỳ

Số phần tử so khớp giữa hai trình tự lớn nhất và cho phép chèn

ký tự trống (gap)

o Tất cả các phần tử của hai trình tự sẽ được sử dụng để tạo ma trận hai chiều mọi khả năng so sánh đối xứng đều có thể biểu diễn thông qua ma trận này

– Bắt cặp cục bộ (Local Alignment) là phép toán sắp hàng được áp dụng trên một số phần tử của các trình tự cần so sánh Nó có ý nghĩa sinh học hơn bắt cặp toàn cục vì thông thương không phải tất cả các phần tử trong trình tự tham gia vào việc xác định đặc tính sinh học của trình tự Thuật toán được sử dụng trong vấn đề bắt cặp cục bộ thương được sử dụng hiện nay là Smith - Waterman

2.2 Bắt cặp hai trình tự (Pairwise Sequence Alignment-PSA)

Cho 2 trình tự sinh học S1, S2 Hãy tìm 2 trình tự S1‘, S2‘ bằng cách thêm các

Hình 2.2 Bắt cặp hai trình tự [2]

Trang 33

2.3 Bắt cặp đa trình tự (Multiple Sequence Alignment-MSA)

Cho k trình tự sinh học S1, S2, …, Sk Hãy tìm k trình tự S1‘, S2‘,…, Sk‘ bằng cách thêm các ký tự ‗-‘ sao cho:

– di truyền lại (giữ lại)

Ví dụ: Với đoạn trình tự ―ACTCGATT‖

– Mất T,C ở vị trí 3, 4: ―ACGATT‖

– Đột biết vị trí 2 (thay C bằng G), vị trí 3 (thay G bằng C), vị trí 6 (thay

T bằng C): ―AGCATC‖

– Thêm TA vào vị trí 4: ―AGCTAATC‖

– Nhƣ vậy, từ ―ACTCGATT‖ sẽ tiến hóa ―AC GATT‖, ―AG CATC‖,

 Khi đó, ký tự ―gap‖ vừa:

– deletion gap: mất đi

– insertion gap: thêm vào

Trang 34

2.4 Các thuật toán so sánh các trình tự sinh học

2.4.1 Thuât toán Needleman – Wunsch

 Cho 2 trình tự

– U = ―U1U2…Un‖ – V = ―V1V2…Vm‖

Ma trận tương đồng σ của 2 trình tự được cho dựa trên giá trị match và

 Với d = gap

Ví dụ, cho hai trình tự U và V như sau:

 Dòng thứ nhất và cột thứ nhất của ma trận được lấy giá trị không

 Ma trận đánh giá được tính như sau:

1},21,1{}

,2,

{

1},20,1{}

,2,

{

0},22,1{}

,2,

{

2},21,2{}

,2,

{

1},2,1{}

,2,

{

05 14

15 04 15

04 13

14 03 14

03 12

13 02 13

02 11

12 01 12

01 10

11 00 11

M M

Max

M

Max M

M M

Max

M

Max M

M M

Max

M

Max M

M M

Max

M

Max M

M M

,2,

{

1}1,21,10}

,2,

{

1}0,20,12}

,2,

{

0}2,22,11{}

,2,

{

2}1,20,20}

,2,

{

15 24

25 14 25

14 23

24 13 24

13 22

23 12 23

12 21

22 11 22

11 20

21 10 21

M M

Max

M

Max M

M M

Max

M

Max M

M M

Max

M

Max M

M M

Max

M

Max M

M M

Trang 35

,2,

{

3}1,21,21}

,2,

{

1}1,21,10}

,2,

{

1}0,20,12}

,2,

{

0}2,20,10}

,2,

{

25 34

35 24 35

24 33

34 23 34

23 32

33 22 33

22 31

32 21 32

21 30

31 20 31

M M

Max

M

Max M

M M

Max

M

Max M

M M

Max

M

Max M

M M

Max

M

Max M

M M

,2,

{

1}3,20,11{}

,2,

{

0}1,20,11}

,2,

{

0}1,22,10}

,2,

{

2}0,20,20}

,2,

{

45 44

45 34 45

34 43

44 33 44

33 42

43 32 43

32 41

42 31 42

31 40

41 30 41

M M

Max

M

Max M

M M

Max

M

Max M

M M

Max

M

Max M

M M

Max

M

Max M

M M

,2,

{

0}1,22,10}

,2,

{

2}0,21,20}

,2,

{

1}0,20,12}

,2,

{

0}2,20,10}

,2,

{

45 54

55 44 55

44 53

54 43 54

43 52

53 42 53

42 51

52 41 52

41 50

51 40 51

M M

Max

M

Max M

M M

Max

M

Max M

M M

Max

M

Max M

M M

Max

M

Max M

M M

,2,

{

4}0,20,22}

,2,

{

0}2,21,11}

,2,

{

1}1,21,10}

,2,

{

1}0,20,10}

,2,

{

55 64

65 54 65

54 63

64 53 64

53 62

63 52 63

52 61

62 51 62

51 60

61 50 61

M M

Max

M

Max M

M M

Max

M

Max M

M M

Max

M

Max M

M M

Max

M

Max M

M M

Trang 36

 (i,j) →(i-1,j): đi lên

U i và “-” đƣợc ghi vào (deletion gap đƣợc sinh ra)

 (i,j) →(i,j-1): đi lui

“-” và Vj đƣợc ghi vào (insertion gap đƣợc sinh ra)

σ

Trang 37

2.4.2 Thuật toán Smith-Waterman

Thuật toán Smith-Waterman là một thuật toán quy hoạch động dùng để tìm kiếm cơ sở dữ liệu phát triển bởi TF Smith và MS Waterman vào năm 1981 và dựa trên một mô hình thích hợp trước đó có tên Needleman và Wunsch [7] Thuật toán Smith-Waterman là thuật toán sắp hàng cặp chuỗi cục bộ dựa trên quy hoạch động

để tìm vùng tương đồng giữa 2 trình tự nucleotide hoặc protein Thay vì tìm trong toàn bộ trình tự, thuật toán tìm các đoạn hay các miền có mức độ tương đồng cao từ

đó đánh giá mực độ tương đồng của 2 trình tự

• Đặt giá trị đánh giá

• σij = +2 nếu Ui và Vj giống nhau

• σij = -1 nếu Ui và Vj khác nhau

• Hi0 = H0j = 0, với mọi i, j

• Hij = Max {0, Hi-1,j-1 + σij, Hi,j-1 + d, Hi-1,j + d}

• Ví dụ, với U = ―ACA‖, V = ―AGCA‖, với d = -1 ta có các phần tử của ma trận H như sau:

Ngày đăng: 27/11/2014, 14:35

HÌNH ẢNH LIÊN QUAN

Bảng 1.1.  Bảng các   amino acid [3] - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Bảng 1.1. Bảng các amino acid [3] (Trang 18)
Hình 1.1. Cơ bản cấu trúc của một acid α-amino [22] - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Hình 1.1. Cơ bản cấu trúc của một acid α-amino [22] (Trang 18)
Hình 1.3. Chuỗi xoắn kép DNA [3]. - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Hình 1.3. Chuỗi xoắn kép DNA [3] (Trang 19)
Hình 1.4. Hình thức của protein [21] - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Hình 1.4. Hình thức của protein [21] (Trang 21)
Hình 1.5. Biểu đồ năng lực tính toán CPU-GPU [17] - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Hình 1.5. Biểu đồ năng lực tính toán CPU-GPU [17] (Trang 27)
Hình 2.1. Các loại GAP - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Hình 2.1. Các loại GAP (Trang 30)
Bảng 2.1. Ma trận M và σ - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Bảng 2.1. Ma trận M và σ (Trang 35)
Bảng 2.2. Tạo vết từ ma trận M nm  và σ ij - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Bảng 2.2. Tạo vết từ ma trận M nm và σ ij (Trang 36)
Bảng 2.4. Viết lại ma trận H ij - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Bảng 2.4. Viết lại ma trận H ij (Trang 38)
Bảng 2.5. Tạo vết xuất phát từ H nmax,mmax - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Bảng 2.5. Tạo vết xuất phát từ H nmax,mmax (Trang 39)
Hình 3.1. Kiến trúc máy tính Von Neumann [18] - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Hình 3.1. Kiến trúc máy tính Von Neumann [18] (Trang 40)
Hình 3.2. Kiến trúc máy SISD - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Hình 3.2. Kiến trúc máy SISD (Trang 42)
Hình 3.3. kiến trúc máy SIMD - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Hình 3.3. kiến trúc máy SIMD (Trang 42)
Hình 3.4. Kiến trúc máy MISD - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Hình 3.4. Kiến trúc máy MISD (Trang 43)
Hình 3.5.  Kiến trúc máy MIMD - khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học
Hình 3.5. Kiến trúc máy MIMD (Trang 44)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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