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

Accelerating the BWA MEM algorithm on a hardware platform

88 8 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

Tiêu đề Tăng tốc giải thuật BWA-MEM trên nền tảng phần cứng
Tác giả Lưu Hữu Quyết
Người hướng dẫn TS. Phạm Quốc Cường
Trường học Đại Học Bách Khoa - ĐHQG TP. Hồ Chí Minh
Chuyên ngành Khoa Học Máy Tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2018
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 88
Dung lượng 1,79 MB

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

Nội dung

Trong báo cáo này, bằng cách tìm hiểu về giảithuật BWA-MEM, ngôn ngữ CUDA Compute Unified Device Architecture và kiến trúc của NVIDIA 940M, chúng tôi đề xuất phương án cải tiến hiệnthực

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

LƯU HỮU QUYẾT

TĂNG TỐC GIẢI THUẬT BWA-MEM TRÊN NỀN TẢNG

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

LƯU HỮU QUYẾT

TĂNG TỐC GIẢI THUẬT BWA-MEM TRÊN NỀN TẢNG

Trang 3

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG - HCM

Chữ kýCán bộ hướng dẫn khoa học : TS Phạm Quốc Cường Cán bộ chấm nhận xét 1 : TS Nguyễn Trần Hữu Nguyên Cán bộ chấm nhận xét 2 : PGS TS Phan Công Vinh

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp.HCM ngày 18 tháng 7 năm 2018

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, họchàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)

1 TS Lê Thành Sách

2 TS Lê Trọng Nhân

3 TS Nguyễn Trần Hữu Nguyên

4 PGS TS Phan Công Vinh

Trang 4

ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: Lưu Hữu Quyết MSHV: 1570225

Ngày, tháng, năm sinh: 15/10/1991 Nơi sinh: Bình Định

Ngành: Khoa học máy tính Mã số: 60.48.01

I TÊN ĐỀ TÀI: Tăng tốc giải thuật BWA-MEM trên nền tảng phần cứng.

II NHIỆM VỤ VÀ NỘI DUNG: Hiện thực tăng tốc giải thuật

BWA-MEM trên nền tảng phần cứng

III NGÀY GIAO NHIỆM VỤ: 10-07-2017.

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 18-7-2018.

V CÁN BỘ HƯỚNG DẪN: TS Phạm Quốc Cường.

Tp HCM, ngày tháng năm 20

(Họ tên và chữ ký) (Họ tên và chữ ký)

TS Phạm Quốc Cường

Trang 5

LỜI CẢM ƠN

Trong suốt thời gian học tập và nghiên cứu tại trường trong khóa học thạc

sĩ vừa qua, bản thân tôi nhận được nhiều tri thức, khoa học từ những ngườiThầy, Cô của Trường Đại học Bách Khoa Tp.HCM, đặc biệt là các Thầy, Côcủa Khoa Khoa học và Kĩ thuật máy tính Khoa Khoa Học và Kĩ Thuật MáyTính đã tạo mọi điều kiện thuận lợi cho Tôi trong quá trình tham gia thựcnghiệm, làm việc và tạo môi trường nghiên cứu chuyên nghiệp tại phòng Lab201C5 Cùng với sự nỗ lực của bản thân, Tôi đã hoàn thành luận văn thạc sĩcủa mình

Từ những kết quả đạt được này, tôi xin tỏ lòng biết ơn sâu sắc tới thầy TS.Phạm Quốc Cường đã hướng dẫn tôi trong suốt quá trình thực hiện đề tài.Cảm ơn em Phạm Duy Vương đã giúp đỡ tôi trong việc tìm dữ liệu cũng nhưcách lập trình hiệu quả trong quá trình làm đề tài

Tôi xin chân thành cảm ơn gia đình và đồng nghiệp của tôi Họ là nhữngngười đồng hành thực sự của tôi trong suốt thời gian thực hiện đề tài

Tp.HCM, tháng 06 năm 2018

Lưu Hữu Quyết

Trang 6

TÓM TẮT LUẬN VĂN THẠC SĨ

Next-Generation Sequencing (NGS) là một công nghệ đang trở nên phổ biếntrong việc giải mã các biến thể của gen Sự sắp hàng của các chuỗi thô trênmột bộ gen tham khảo là một trong những công đoạn quan trọng của phântích dữ liệu NGS

BWA-MEM (Burrows-Wheeler Aligner - Maximal Exact Match) là mộttrong những giải thuật so trùng và sắp hàng đạt hiệu suất cao và được ứngdụng rộng rãi trong lĩnh vực Sinh-Tin học (Bio-informatic) Trong những nămgần đây, bằng việc ứng dụng xử lý song song trên nền tảng GPU (GraphicsProcessing Unit), nhiều ứng dụng khoa học đã được xử lí tăng tốc một cáchđáng kể mang lại hiệu suất cao Trong báo cáo này, bằng cách tìm hiểu về giảithuật BWA-MEM, ngôn ngữ CUDA (Compute Unified Device Architecture)

và kiến trúc của NVIDIA 940M, chúng tôi đề xuất phương án cải tiến hiệnthực giải thuật BWA-MEM nhằm tăng tốc giải thuật và giảm thời gian thựcthi của giải thuật nhưng vẫn đảm bảo kết quả chính xác như hiện thực gốc.Cuối cùng, mã nguồn BWA-MEM mới sẽ được đánh giá và so sánh với hyvọng đạt được tốc độ nhanh hơn mã nguồn nguồn gốc

Trang 7

Next Generation Sequencing (NGS) techniques generated amount of data,which is increasing at an explosive rate Many researchers and clinicians wereattracted to contribute into this area There are many tasks in bioinformat-ics, which sequence alignment is an important task The sequence alignment

is a matching between two sequences, which the one is read sequence andthe other is reference sequence Read sequence is as a query sequence to

a sequence database (reference sequence) The string matching in matics is not quite the same with string matching in computer science be-cause of there are many possible gaped alignments in two short alignment.BWA-MEM is the latest of BWA, which is a software package for mappinglow-divergent sequences against a large reference genome, such as the humangenome BWA-MEM is generally recommended for high-quality queries as

bioinfor-it is faster and more accurate I wanted to study whether a GPU could beused to create a faster BWA-MEM, because a GPU is a great tool to speed upalgorithms through massive parallelism

Trang 8

LỜI CAM ĐOAN

Tôi xin cam đoan rằng, công trình nghiên cứu này là của riêng tôi và được sựhướng dẫn khoa học của TS Phạm Quốc Cường

Những số liệu, bảng biểu, hình ảnh hoặc những quan sát, đánh giá, nhậnxét của các tác giả khác đều được trích dẫn nguồn trong mục "TÀI LIỆUTHAM KHẢO"

Toàn bộ nội dung tìm hiểu, nghiên cứu và các kết quả thực nghiệm củacông trình đạt được hoàn toàn trung thực, tuyệt nhiên không gian lận hoặcphóng đại

Nếu có bất kỳ sự gian lận nào, tôi xin hoàn toàn chịu trách nhiệm về côngtrình nghiên cứu này

Tp.HCM, tháng 06 năm 2018

Lưu Hữu Quyết

Trang 9

Mục lục

LỜI CẢM ƠN i

TÓM TẮT LUẬN VĂN THẠC SĨ ii

ABSTRACT iii

LỜI CAM ĐOAN iv

DANH SÁCH CÁC TỪ VIẾT TẮT viii

DANH SÁCH CÁC HÌNH ẢNH ix

DANH SÁCH CÁC BẢNG BIỂU xi

1 GIỚI THIỆU ĐỀ TÀI 1 1.1 Tổng quan vấn đề 1

1.2 Động lực nghiên cứu 2

1.3 Đóng góp của đề tài 2

1.4 Cấu trúc của luận văn 3

2 KIẾN THỨC NỀN TẢNG 4 2.1 Kiến Thức Nền Tảng Được Sử Dụng Trong BWA-MEM 4

2.1.1 Burrows-Wheeler Transform (BWT) 4

2.1.2 Chuyển đổi về chuỗi gốc ban đầu: BWT-reversing 6

2.1.3 FM-Index (Full-text index in Minute space) 8

2.1.4 Smith-Waterman (SW) 12

2.2 GPU & CUDA 17

2.2.1 Graphics Processing Unit - GPU: 17

2.2.2 Compute Unified Device Architecture - CUDA: 18

3 BURROWS-WHEELER ALIGNER (BWA-MEM) 21 3.1 Cấu Trúc Chương Trình BWA-MEM 22

3.1.1 SMEM Generation 23

Trang 10

3.1.2 Seed Extension 25

3.1.3 Output Generation 29

3.2 Quá trình thực thi chương trình BWA-MEM 29

3.2.1 Dữ liệu đầu vào của BWA-MEM 29

3.2.2 Dòng chảy chương trình của giải thuật BWA-MEM trên CPU 31

4 CÁC CÔNG TRÌNH LIÊN QUAN 33 4.1 Tăng tốc với FPGA 33

4.2 Tăng Tốc với GPU 38

4.3 Tăng tốc với tính toán song song (Parallel Computing) 41

4.4 Thiết bị thử nghiệm 42

4.5 Kết quả 43

5 THIẾT KẾ HỆ THỐNG 44 5.1 Hệ thống tổng quan 44

5.2 Cấu trúc dữ liệu nhiều lớp 46

6 HIỆN THỰC HỆ THỐNG 49 6.1 Hiện thực Smith-Waterman kernel trên GPU 49

7 KẾT QUẢ THỰC NGHIỆM 54 7.1 Môi trường thực nghiệm 54

7.1.1 NVIDIA GeForce 940M 54

7.1.2 Intel Core i3-5010U CPU @ 2.10GHz 55

7.1.3 Dữ liệu thực nghiệm 56

7.2 Cách thức thực nghiệm 56

7.2.1 Chọn dữ liệu đầu vào cho BWA-MEM với Smith-Waterman Kernel 56

7.2.2 Cách đánh giá kết quả thực nghiệm 57

7.3 So sánh thời gian thực thi BWA-MEM giữa CPU thuần và CPU kết hợp GPU 60

7.4 So sánh thời gian thực thi Smith-Waterman kernel giữa CPU và GPU 61

Trang 11

7.5 Đánh giá kết quả 61

7.5.1 Toàn bộ chương trình BWA-MEM 61

7.5.2 Smith-Waterman kernel 62

8 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 64 8.1 Kết luận 64

8.2 Hướng phát triển 64

TÀI LIỆU THAM KHẢO 65

LÝ LỊCH TRÍCH NGANG 69

Trang 12

DANH SÁCH CÁC TỪ VIẾT TẮT

GPU Graphics Processing Unit

CUDA Compute Unified Device Architecture

FPGA Field Programmable Gate Array

GPGPU General-Purpose Graphics Processing Units

BWA-MEM Burrows-Wheeler Aligner - Maximal Exact Match BWT Burrows-Wheeler Transform

FM-index Full-text Minute-space

SW Smith-Waterman

MEM Maximal Exact Match

SMEM Supermaximal Exact Match

LF-mapping Last-to-First column mapping

DRAM Dynamic Random-Access Memory

DMA Direct Memory Access

API Application Programming Interface

MP Multiprocessor

DRAM Dynamic Random Access Memory

BRAM Block Random Access Memory

PE Processing Element

FIFO First In First Out

bp base-pair

Trang 13

Danh sách hình vẽ

2.1 Tổng quan xây dựng chuỗi BWT [11] 5

2.2 LF-mapping [11] 7

2.3 BWT Reversing [11] 8

2.4 Minh họa BWT Reversing trực quan [11] 8

2.5 Thành phần chính của FM-index [11] 9

2.6 Các bước thực hiện truy vấn với FM-index [11] 10

2.7 Vị trí trùng lắp trong BWT [11] 10

2.8 Phương pháp tính điểm của thuật toán Smith-Waterman [15] 15 2.9 Khởi tạo ma trận tính điểm [15] 15

2.10 Tính toán giá trị cho mỗi ô [15] 16

2.11 Ma trận tính điểm [15] 16

2.12 Quá trình tìm kết quả [15] 17

2.13 Phân cấp bộ nhớ CUDA 19

2.14 Thành phần một chương trình của một ứng dụng GPU 20

3.1 Thứ tự thực thi 3 khối của giải thuật BWA-MEM [17] 22

3.2 Quá trình Seed Generation và Seed Extention [21] 26

3.3 Ví dụ quá trình Seed Generation và Seed Extention [5] 28

3.4 Ví dụ về một đoạn dữ liệu trong tập tin FASTQ 30

3.5 Dòng chảy của chương trình của giải thuật BWA-MEM 31

4.1 Mô hình hiện thực tăng tốc Seed Extension của bài báo [17] 35 4.2 Cấu hình của PE-Module: (a) standard systolic array configu-ration;(b) Variable Logical Length configuration that can by-pass part of the array; (c) Variable Physical Length config-uration that matches systolic array length to read length; (d) GPU-like single-PE modules [17] 35

Trang 14

4.3 Kiến trúc của tra cứu mảng hậu tố [26] 37

4.4 Kiến trúc của mô hình tăng tốc ma trận Smith-Waterman ở bài báo [27] 37

4.5 Mô hình hiện thực tăng tốc Seed Extension trên GPU của bài báo [28] 39

4.6 Mô hình hiện thực tăng tốc Seed Extension được cải tiến trên GPU của bài báo [21] 40

4.7 Mô hình hiện thực tăng tốc BWA-MEM trong bài báo [29] 41 5.1 Mô hình hiện thực tăng tốc ma trận Smith-Waterman trên GPU 45 5.2 Ví dụ về một đoạn dữ liệu trong tập tin FASTQ 47

6.1 Ma trận Smith-Waterman đơn giản 50

6.2 Các bước tính toán song song ma trận Smith-Waterman 51

6.3 Minh họa đơn giản cách các Thread tính toán ma trận Smith-Waterman 52

7.1 Các Thread trong Warp cùng đọc biến a của mảng các cấu trúc dữ liệu 58

7.2 Các Thread trong Warp cùng đọc biến a 58

7.3 Các nhánh của if/else được thực hiện tuần tự 58

7.4 if/else áp dụng trên 2 Warp khác nhau 59

7.5 So sánh thời gian thực thi giữa BWA-MEM với Smith-Waterman Kernel và BWA-MEM phiên bản gốc, CPU: 1 Thread 60

7.6 So sánh thời gian thực thi giữa Smith-Waterman Kernel trên CPU và GPU, CPU: 1 Thread 61

7.7 Kết quả phân tích quá trình gọi các Runtime API của CUDA bằng nvprof . 62

Trang 15

Danh sách bảng

2.1 Thứ tự của các ký tự trong Tbwt 6

2.2 C(·) của Tbwt 6

2.3 Occ(c,q) của Tbwt 7

2.4 Ví dụ ma trận thay thế 13

2.5 Ví dụ ma trận tính điểm 14

4.1 Kết quả phân tích chương trình BWA-MEM 34

4.2 Cấu hình phần cứng máy chủ (CPU-only) - : không có thông tin 43 4.3 Cấu hình phần cứng thiết bị - : không dùng 43

4.4 Kết quả đạt được *: Smith-Waterman Algorithm only 43

Trang 17

1.2 Động lực nghiên cứu

Sắp xếp trình tự gen mang đến nhiều lợi ích:

• Phát hiện được bệnh tế bào máu hình lưỡi liềm [2]

Multi-dễ dàng và ngôn ngữ được sử dụng để lập trình GPU (cụ thể là dùng CUDA)

là C/C++ Tuy nhiên, việc sử dụng ngôn ngữ C/C++ lập trình cho GPU không

hề đơn giản so với lập trình tuần tự đơn thuần Nói cách khác, việc tiếp cận

và hiện thực song song hóa một chương trình là cả một thử thách mới đối vớichúng tôi khi tiếp cận vấn đề này Hiện nay có nhiều giải thuật xếp trình tựgen như BWA-MEM [5], Bowtie2 [6], Cushaw2 [7], GEM [8], AGILE [9],STELLR [10], và mỗi giải thuật đều có những ưu điểm và nhược điểmriêng Tuy nhiên trong đề tài này, chúng tôi quyết định chọn giải thuật BWA-MEM, vì đó là một giải thuật so trùng và sắp hàng một cách chính xác, nhanhchóng trong trình tự sinh học với độ dài genome lớn, cân bằng tốt (scale well)đối với vộ genome lớn và đặc biệt là mã nguồn mở (điều này dễ dàng trongviệc tìm hiểu và hiện thực giải thuật trên nền tảng GPU)

Đề tài có các đóng góp sau

1 Phân tích cấu trúc chương trình BWA-MEM

2 Tăng tốc chương trình BWA-MEM trên nền tảng GPU

Trang 18

1.4 Cấu trúc của luận văn

Luận văn được chia thành 8 chương theo cấu trúc như sau:

1 Giới thiệu tổng quan các vấn đề trong Sinh-Tin học, động lực nghiêncứu, đóng góp của đề tài và trình bày cấu trúc luận văn

2 Các kiến thức nền tảng được trình bày trong giải thuật BWA-MEM như:Burrows-Wheeler Transform (BWT), Full-text index Minute-space (FM-index), giải thuật Smith-Waterman (SW) và kiến thức nền tảng GPU,CUDA

3 Phân tích cấu trúc chương trình BWA-MEM

4 Tìm hiểu các công trình liên quan đến đề tài, quan sát và nhận định

5 Trình bày ý tưởng và cách thức hiện thực chương trình trên GPU,

6 Trình bày kết quả thực nghiệm, đánh giá và phân tích kết quả

7 Trình bày về kết luận vấn đề các giới hạn và công việc tiếp theo của đềtài trong tương lai

8 Tài liệu tham khảo

Trang 19

Chương 2

KIẾN THỨC NỀN TẢNG

Chương 2 trình bày tổng quan các kiến thức về kỹ thuật Burrows-WheelerTransform (BWT), Full-text Minute-space (FM-index), giải thuật Smith-Waterman(SW) và GPU (Graphics Processing Unit) Đồng thời cũng cấp kiến thức vềBurrows-Wheeler Aligner (BWA-MEM) - một trong những giải thuật so trùng

và sắp hàng chuỗi với độ dài lớn từ 70bp đến vài megabases Những kiến thứcnày đặc biệt quan trọng bởi nó giúp chúng ta biết được cách thức hoạt độngcủa giải thuật BWA-MEM để từ đó thực hiện giải thuật BWA-MEM trên GPUnhằm tăng tốc cho giải thuật BWA-MEM

BWA-MEM

2.1.1 Burrows-Wheeler Transform (BWT)

Giải thuật được sử dụng trong kỹ thuật nén dữ liệu theo ý tưởng sắp xếp lạicác ký tự trong một chuỗi để tạo ra một chuỗi có nhiều các ký tự giống nhaudồn lại với nhau hơn chuỗi ban đầu và có thể chuyển đổi từ chuỗi này lạichuỗi ban đầu Thuật toán tạo ra chuỗi BWT có thể mô tả như sau với chuỗi

abaaba Ta kí hiệu chuỗi abaaba là T.

Bước 1: Viết thêm vào cuối T một kí tự là $ (đại diện cho con trỏ EOF), xét

n+1 hoán vị vòng quanh, ta được:

Trang 20

baaba$a aaba$ab aba$aba ba$abaa a$abaab

$abaaba Bước 2: Sắp xếp n+1 hoán vị vòng quanh đó theo thứ tự từ điển tạo thành ma

Bước 3: Viết ra các ký tự cuối của các hoán vị vòng quanh theo đúng thứ tự

sau khi đã sắp xếp tạo thành từ mã BWT của T:

abba$aa

Dưới đây Hình 2.1 sẽ mô tả tổng quan quá trình xây dựng chuỗi BWT

Hình 2.1: Tổng quan xây dựng chuỗi BWT [11]

Trang 21

2.1.2 Chuyển đổi về chuỗi gốc ban đầu: BWT-reversing

Xét ma trận BWT (MT) cột đầu và cột cuối ký hiệu là F và L, đánh thứ tự chocác ký tự ở 2 cột này Tbwt là chuỗi BWT được tạo ra từ MT

MT có tính chất "Last-to-First column mapping" (LF-mapping) nghĩa là

sự xuất hiện thứ i của ký tự ở cột cuối cùng (L) tương ứng với sự xuất hiệnthứ i của ký tự đó ở cột đầu tiên (F) Theo [12], LF-mapping có:

• C(·) biểu thị mảng chiều dài |Σ| sao cho C[c] chứa tổng số lần xuất hiệncủa các ký tự trong dữ liệu text có thứ tự từ điển nhỏ hơn ký tự c

• Occ(c,q) biểu thị số lần xuất hiện của ký tự c trong tiền tố (prefix)

Tbwt[1,q]

• LF(i) = C[Tbwt[i]] + Occ(Tbwt[i],i)

LF(·) đại diện cho Last-to-First column mapping bởi vì ký tự Tbwt[i] ở cộtcuối L của ma trận MT sẽ nằm ở cột đầu F tại vị trí LF(i) và LF(·) cũng chophép dò ngược chuỗi T Cụ thể, nếu T[k] = Tbwt[i] thì T[k-1] = Tbwt[LF(i)]

Ví dụ T = "abaaba" Dựa vào Hình 2.1 ta có Tbwt = "abba$aa"

• Xây dựng Occ(c,q) của Tbwt

• Tính LF(i)

LF(1) = C(a) + Occ(a,1) = 1 + 1 = 2 => L(1) = F(2) = a0

LF(2) = C(b) + Occ(b,2) = 5 + 1 = 6 => L(2) = F(6) = b0

Trang 23

Để chuyển về chuỗi gốc ban đầu, ta đảo ngược chuỗi bắt đầu từ phía phảicủa chuỗi gốc dò ngược về phía trái Cách thực hiện đảo ngược được trìnhbày như Hình 2.3 và Hình 2.4 Kết quả thu được như sau: a3b1a1a2b0a0$ = T.

Hình 2.3: BWT Reversing [11]

Hình 2.4: Minh họa BWT Reversing trực quan [11]

2.1.3 FM-Index (Full-text index in Minute space)

FM-index [13] cho phép tìm kiếm chuỗi con trùng một cách hiệu quả bêntrong dữ liệu text

FM-index kết hợp kỹ thuật BWT với một vài cấu trúc dữ liệu phụ trợ để nhằmgiảm bộ nhớ thực thi và thực hiện nhanh hơn

Trang 24

Thành phần chính của FM-index bao gồm F (có thể được trình bày rất đơngiản 1 số nguyên cho 1 ký tự) và L (có thể nén được) từ ma trận BWT(Hình 2.5) FM-index có khả năng tiết kiệm không gian cần để lưu trữ.

Hình 2.5: Thành phần chính của FM-index [11]

Truy vấn với FM-Index: việc truy vấn bằng cách sử dụng LF-mappingđược mô tả như sau

• Ví dụ cần truy vấn chuỗi P = aba Ta truy vấn như Hình 2.6

• Đã tìm được chuỗi P là có trong T và truy vấn này có cùng kết quả vớimảng hậu tố (Hình 2.7)

Thuật toán cho FM-index [12]: xét chuỗi con trùng P[1,p] trong dữ liệu

text T[1,n] Giá trị occ là số lượng của những lần xuất hiện của chuỗi contrùng P[1,n] trong dữ liệu text nén Tbwt Hai thủ tục chính để vận hành FM-index:

1 Xác định số lượng của những lần xuất hiện của chuỗi con trùng P[1,p]trong dữ liệu nén Tbwt sử dụng thuật toán get_row (Algorithm 1) Tham

số First trỏ đến hàng đầu tiên của ma trận BWT (MT) chứa tiền tố P[i,p] và tham số Last trỏ đến hàng cuối của MT chứa tiền tố P[i, p].Thuật toán trả về giá trị occ = Last - First + 1

2 Xác định những vị trí của của chuỗi con trùng P[1,n] ở trong dữ liệutext T sử dụng thuật toán get_position (Algorithm 2) trả về occ giá trịnguyên khác nhau trong khoảng [1,n]

Trang 25

Hình 2.6: Các bước thực hiện truy vấn với FM-index [11]

Hình 2.7: Vị trí trùng lắp trong BWT [11]

Trang 26

Algorithm 1 Thuật toán get_rows để tìm những hàng chứa tiền tố P[1,n] [12]

FunctionGET _ ROWS(P [1, p]) begin

i ← p, c ← P ]p F irst ← C[c] + 1, Last ← C[c + 1];

while ((F irst ≤ Last) and (i ≥ 2)) do

c ← P [i − 1];

F irst ← C[c] + Occ(c, F irst − 1) + 1;

Last ← C[c] + Occ(c, Last);

i ← i − 1;

end

if Last < F irst then

return no rows pref ixed by P [1, p];

Algorithm 2 Thuật toán get_position cho việc tính toán Pos(i) [12]

FunctionGET _ POSITION(i) begin

Ví dụ: Truy vấn chuỗi P = aba trong dữ liệu text T = aabaaba.

1 Tìm Tbwt Dựa vào Hình 2.1 ta có Tbwt = abba$aa

2 Áp dụng tiến trình của FM-index

Bước 1: Sử dụng thuật toán get_rows (Algorithm 1)

• Ký tự đầu tiên chúng ta cần truy vấn là a, ký tự cuối cùng trongchuỗi P Khoảng [First,Last] ban đầu được thiết lập là:

[C[a] + 1, C[a+1]] = [2,5]

• Ký tự kế tiếp cần truy vấn là b Khoảng [First,Last] mới là:

[C[b] + Occ(b, First-1) + 1, C[b] + Occ(b, Last)] = [5 + 0 + 1, 5 +2] = [6,7] với First bằng 2 là chỉ số bắt đầu và Last bằng 5 là chỉ

số kết thúc của khoảng [First,Last] trước đó [2,5]

• Ký tự cuối cùng cần truy vấn là a Khoảng [First,Last] mới là:[C[a] + Occ(a, First-1) + 1, C[a] + Occ(a, Last)] = [1 + 2 + 1, 1 +4] = [4,5] P = aba có trong các hàng [4,5] của ma trận BWT

Trang 27

• Giá trị occ = Last - First + 1 = 8 - 7 + 1 = 2.

Bước 2: Sử dụng thuật toán get_position ((Algorithm 2)

• i = Last = 5 Hàng r5 của MT được đánh dấu, lấy Pos(5) từ T:Pos(5) = 1

• i = First = 4

r4 không được đánh dấu LF[4] = C(a) + Occ(a,4) = 1 + 2 = 3, t = 1;

r3 không được đánh dấu LF[3] = C(b) + Occ(b,3) = 5 + 2 = 7, t = 2;

r7 không được đánh dấu LF(7) = C(a) + Occ(a,7) = 1 + 4 = 5, t = 3;

r5 được đánh dấu Lấy Pos(5) từ T: Pos(5) = 1

Thuật toán Smith-Waterman [14] gồm 3 bước:

1 Khởi tạo ma trận từ hai chuỗi đầu vào A=a1a2 an và B=b1b2 bm với

n và m lần lượt là độ dài chuỗi A và B

• Xác định ma trận thay thế (substitution matrix)

– Mỗi ô trong ma trận thay thế sẽ nhận được một điểm số

(score)

– Ví dụ: Nếu hai ký tự giống nhau sẽ nhận được điểm số +1,

hai ký tự không giống nhau sẽ nhận điểm số -1, ma trận thaythế sẽ là:

– Ma trận thay thế sẽ được biểu diễn như sau:

s(aj,bj) =

+1 ai = bj

−1 ai 6= bj

Trang 28

• Điểm phạt cho quãng cách (gap penalty).

– Quãng cách (gap được ký hiệu bằng dấu "-") được hiểu đơn

giản khi nhìn trong trình tự là phần trống, không có ký tự

để so sánh với ký tự của chuỗi khác Chẳng hạn, với chuỗisau ’AAG-AT-A’ có hai quãng cách, mỗi quãng có một chỗtrống Còn với chuỗi ’AA–GATA’ có một quãng cách với haikhoảng trống

– Điểm phạt cho quãng cách là điểm số cho việc thêm hoặc xóa

quãng cách

– Trong sinh học, điểm phạt cần phải được tính toán khác nhau

bởi vì các sinh vật nào gần nhau sẽ có trình tự giống nhau ởcác đoạn liên tục và dài vì vậy cũng sẽ có ít quãng cách hơnhoặc trường hợp đột biến gen có thể dẫn đến việc chèn nhiềuquãng cách hơn Do đó, ta sẽ còn có thêm điểm phạt cho mỗimột đoạn quãng cách (open gap penalties) gồm điểm cho gapopening và điểm cho gap extension

Ví dụ: A _ _ G C C Quãng cách gồm khoảng trống đầu tiên

là gap opening và khoảng trống phía sau gọi là gap extension

– Wk = u * (k-1) + v (u>0, v>0) với Wk điểm phạt cho quãngcách (gap penalty) có độ dài k v là điểm phạt cho gap open-ing u là điểm phạt cho gap extension [15]

• Xây dựng ma trận tính điểm (scoring matrix) H Kích thước của

ma trận tính điểm là (n+1)*(m+1)

– Chức năng của ma trận tính điểm là để thực hiện so sánh trình

tự lần lượt giữa tất cả các ký tự trong hai chuỗi để ghi lại kết

Trang 29

quả so trùng và sắp hàng tối ưu.

Bảng 2.5: Ví dụ ma trận tính điểm

b1 bj bm

0 0 0 0

a1 0

ai 0

an 0

2 Tính toán, điền giá trị cho ma trận (điểm cho mỗi ô)

Điểm cho từng cặp ký tự phụ thuộc vào: điểm của hai ký tự giống nhauhoặc hai ký tự khác nhau (dựa vào ma trận thay thế) và điểm phạt quãngcách (gap penalty) Theo [15] ta có:

0

Hi−1,j−1 + s(ai, bj) là điểm cho việc so trùng và sắp hàng ai, bj

Hi−k,j - Wk là điểm số nếu ai là vị trí kết thúc của quãng cách có

độ dài k

Hi,j−l - Wl là điểm số nếu bj là vị trí kết thúc của quãng cách có

độ dài l

0 nghĩa là không có sự giống nhau giữa ai và bj

3 Tìm ô có giá trị lớn nhất trong ma trận Sử dụng kỹ thuật lưu vết để tìm

ra kết quả

Trang 30

Hình 2.8: Phương pháp tính điểm của thuật toán Smith-Waterman [15]

Ví dụ [15]: so trùng và sắp hàng hai chuỗi TGTTACGG và GGTTGACTA

1 Sử dụng ma trận thay thế (substitution matrix) s(ai,bj) =

và điểm phạt cho quãng cách (gap penalty) Wk = 2k với độ dài k là 1

Ta sẽ xây dựng ma trận tính điểm (scoring matrix) (Hình 2.9)

Hình 2.9: Khởi tạo ma trận tính điểm [15]

Trang 31

2 Tính toán và điền giá trị cho ma trận dựa vào Hình 2.8 ta được Hình 2.10

và Hình 2.11

Hình 2.10: Tính toán giá trị cho mỗi ô [15]

Hình 2.11: Ma trận tính điểm [15]

Trang 32

3 Sử dụng kỹ thuật lưu vết để tìm kết quả.

Hình 2.12: Quá trình tìm kết quả [15]

2.2.1 Graphics Processing Unit - GPU:

Một bộ vi xử lý chuyên dụng, đảm nhận nhiệm vụ tăng tốc, xử lý đồ họa choCPU Các GPU hiện nay có khả năng xử lý cao trong xử lý đồ họa máy tính

Về tốc độ xử lý dữ liệu thì GPU có thể tiếp nhận hàng ngàn luồng dữ liệucùng một lúc vì thế có thể tăng tốc một số phần mềm tới hơn 100 lần so vớimột CPU

Trước khi GPU ra đời thì CPU vừa phải xử lý các chương trình vi tính, dữliệu vừa kiêm luôn công việc xử lý đồ họa, hình ảnh Lượng công việc quánhiều nên CPU hoạt động theo xu hướng ban phát đồng đều mức tài nguyên.Công việc đồ họa và công việc văn phòng đều nhận được lượng tài nguyênnhư nhau Chính vì vậy các sản phẩm đồ họa khi ra đời đều bị hạn chế rấtnhiều Nhưng từ khi GPU ra đời thì mọi thứ đã hoàn toàn thay đổi giúp giảmbớt khối lượng công việc cho CPU, CPU chỉ còn nhiệm vụ kéo hệ thống chạy

Trang 33

theo hoạt động của GPU và dành các xung của mình cho các nhiệm vụ kháccủa hệ thống, tiết kiệm thời gian đáng kể và hiện nay vai trò của GPU trênmáy tính ngày càng quan trọng hơn, không chỉ dừng lại ở việc xuất tín hiệu

ra màn hình hay hỗ trợ chơi game 3D mà việc tận dụng nhân đồ hoạ (GPU)tham gia hỗ trợ xử lý cùng nhân CPU để đưa ra các ứng dụng bổ ích như:DXVA (DirectX Video Acceleration) trên các chương trình xem phim, HWA(Hardware Acceleration) trên các trình duyệt web, MS Powerpoint 2010 tậndụng GPU để thể hiện các hiệu ứng mượt mà hơn [16]

2.2.2 Compute Unified Device Architecture - CUDA:

Một nền tảng có khả năng tính toán song song và lập trình được phát triển bởiNVIDIA vào tháng 11 năm 2006 nhằm mục đích tăng cường mạnh mẽ cáckhối tính toán song song trong các GPU và giúp cho các nhà phát triển thuậnlợi hơn trong việc triển khai các ứng dụng non-graphic, CUDA hỗ trợ một

số ngôn ngữ lập trình như C và Fortran, và nó có một thư viện lớn CUDAcung cấp môi trường tính toán phức hợp và có thể làm việc theo môi trườngtính toán song song Một chương trình CUDA gồm có hai thành phần chính:CPU và GPU Kernel Host code chạy trên CPU trong khi GPU kernel codes

là những hàm GPU chạy trên những thiết bị GPU và được miêu tả trong Hình2.14 Chương trình thực thi trên GPU hoàn toàn độc lập với chương trình trênCPU

Một ứng dụng bắt đầu thực thi bằng code trên CPU Code trên CPU chỉ thị tớimột kernel GPU trên thiết bị GPU Kernel này được thực thi trên một GPUgrid

Một GPU grid chứa các thread blocks hoàn toàn độc lập với nhau Một blockchứa nhiều thread Có những giới hạn về số lượng threads/block và số threadblocks/grid Bởi vì vấn đề giới hạn bộ nhớ được chia sẻ cục bộ và kích thước

dữ liệu hoặc số lượng processors hoặc kiến trúc của GPU

Trang 34

Block (M,0)

Texture

CPU Host

Device (Grid)

ConstantGlobal

Block (0,0)

SharedRegisters RegistersThread(0,0) Thread(N,0)Local Local

Hình 2.13: Phân cấp bộ nhớ CUDA

Bộ nhớ CUDA có nhiều thành phần bộ nhớ phân cấp khác nhau đượctruy cập trong quá trình hoạt động, khác về kích thước và băng thông (Chitiết được mô tả trong Hình 2.13) Bên trong mỗi thread đều có bộ nhớ cục

bộ riêng (Local) và bộ nhớ chia sẻ (Shared memory) Bộ nhớ chia sẻ này

sẽ được nhìn thấy trong tất cả mọi threads của block với thời gian sống lànhư nhau và bộ nhớ toàn cục (Global memory) được kết nối tới tất cả cácthreads Ngoài ra, Bộ nhớ CUDA còn có hai bộ nhớ chỉ đọc (read-only) đó làConstant memory và Texture memory Hai bộ nhớ này được liên kết đến tất

cả các threads Việc thêm hai bộ nhớ này nhằm tối ưu chi phí tính toán.Input và Output dữ liệu được dịch chuyển từ CPU tới GPU và ngược lại Đểkhai thác GPU một cách hiệu quả thì bản thân CPU Host phải xây dựng cấutrúc dữ liệu phù hợp với GPU

Vấn đề quan trọng cuối cùng về CUDA đó là vấn đề đồng bộ bộ nhớ CUDA

Trang 35

giúp điều phối các threads trong block sử dụng bộ nhớ chia sẻ một cách côngbằng Khi gọi một kernel thực tế là gọi một grid Những Host codes trong

Hình 2.14: Thành phần một chương trình của một ứng dụng GPU

một ứng dụng CUDA trải qua bảy bước sau

1 Khởi tạo một thiết bị

2 Cấp phát bộ nhớ GPU

3 Dịch chuyển dữ liệu tới thiết bị

4 Chỉ định những kernels

5 Dịch chuyển dữ liệu từ thiết bị

6 Giải phóng bộ nhớ trên GPU

7 Reset thiết bị

Trang 36

Những giải thuật dựa trên luận thuyết này bao gồm hai bước chính:

1 Seeding: sẽ tìm trong gen tham khảo một chuỗi con trùng lắp nhiềunhất với một chuỗi con trong chuỗi đọc được từ tập dữ liệu Chuỗi connày được gọi là seed

Một chuỗi con có thể là một sự trùng lắp hoàn toàn hoặc trùng lắpkhông hoàn toàn với một tỉ lệ khác biệt cụ thể

2 Extension: phần còn lại trong chuỗi đọc từ tập dữ liệu sẽ được so trùng

và sắp hàng với gen tham khảo dùng giải thuật Smith-Waterman hoặcgiải thuật tương tự Smith-Waterman

Giải thuật BWA-MEM chỉ tìm kiếm những chuỗi con trùng lắp hoàn toàntrong giai đoạn seeding

Trang 37

3.1 Cấu Trúc Chương Trình BWA-MEM

Giải thuật BWA-MEM bao gồm ba khối chính được thực thi tuần tự cho mỗichuỗi đọc được từ tập dữ liệu:

1 SMEM Generation

2 Seed Extension

3 Output Generation

Giải thuật BWA-MEM xử lý các chuỗi đọc từ tập dữ liệu theo kiến trúc

bó [17], như Hình 4.4 Đầu tiên, hai giai đoạn SMEM Generation và SeedExtension được thực thi tuần tự liên tục cho mỗi chuỗi đọc được từ tập dữliệu, khi hai quá trình này hoàn thành cho một bó dữ liệu, giai đoạn ghi kếtquả được thực thi Quá trình xử lý cho các bó dữ liệu khác sẽ được tiếp tục.Giải thuật BWA-MEM xử lý theo bó này thường được hiện thực theo mô hình

xử lý đa nhiệm (multithreads)

Hình 3.1: Thứ tự thực thi 3 khối của giải thuật BWA-MEM [17]

Trang 38

3.1.1 SMEM Generation

Chuỗi MEM là chuỗi con của chuỗi đọc được từ tập dữ liệu mà trùng lắpchính xác với chuỗi DNA tham khảo và không thể mở rộng theo bất kỳ chiềunào

Chuỗi SMEM [18] là một chuỗi MEM mà không thể được chứa trong mộtchuỗi lớn hơn nào khác có đặc tính tương tự

Chuỗi SMEM thường được tìm thấy ít hơn nhiều so với chuỗi MEM.Mỗi một chuỗi đọc được từ tập dữ liệu có thể không có chuỗi SMEM nàohoặc nhiều chuỗi SMEM

Các SMEM này chính là seed Các SMEM này có thể dễ dàng tạo đượcbằng cách sử dụng FM-Index [19]

Hit là số chuỗi MEM hoặc SMEM có trong trong bộ gen tham khảo

• Ví dụ [20]:

Chuỗi đọc từ tập dữ liệu R =CTGACAGATCAGAGAGGAATCCGA và bộgen tham khảo T= CTGCGTCAACAGATCAGAGAGCTCCGATCTCCGA CCGCTGACATATCAGAGAGGAATCGGACGTA

• Ta tìm được 4 MEM là R[1 6], R[4 16], R[8 21] và R[20 24]

Ba chuỗi MEM R[1 6], R[4 16], R[8 21] có 1 hit trong gen tham khảoT

Chuỗi MEM R[20 24] có 2 hit trong gen tham khảo T

Theo [5] BWA-MEM xác định các seed bằng hai bước:

1 Seeding và re-seeding

• Xác định tất cả các chuỗi SMEM có trong chuỗi gen tham khảodựa vào thuật toán tìm SMEMs [18] (Algorithm 5) Thuật toántìm SMEMs sẽ sử dụng hai thuật toán Backward Extension (Al-gorithm 3) và giải thuật Forward Extension (Algorithm 4)

Trang 39

Algorithm 3 Thuật toán Backward Extension [18]

Input: Bi-interval [k, l, s] of string W and a symbol a

Output: Bi-interval of string aW

Function BACKWARD E XT([k, l, s], a) begin

Algorithm 4 Thuật toán Forward Extension [18]

Input: Bi-interval [k, l, s] of string W and a symbol a

Output: Bi-interval of string W a

Function FORWARD E XT([k, l, s], a) begin

[l0, k0, s0] ←B ACKWARD E XT([l, k, s], a) return [k0, l0, s0]

end

Algorithm 5 Thuật toán tìm SMEMs [18]

Input: String P and start position i0 ; P [−1] = 0

Output: Set of bi-intervals of SMEMs overlapping i0

Function SUPERMEM1(P, x) begin

Initialize Curr, Prev and Match as empty arrays [k, l, s] ← [C(P [i0 ]), C(P [i 0 ]), C(P [i 0 ] + 1) − C(P [i0])] for i ← i0+ 1 to |P | do

[k, l, s] ← [k0, l0, s0]

end

end

Swap array Curr and Prev i0 ← |P | for i ← i0− 1 to −1 do

Reset Curr to empty s00← −1 for [k, l, s] in Prev do

[k0, l0, s0] ←B ACKWARD E XT([k, l, s], P [i]) if s0 = 0 or i = −1 then

if Curr is empty and i + 1 < i0+ 1 then

i 0← i Append [k, l, s] to Match

end end

Trang 40

• Giả sử:

Chuỗi gen được đọc từ tập dữ liệu: R = CCCCGTTTT

và chuỗi gen tham khảo: T = CCCCATTTT CCCCG .GTTTT

– Chuỗi con CCCCATTTT của T là 1-mismatch hit (hit có 1

ký tự không trùng) của R mà đó là true hit Chú ý rằng cácMEM của R là CCCCG và GTTTT Bởi vì 1-mismatch hit(hit có 1 ký tự không trùng) của CCCCATTTT không chứahai MEM của R, vì thế bước seeding bị thất bại trong việctìm 1-mismatch hit này

• Để tránh xác định thiếu seed, re-seeding được tiến hành để tìmkiếm những seed có độ dài quá lớn (trên 28 bp) Giả sử mộtSMEM có độ dài l xuất hiện k lần trong bộ gen tham khảo Bướcre-seeding sẽ tìm những chuỗi trùng lắp chính xác dài nhất (LEMs– longest exact matches) bao gồm phần giữa của SMEM và xuấthiện ít nhất k + 1 lần trong bộ gen tham khảo Ý tưởng này đảmbảo các seed được xác định từ bước seeding và bước re-seeding

có thể bao gồm phần lớn tất cả những true hit của chuỗi đọc từ tập

dữ liệu

2 Chaining và chain filtering

Xét tất cả những seed thu được từ seeding và re-seeding, chúng ta có thểthực hiện seed extension cho tất cả chúng Tuy nhiên, ở đây có thể cónhiều seed và phần lớn trong số đó là dư thừa Để giảm seed extension

dư thừa ở bước sau, bước chaining được thực hiện để gộp những nhómseed thẳng hàng và nằm gần nhau (được gọi là chain) và sau đó lọc bỏnhững chain ngắn mà phần lớn độ dài của chúng được chứa trong chaindài Chain được phát hiện trong bước này không cần chính xác

3.1.2 Seed Extension

Các seed là các chuỗi con của chuỗi đọc từ tập dữ liệu mà trùng lắp chính xácvới gen tham khảo đã tìm được ở bước SMEM Generation Sau khi tìm đượcseed, seed sẽ được mở rộng theo cả hai chiều để thực hiện việc so trùng và

Ngày đăng: 21/04/2021, 11:00

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] ncbi.nlm.nih.gov, “National center for biotechnology information,”https://www.ncbi.nlm.nih.gov/, 2017 Sách, tạp chí
Tiêu đề: National center for biotechnology information
[2] J. Quinlan, Y. Idaghdour, J.-P. Goulet, E. Gbeha, T. de Malliard, V. Bruat, J.-C. Grenier, S. Gomez, A. Sanni, M. C. Rahimy, and P. Awadalla, “Genomic architecture of sickle cell disease in west african children,” in Front. Genet., 2014 Sách, tạp chí
Tiêu đề: Genomic architecture of sickle cell disease in west africanchildren,” in "Front. Genet
[3] M. News, “Biologists’ new peptide could fight many cancers,” http://news.mit.edu/2018/peptide-could-fight-many-cancers-0115, 2018 Sách, tạp chí
Tiêu đề: Biologists’ new peptide could fight many cancers
[5] H. Li, “Aligning sequence reads, clone sequences and assembly contigs with bwa-mem,” arXiv preprint arXiv:1303.3997, 2013 Sách, tạp chí
Tiêu đề: Aligning sequence reads, clone sequences and assembly contigswith bwa-mem,” "arXiv preprint arXiv:1303.3997
[6] B. Langmead and S. Salzberg, “Fast gapped-read alignment with bowtie 2,” Nature Reviews Clinical Oncology, vol. 9, pp. 357–359, 2012 Sách, tạp chí
Tiêu đề: Fast gapped-read alignment with bowtie2,”"Nature Reviews Clinical Oncology
[7] Y. Liu and B. Schmidt, “Long read alignment based on maximal exact match seeds,” in Bioinformatics, 2012 Sách, tạp chí
Tiêu đề: Long read alignment based on maximal exactmatch seeds,” in "Bioinformatics
[8] S. Marco-Sola, M. Sammeth, R. Guigó, and P. Ribeca, “The gem map- per: fast, accurate and versatile alignment by filtration,” Nature methods, vol. 9, no. 12, p. 1185, 2012 Sách, tạp chí
Tiêu đề: The gem map-per: fast, accurate and versatile alignment by filtration,”"Nature methods
[9] S. Misra, A. Agrawal, W. keng Liao, and A. N. Choudhary, “Anatomy of a hash-based long read sequence mapping algorithm for next generation dna sequencing,” Bioinformatics, vol. 27 2, pp. 189–95, 2011 Sách, tạp chí
Tiêu đề: Anatomy ofa hash-based long read sequence mapping algorithm for next generationdna sequencing,”"Bioinformatics
[12] P. Ferragina, G. Manzini, V. M¨akinen, and G. Navarro, “An alphabet- friendly fm-index,” in String Processing and Information Retrieval.Springer, 2004, pp. 228–228 Sách, tạp chí
Tiêu đề: An alphabet-friendly fm-index,” in "String Processing and Information Retrieval
[13] P. Ferragina and G. Manzini, “Opportunistic data structures with appli- cations,” in Foundations of Computer Science, 2000. Proceedings. 41st Annual Symposium on. IEEE, 2000, pp. 390–398 Sách, tạp chí
Tiêu đề: Opportunistic data structures with appli-cations,” in "Foundations of Computer Science, 2000. Proceedings. 41stAnnual Symposium on
[14] T. F. Smith and M. S. Waterman, “Identification of common molecular subsequences,” Journal of molecular biology, vol. 147, no. 1, pp. 195–197, 1981 Sách, tạp chí
Tiêu đề: Identification of common molecularsubsequences,” "Journal of molecular biology
[15] W. contributors, “Smith–waterman algorithm — wikipedia, the free encyclopedia,” 2017, [Online; accessed 01-December-2017]. [On- line]. Available: https://en.wikipedia.org/w/index.php?title=Smith%E2%80%93Waterman_algorithm&amp;oldid=812335646 Sách, tạp chí
Tiêu đề: Smith–waterman algorithm — wikipedia, the freeencyclopedia
[16] H. Tom’s, “Office 2010 to make itself faster with your gpu,” https://www.tomshardware.com/news/office-2010-word-powerpoint-gpu,10447.html, 2010 Sách, tạp chí
Tiêu đề: Office 2010 to make itself faster with your gpu
[17] K. B. Ernst Joachim Houtgast, Vlad Mihai Sima and Z. Al-Ars, “An fpga-based systolic array to accelerate the bwa-mem genomic mapping algorithm,” in Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS), 2015 International Conference on. IEEE, 2015, pp. 221–227 Sách, tạp chí
Tiêu đề: Anfpga-based systolic array to accelerate the bwa-mem genomic mappingalgorithm,” in "Embedded Computer Systems: Architectures, Modeling,and Simulation (SAMOS), 2015 International Conference on
[18] H. Li, “Exploring single-sample snp and indel calling with whole- genome de novo assembly,” Bioinformatics, vol. 28, no. 14, pp. 1838–1844, 2012 Sách, tạp chí
Tiêu đề: Exploring single-sample snp and indel calling with whole-genome de novo assembly,” "Bioinformatics
[19] M. Burrows and D. J. Wheeler, “A block-sorting lossless data compres- sion algorithm,” 1994 Sách, tạp chí
Tiêu đề: A block-sorting lossless data compres-sion algorithm
[20] W.-K. Sung, Algorithms in bioinformatics: A practical introduction.CRC Press, 2009 Sách, tạp chí
Tiêu đề: Algorithms in bioinformatics: A practical introduction
[21] K. B. Ernst Joachim Houtgast, Vlad-Mihai Sima and Z. Al-Ars, “An ef- ficient gpu-accelerated implementation of genomic short read mapping with bwamem,” ACM SIGARCH Computer Architecture News, vol. 44, no. 4, pp. 38–43, 2017 Sách, tạp chí
Tiêu đề: An ef-ficient gpu-accelerated implementation of genomic short read mappingwith bwamem,” "ACM SIGARCH Computer Architecture News
[22] A. W. T. F. J. R. N. H. G. M. G. A. R. D. Heng Li, Bob Handsaker, “The sequence alignment/map format and samtools,” Bioinformatics, vol. 25, no. 16, pp. 2078–2079, 2009 Sách, tạp chí
Tiêu đề: Thesequence alignment/map format and samtools,”"Bioinformatics
[25] W. contributors, “Systolic array,” 2018, [Online; accessed 01-June- 2018]. [Online]. Available: https://en.wikipedia.org/wiki/Systolic_array Sách, tạp chí
Tiêu đề: Systolic array

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

TÀI LIỆU LIÊN QUAN