Thu thập nguồn gene và tổ chức dữ liệu gene
PHẦN B: TỔNG QUAN – Giới thiệu Bioinformatics – Vài công cụ NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG 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. Program Query 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. PHẦN B: TỔNG QUAN – Giới thiệu Bioinformatics – Vài công cụ NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG 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. PHẦN B: TỔNG QUAN – Giới thiệu Bioinformatics – Vài công cụ NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG 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. II.3.7. EMBOSS EMBOSS (European Molecular Biology Open Software Suite) là công cụ phân tích trình tự với mã nguồn mở. Phần mềm này bao gồm nhiều chức năng và có thể xử lý dữ liệu với nhiều dạng format. Thƣ viện mở rộng đƣợc cung cấp với gói, cho phép ngƣời dùng phát triển và đƣa ra phần mềm riêng của họ. EMBOSS cũng tích hợp các gói và công cụ có sẵn dùng cho phân tích trình tự, nhƣ BLAST và ClustalW. EMBOSS chứa khoảng 150 chƣơng trình. Chúng xử lý một số lĩnh vực sau: o Gióng trình tự o Tìm kiếm nhanh chóng trình tự với trình tự ban đầu. o Xác định motif protein. o Phân tích trình tự, ví dụ xác định vùng CpG hay trình tự lặp lại. o Xác định nhanh chóng trình tự trong tập trình tự lớn. o Trình bày các công cụ đã đƣợc công bố… PHẦN B: TỔNG QUAN – Giới thiệu Bioinformatics – Ngôn ngữ NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG 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. PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình hướng đối tượng NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG 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 PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình hướng đối tượng NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG 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: Đối tƣợng Thuộc tính * Sinh viên - họ tên - lớp - mã số sinh viên PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình hướng đối tượng NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG 37 * Xe hơi - nhà sản xuất - màu - tốc độ tối đa * Gene - tên gene - số accession - tác giả … Thuận lợi của dùng đối tƣợng là ta có thể gắn kết thuộc tính với nhiệm vụ / chức năng riêng (behavior) của đối tƣợng đó. Đây là khác biệt quan trọng giữa lập trình cấu trúc (dữ liệu không gắn kết chặt chẽ với hành vi) và lập trình hƣớng đối tƣợng. Đố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. PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình hướng đối tượng NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG 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 f stabilize the structure of DNA else if (A of RNA) then f stabilize the structure of RNA else # A of Protein f stabilize the structure 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 nó. đạ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. PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình Perl NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG 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ử lý chuỗi. Perl đƣợc đƣa vào sử dụng đầu tiên vào năm 1987 do Larry Wall. Tiếp theo đó là các phiên bản 2.0, 3.0, 4.0, 5.0. Hiện nay phiên bản Perl mới nhất 5.8. Perl có thể cài đƣợc trên các hệ điều hành khác nhau. Mỗi hệ điều hành khác nhau sẽ có phiên bản Perl khác nhau. Trên hệ điều hành Windows ta dùng phiên bản ActivePerl 5.6 (hay 5.8) cho Win. Để 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… PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình Perl NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG 40 d. Các toán tử: Toán tử tính toán cơ bản: Toán tử Ý nghĩa Ví dụ = + - * / ** Gán Cộng Trừ Nhân Chia Lũy thừa $DNA=„actacacagt‟ 2+3 5-6 4*2 10/5 5**3 Toán tử một ngôi: Toán tử Ví dụ Ý nghĩa += -= *= /= ++ -- $x += 5 $x -=5 $x *=5 $x /=5 $x++ $x-- $x = $x + 5 $x = $x – 5 $x = $x * 5 $x = $x / 5 Biến $x tự tăng một đơn vị Biến $x tự giảm một đơn vị 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 Ý nghĩa < > == <= >= != lt gt eq le ge ne Nhỏ hơn Lớn hơn Bằng Nhỏ hơn hoặc bằng Lớn hơn hoặc bằng Không bằng Các toán tử luận lý Toán tử Cách dùng tương đương && || ^ ! and or xor not [...]... lặp: open (THU, “D:/Perl /thu. txt”) or die (“Không mở được tập tin”); $thu = ; while ( $thu) { print “ $thu \n”; $thu = ; } exit; Ngoài ra ta có thể dùng mảng chứa nội dung tập tin, trong đó mỗi dòng trong tập tin ứng với mỗi phần tử trong mảng Ta thực hiện nhƣ sau: open (THU, “D:/Perl /thu. txt”) or die (“Không mở được tập tin”); @thu = ; print “ @thu ; exit; d) Viết nội dung vào tập tin:... “D:/Perl /thu. txt”) or die (“Không mở được tập tin”); $thu = ; print “dòng đầu tiên của tập tin là: $thu ; NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG PHẦN B: TỔNG QUAN – Cơ sở tin học – Lập trình Perl 47 Nếu tập tin thu. txt có nhiều dòng, mỗi dòng trong tập tin thu. txt tƣơng ứng với một phần tử trong mảng Do đó khi gán $thu = , $thu chỉ chứa dòng đầu tiên của tập tin Để in hết nội dung của tập tin thu. txt,... “>>” vào trƣớc đƣờng dẫn Khi mở tập tin trong chế độ này ta có thể thêm nội dung vào tập tin Mở tập tin để đọc và thêm nội dung vào (read/write) ta thêm dấu “+ vào trƣớc đƣờng dẫn b) Đóng tập tin: Cú pháp: close (FileHandle); c) Đọc tập tin: Sau lệnh mở tập tin, nội dung của tập tin có thể đƣợc đọc nhƣ sau: Open (THU, “D:/Perl /thu. txt”)... - ORM) và cơ sở dữ liệu cấu trúc/phục vụ mà liên quan các đối tƣợng Java với bảng cơ sở dữ liệu dùng file XML Nhiệm vụ nối giữa hai thế giới rất khác biệt này thì rất phức tạp và ngao ngán Hibernate cho phép chúng ta dễ dàng thực hiện tạo, lấy, cập nhật, xóa (Create, Retrieve, Update, Delete – CRUD) trên các đối tƣợng Nó giảm thiểu sức lực để chuyển đổi giữa tập kết quả cơ sở dữ liệu quan hệ và các... trình nhận vào hai trình tự DNA nhập từ bàn phím và lƣu chúng lần lƣợt vào hai biến vô hƣớng $dna1, $dna2 Biến đƣợc khai báo với my qui định phạm vi hoạt động của biến và đảm bảo không có hiện tƣợng trùng tên biến xảy ra Hai biến $dna1 và $dna2 đƣợc xem nhƣ tham số và đƣợc truyền vào chƣơng trình con để xử lý Lúc này mọi hoạt động sẽ diễn ra trong chƣơng trình con Chƣơng trình con nhận vào hai biến... tƣơng tự nhƣ nhiều ngôn ngữ khác, chẳng hạn nhƣ Perl Chƣơng trình sẽ nhìn dữ liệu trên các dòng và cột của bảng cơ sở dữ liệu, chứ không cho ta một cách nhìn hƣớng đối tƣợng Cách nhìn này tạo ra một hố ngăn cách thế giới đối tƣợng (rất phù hợp cho việc lập trình) với thế giới CSDL quan hệ (rất phù hợp cho việc lƣu trữ và truy xuất dữ liệu) Với tiến bộ về công nghệ hiện nay, chúng ta đã đƣợc trang bị một... 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... Hibernate cho phép phục vụ truy vấn và lấy dữ liệu trên đối tƣợng Java (hơn là trên các bảng) mà có thể tối ƣu sức lực phát triển môi trƣờng SQL và JDBC NGUYỄN KỲ TRUNG – LÊ THÀNH TRUNG PHẦN B: TỔNG QUAN – Cơ sở tin học – Ngôn ngữ Java 51 III.3.3 Tổng quan về công nghệ Servlet cho các ứng dụng trên Web Khi chọn lựa công nghệ Java và Biojava để thực hiện đề tài, chọn lựa đầu tiên và hiển nhiên khi viết các ứng... Tập hợp các đối tƣợng Java trình bày và thao tác dữ liệu sinh học Mã nguồn mở cho tất cả các phát triển Tập hợp các đối tƣợng hỗ trợ cho nghiên cứu bioinformatics Đƣợc bắt đầu tại EBI/Sanger năm 1998 bởi Matthew Pocock và Thomas Down III.3.2 Biojava và CSDL Java tƣơng tác với CSDL thông qua cái gọi là JDBC API, một phần giao tiếp giữa chƣơng trình Java và CSDL Đây là cách tiếp cận truyền thống,... FileHandle “nội dung cần ghi vào”; Có thể viết nội dung cho tập tin từ bàn phím: $thu = ; print FileHandle “$text”; 5 Chƣơng trình con a) Giới thiệu: Chƣơng trình con là các đoạn mã thể hiện các chức năng khác nhau trong chƣơng trình chính Khi viết các chƣơng trình con chúng ta có thể tái sử dụng thay vì viết lại tất cả Và việc dùng chƣơng trình con làm cho việc tổ chức chƣơng trình tốt hơn, làm . 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. 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