1. Trang chủ
  2. » Khoa Học Tự Nhiên

Thu thập nguồn gene và tổ chức dữ liệu gene 3.pdf

22 414 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Thu thập nguồn gene và tổ chức dữ liệu gene
Tác giả Nguyễn Kỳ Trung, Lê Thành Trung
Trường học Đại học Washington
Chuyên ngành Bioinformatics
Thể loại Bài luận
Định dạng
Số trang 22
Dung lượng 785,04 KB

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

Nội dung

Thu thập nguồn gene và tổ chức dữ liệu gene

Trang 1

PHẦN B: TỔNG QUAN – Giới thiệu Bioinformatics – Vài công cụ 31

II.3 Vài công cụ Bioinformatics hiện nay

Vì không có cách nào mô tả hết các công cụ có sẵn, dưới đây chỉ trích một vài công cụ phổ biến dùng trong phân tích trình tự sinh học

II.3.1 Readseq

Readseq là một phần mềm cũ, ra đời từ năm 1989 Được phát triển bởi Don Gilbert, chương trình này đọc và viết trình tự nucleotide và protein sang nhiều định dạng hữu dụng Công cụ này được viết bằng ngôn ngữ Java

II.3.2 BLAST

BLAST (Basic Local Alignment Search Tools) là công cụ được biết tốt nhất trong phân tích trình tự Nó so sánh hai trình tự bởi cố gắng gióng (align) chúng, và cũng được dùng để tìm kiếm trình tự trong cơ sở dữ liệu Thuật toán bắt đầu bởi tìm kiếm sự so khớp chính xác, sau đó mở rộng vùng đã được gióng bởi những so khớp không chính xác (mismatches)

 blastall cho phép sử dụng tất cả các chương trình BLAST (blastn, blastp, blastx, và tblastn) Bảng sau đây tóm tắt trình tự dùng truy vấn (Query sequence), trình

tự cơ sở dữ liệu (Database sequence), và loại gióng trình tự (Alignment sequence) đối với lệnh BLAST khác nhau

sequence type

Database sequence type

Alignment sequence type

blastn nucleotide Nucleotide nucleotide

blastp protein Protein protein

blastx nucleotide Protein protein

tblastn protein Nucleotide protein

tblastx nucleotide Nucleotide protein

Bảng 2.1: Bảng liệt kê một số chương trình BLAST

 megablast sử dụng thuật toán gióng trình tự nucleotide tìm kiếm và nối nhiều trình tự truy vấn để giảm thời gian quét (scanning) qua cơ sở dữ liệu

Trang 2

PHẦN B: TỔNG QUAN – Giới thiệu Bioinformatics – Vài công cụ 32

 blastpgp thực hiện blastp có khe (gap) và có thể được dùng để thực hiện lặp đi lặp lại tìm kiếm ở chế độ psi-blast và phi-blast

 PSI-BLAST (Position-Specific Iterated BLAST) là sự tìm kiếm lặp lại trong đó

các trình tự tìm thấy trong một vòng tìm kiếm được dùng để xây dựng mô hình tính

điểm cho vòng tìm kiếm kế tiếp

 PHI-BLAST (Pattern-Hit Initiated BLAST) là chương trình tìm kiếm kết hợp sự

so khớp của regular expression với sự gióng khu vực xung quanh sự so khớp

 bl2seq (BLAST 2 Sequences) cho phép gióng trình tự hai trình tự được nhận

II.3.3 BLAT

BLAT là công cụ gióng trình tự rất nhanh tương tự như BLAST Nó tương đối mới so với BLAST, nhưng nó đã trở nên rất phổ biến BLAT thì chính xác hơn và nhanh hơn hàng trăm lần so với BLAST Tốc độ của BLAT xuất phát từ thời gian chạy các phần tử là các trình tự nhỏ không trùng lắp từ chiều dài được cho Phần tử này đủ nhỏ phù hợp với bộ nhớ máy tính và được tính toán điển hình chỉ một lần đối với mỗi tập hợp genome Jim Kent phát triển BLAT đặc biệt trợ giúp xử lý tập hợp bộ gene trong quá trình làm việc với bộ gene người

II.3.4 ClustalW

ClustalW là chương trình gióng đa trình tự dùng cho trình tự nucleotide và trình

tự protein Sự gióng có thể là toàn bộ (global) (toàn trình tự) hay khu vực (local) (giới hạn đoạn trình tự con) ClustalW tính toán sự khớp tốt nhất cho trình tự được chọn lựa,

và sắp chúng thành hàng để xác định, những sự tương đồng và sự khác biệt có thể được thấy

II.3.5 HMMER

HMMER là tập hợp các chương trình tạo ra mô hình Markov ẩn (hidden Markov model-HMM) của họ trình tự được dùng như trình tự truy vấn đối với cơ sở dữ liệu để xác định thêm sự tương đồng (homologs) của họ trình tự HMMER được phát triển bởi Sean Eddy tại đại học Washington

Trang 3

PHẦN B: TỔNG QUAN – Giới thiệu Bioinformatics – Vài công cụ 33

II.3.6 MEME/MAST

Hệ thống MEME/MAST cho phép bạn:

 Khám phá motif (vùng có tính bảo tồn cao) trong nhóm trình tự DNA hay protein sử dụng MEME

 Tìm kiếm trình tự cơ sở dữ liệu bằng motif dùng MAST

MEME và MAST được phát triển bởi Timothy Bailey, Charles và Bill Grundy tại phòng kỹ thuật và khoa học máy tính tại trung tâm San Diego Supercomputer

EMBOSS chứa khoảng 150 chương trình Chúng xử lý một số lĩnh vực sau:

Trang 4

PHẦN B: TỔNG QUAN – Giới thiệu Bioinformatics – Ngôn ngữ 34

II.4 Ngôn ngữ dùng trong Bioinformatics

Cuộc cách mạng về bộ gene đã thay đổi diện mạo của sinh học Bất cứ ai làm việc trong lĩnh vực này đều sử dụng phần lớn thời gian trên máy tính và duyệt qua các

cơ sở dữ liệu lớn về genes, proteins, các bài báo đã công bố trên các cơ sở dữ liệu lớn trên mạng Ví dụ danh sách toàn bộ gene người có sẵn, đã thay đổi cách làm việc của mọi người trong lĩnh vực nghiên cứu di truyền Theo phương cách truyền thống, một nhà sinh học trải qua nhiều ngày suy nghĩ chiến lược cho việc xác định một gene và hàng tháng trời làm việc trong phòng thí nghiệm để tạo dòng Ngày nay, anh ta chỉ phải mất vài ngày suy nghĩ chiến lược phù hợp cho ý nghĩa của gene từ cơ sở dữ liệu

bộ gene, tiếp theo thực hiện truy vấn (query), và vài phút để sắp xếp trật tự các dòng phù hợp từ nguồn dữ liệu

Để tạo thuận lợi trong sinh học mới, các nhà sinh học phải làm quen với máy tính Truy xuất dữ liệu từ trang web dữ liệu sinh học và những công cụ phân tích chúng thì thường không đủ Để thật sự tạo ra cuộc cách mạng thông tin trong sinh học, các nhà sinh học phải có thể quản lý và phân tích lượng lớn dữ liệu sinh học thu được

từ nhiều nguồn khác nhau Điều này có nghĩa là viết phần mềm và Perl là ngôn ngữ ưa thích cho Bioinformatics Khả năng tạo ra Perl script tự động quản lý thông tin là một thuận lợi

Mặc dù Perl là ngôn ngữ rất phù hợp đối với bioinformatics, nó không phải là chọn lựa duy nhất và cũng không phải là chọn lựa tốt nhất Các ngôn ngữ khác như Java, C++, Python… cũng được dùng trong bioinformatics Chọn lựa ngôn ngữ nào phụ thuộc vào vấn đề cần được lập trình, kỹ năng của người lập trình và hệ thống có sẵn

Trang 5

PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình hướng đối tượng 35

III Cơ sở tin học cho việc xây dựng cơ sở dữ liệu trình tự

III.1 Khái niệm về lập trình

Hiện nay lập trình thường được phân chia thành hai trường phái:

+ Lập trình cấu trúc hay còn gọi là “lập trình thủ tục”, “lập trình truyền thống” (Structured Programming)

+ Lập trình hướng đối tượng (Object -Oriented Programming)

Để hiểu rõ hơn sự khác biệt cũng như ưu khuyết điểm của hai trường phái này, ta hãy xét một yêu cầu đơn giản: Hãy hiển thị thông tin miêu tả các hình trong CSDL ra màn hình

Ta có thể dễ dàng phân tích vấn đề theo thứ tự các bước sau:

1 Định vị các hình trong cơ sở dữ liệu

2 Tạo danh sách hình

3 Sắp xếp danh sách hình theo một thứ tự nhất định

4 Biễu diễn từng hình riêng ra màn hình

Mỗi một bước trong bốn bước ở trên có thể phân rã thành những đơn vị nhỏ hơn

để có thể dễ dàng hơn trong việc thực hiện Ví dụ ta có thể chia bước 4 thành các bước sau (sử dụng vòng lặp):

- Lấy từng hình trong danh sách bắt đầu từ vị trí đầu tiên cho đến vị trí cuối cùng

- Gọi hàm hiển thị từng hình ra màn hình

Cách nhìn nhận và phân tích vấn đề như thế được gọi là phân rã chức năng (functionnal decomposition) Phân rã chức năng là cách tiếp cận bằng cách chia nhỏ vấn đề đến mức mà người lập trình có thể sử dụng tập lệnh của một ngôn ngữ lập trình

để thực hiện chúng Bằng cách này, ta có thể dễ dàng giải quyết và quản lý những vấn

đề lớn thông qua từng công việc nhỏ

Cách tiếp cận trên là tư tưởng chủ đạo của lập trình cấu trúc Đây cũng là điểm giống nhau giữa lập trình cấu trúc và lập trình hướng đối tượng Tuy nhiên, nếu chỉ dừng lại ở đây thì việc giải quyết một số vấn đề phức tạp ta sẽ gặp khó khăn vì những

lý do sau:

+ Phân rã chức năng thường có một chương trình chính chịu trách nhiệm về các chương trình con và ta không hề gặp khó khăn trong việc chia nhỏ các chức năng Tuy nhiên khi đó chương trình chính phải gánh rất nhiều nhiệm vụ: đảm bảo mọi thứ đều hoạt động tốt, liên kết và quản lý trình tự thực hiện các chức năng Do đó, khi yêu cầu

Trang 6

PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình hướng đối tượng 36 ngày càng nhiều, độ phức tạp của các yêu cầu ngày càng cao, thì chương trình viết theo kiểu cấu trúc sẽ ngày càng phức tạp, gây khó khăn trong việc quản lý, bảo trì và phát triển chương trình về sau Mọi thứ đều phát triển và thay đổi theo thời gian, không có gì là bất biến Và một chương trình ứng dụng cũng không nằm ngoài quy luật đó, nó luôn luôn thay đổi để ngày càng phù hợp với yêu cầu của thực tế Tính khó thích nghi khi có những thay đổi là nhược điểm quan trọng nhất của lập trình thủ tục + Trong một chương trình có cấu trúc nhiều phần khác nhau có thể truy cập cùng một dữ liệu Điều này nghĩa là nếu một chương trình cần thay đổi cách tổ chức dữ liệu,

ta phải tìm tất cả các chức năng hoặc các lệnh truy cập dữ liệu đó để có những thay đổi tương ứng Nếu sót một trong các chức năng hoặc lệnh này thì chương trình có thể vẫn hoạt động nhưng sẽ cho ra kết quả sai

+ Một nhược điểm khác của lập trình thủ tục là ta không thể kế thừa hiệu quả cũng như tái sử dụng hiệu quả các chức năng đã viết, trong nhiều tình huống phải viết lại gần như toàn bộ

Lập trình hướng đối tượng được đưa ra để khắc phục các nhược điểm của lập trình có cấu trúc Lập trình hướng đối tượng giúp ta tư duy và giải quyết vấn đề như cách ta thực hiện ngoài đời, do đó giúp ta tiếp cận các vấn đề một cách dễ dàng Nói cách khác lập trình hướng đối tượng chính là mô hình thu nhỏ của thế giới thực dưới góc độ nhìn nhận của con người

Trọng tâm của lập trình hướng đối tượng là ở khái niệm về đối tượng (object)

chứ không phải là khái niệm chức năng Tất cả mọi vật, hiện tượng tồn tại xung quanh

ta khi đưa vào chương trình đều được gọi chung là đối tượng Ví dụ, ta có đối tượng sinh viên, đối tượng sách khoa học, trong vấn đề sinh học đối tượng có thể là gene, record, báo cáo khoa học …

Như đã nói trên, đối tượng chính là các sự vật hiện tượng thật trong cuộc sống, do

đó, nó có các đặc điểm, tính chất để phân biệt với các đối tượng khác và trong lập trình

hướng đối tượng nó được gọi là thuộc tính (attribute) Để làm rõ ta có thể có các ví dụ

về thuộc tính của một số đối tượng như sau:

- lớp

- mã số sinh viên

Trang 7

PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình hướng đối tượng 37

Đối tượng nào có thuộc tính nào thì chỉ thực hiện các hành vi phù hợp với thuộc tính mà nó có Những hành vi không phù hợp phải thuộc về một đối tượng nào khác

mà có thuộc tính phù hợp để thực hiện nhiệm vụ đó Như sách chỉ dùng để đọc và xe dùng để lái mà không thể làm ngược lại nghĩa là ta chỉ có thể thực hiện “đọc sách lái xe” chứ không thể “lái sách đọc xe” Trong lập trình hướng đối tượng các chức năng, nhiệm vụ này gọi là hàm

Ví dụ:

Đối tượng Student có các hàm :

gotoSchool() // đi học

learn() // học bài Thay vì xem mỗi sinh viên là một object điều này sẽ giúp ta dễ dàng xác định chính xác đó là sinh viên nào và nó hoàn toàn độc lập với các object khác

Tóm lại, lập trình hướng đối tượng đã bổ sung được những điều mà lập trình cấu trúc còn hạn chế, nó giúp ta quản lý và tiếp tục phát triển chương trình cho phù hợp với các yêu cầu mới phát sinh một cách dễ dàng Hơn thế nữa các nhà phát triển phần mềm có thể hoàn toàn không biết về nhau nhưng điều đó không hề gây khó khăn bởi lập trình hướng đối tượng là mô hình thu nhỏ của thế giới và nó nhìn nhận cũng như phân tích vấn đề xảy ra như bộ não con người Vì thế muốn chương trình của mình có thể phù hợp và phát triển bền vững thì lập trình hướng đối tượng là chọn lựa tốt nhất hiện nay

Trang 8

PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình hướng đối tượng 38

Ví dụ: Xác định chức năng f() của ký tự A trong sinh học

- Đối với lập trình cấu trúc

define f() {

if (A of DNA) then

else if (A of RNA) then

else # A of Protein

}

- Đối với lập trình hướng đối tượng

Ta có 3 đối tượng DNA, RNA, và Protein Ba đối tượng này có thể gọi chung là một đại-phân-tử Cho trước một đại-phân-tử bất kỳ, muốn gọi thi hành một chức

năng f nào đó, ta không cần kiểm tra xem đó là DNA, RNA hay Protein Ta chỉ cần gọi đại-phân-tử.f() thì đối tượng đại-phân-tử sẽ cho ra kết quả phù hợp với bản chất của

đại-phân-tử.f()

Cách tiếp cận này sẽ trở nên đơn giản nếu chúng ta phải thực hiện nhiều hàm

khác nhau trên đối tượng đại-phân-tử, chẳng hạn g(), h(), … Khi đó, ta không

phải mất sức nhớ và kiểm tra xem đại-phân-tử đó là DNA, RNA, hay Protein Điều

này giải phóng phần nào năng lực tư duy của người lập trình

Trang 9

PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình Perl 39

III.2 Ngôn ngữ lập trình Perl dùng trong Bioinformatics

III.2.1 Giới thiệu Perl

Perl (Pratical Extraction and Reporting Language) là ngôn ngữ đa năng, hữu dụng Perl được dùng xử lý các tập tin, CGI, …đặc biệt hỗ trợ rất mạnh trong việc xử

Để soạn thảo ngôn ngữ Perl, ta có thể dùng các phần mềm soạn thảo như: UltraEdit, Notepad, EditPlus, Perl Builder, …

Để chạy chương trình Perl, ta dùng các dòng lệnh trên MS-DOS

III.2.2 Thành phần cơ bản trong Perl

1 Kiểu dữ liệu vô hướng (Scalar data)

a Kiểu số:

Ví dụ: 1, 109, 1.5e5…

b Kiểu chuỗi:

Chuỗi là một loạt các ký tự liên tiếp từ bộ 256 ký tự ASCII có sẵn

Ví dụ: „Đây là chuỗi trình tự DNA‟, hay ta có thể viết “Đây là chuỗi trình tự DNA” Chuỗi có thể đặt trong dấu „‟ hay “”

c Biến vô hướng:

Biến vô hướng dùng để lưu giá trị dữ liệu vô hướng trong quá trình tính toán, thực hiện chương trình

 Biến vô hướng phải bắt đầu tên biến với ký tự “$”

 Sau ký tự “$” phải có ít nhất một mẫu tự, và mẫu tự bắt đầu không được

là ký tự số

 Tên biến có sự phân biệt giữa chữ hoa và chữ thường

Ví dụ: $a, $A, $DNA, $number2…

Trang 10

PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình Perl 40

$DNA=„actacacagt‟

2+3 5-6 4*2 10/5 5**3

 Các toán tử so sánh: kết quả trả về là true hay false

Áp dụng

đối với số

Áp dụng đối với chuỗi

Trang 11

PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình Perl 41

2 Các cấu trúc điều khiển

a Câu lệnh điều kiện:

Trang 12

PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình Perl 42

Khối lệnh cần thực hiện;

}

Nếu biểu thức 1 là đúng thì khối lệnh 1 đƣợc thực hiện, nếu không sẽ kiểm tra biểu thức 2 Nếu biểu thức 2 đúng thì khối lệnh 2 đƣợc thực hiện…Nếu không biểu thức nào đƣợc thỏa mãn, khối lệnh trong biểu thức else đƣợc thực hiện

Trang 13

PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình Perl 43

c Vòng lặp “for”:

Vòng lặp for thường dùng để xác định số lần mà khối lệnh muốn thực hiện

for (biểu thức 1; biểu thức điều kiện; biểu thức 2){

khối lệnh cần thực hiện;

}

Vòng lặp sẽ dừng lại khi “biểu thức điều kiện” là sai

3 Mảng và Bảng băm (Array and Hash)

3.1 Mảng

a) Giới thiệu:

Biến mảng giống như biến vô hướng, nó được tạo ra để lưu dữ liệu Tuy nhiên dữ liệu là một danh sách (list) (danh sách là một nhóm dữ liệu vô hướng được sắp xếp theo thứ tự)

Mở đầu biến mảng là ký tự “@”, và các quy tắc đặt tên cho biến mảng cũng tương tự như đặt tên cho biến vô hướng

Ví dụ:

@a;

@a = (1, 2, 3, $x, $y);

Các phần tử của mảng được đánh số từ 0, như mảng trên 1 ở vị trí 0, 2 là vị trí 1…

Truy cập đến một phần tử trong mảng: $a[0] truy cập đến phần tử thứ 0,

$a[1] truy cập đến phần tử thứ 1 của mảng

Nhập phần tử vào mảng từ bàn phím: @array = <STDIN>;

b) Một số hàm thao tác trên mảng:

 Tìm chiều dài mảng:

$chieudai = scalar (@a);

Hoặc $chieudai = ($#a +1);

 Tìm chỉ số phần tử cuối cùng của mảng:

$chisophantucuoi = $#a;

 Hàm sort, sắp xếp thứ tự:

@b = sort (@a);

Ngày đăng: 01/11/2012, 11:54

HÌNH ẢNH LIÊN QUAN

Bảng 2.1: Bảng liệt kê một số chương trình BLAST - Thu thập nguồn gene và tổ chức dữ liệu gene  3.pdf
Bảng 2.1 Bảng liệt kê một số chương trình BLAST (Trang 1)

TỪ KHÓA LIÊN QUAN

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