7 Năm 1989, Perl 3.0 ra đời, nhƣng phiên bản này đƣợc phát hành dƣới bản quyền đƣợc bảo vệ của GNU. Với phiên bản này Perl nhanh chóng trở thành tiêu chuẩn để viết CGI script dùng cho việc xử lý dữ liệu đƣợc gửi trên Internet. Năm 1991, phiên bản 4.0 đƣợc đƣa ra vào tháng 3. Đến thời điểm này, Perl đã trở thành ngôn ngữ khá hoàn chỉnh mặc dù vẫn còn một số khuyết điểm nhỏ. Năm 1994, phiên bản Perl 5.0 ra đời cùng với sự ra đời của DBI (Database Interface) và DBD (Datadbase Driver) cho hệ quản trị CSDL Oracle của Tim Bunce. Từ đó, các DBD của các hệ quản trị CSDL khác cũng dần xuất hiện. Năm 2000, phiên bản 5.6 xuất hiện vào tháng 3. Phiên bản này đã chuyển sang định dạng tiêu chuẩn và có sự hỗ trợ cả Unicode và UTF-8. Năm 2002, phiên bản Perl 5.8 ra đời cùng với nhiều cải tiến mới đƣợc bổ sung. 2.2.1.2. Ứng dụng [6] Perl đƣợc dùng để xử lý tập tin, truy cập dữ liệu và đƣợc dùng cho giao diện cổng chung (Common Gateway Interface – CGI), tiến hành tạo script của Microsoft Windows, tạo giao diện ngƣời dùng đồ họa (graphical user interface – GUI). Ƣu điểm: là ngôn ngữ dễ nắm bắt, thích hợp cho xử lý chuỗi và văn bản thuần túy, đƣợc sự hổ trợ của nhiều hệ điều hành. Vì vậy, Perl là ngôn ngữ lập trình thích hợp cho các nhà tin – sinh học vì nó có thể giúp cho việc thao tác trên các chuỗi trình tự sinh học, tạo CSDL sinh học dễ dàng hơn. Ngoài ra, Perl còn đƣợc sự hỗ trợ module (tập các hàm) giúp kết nối, truy xuất CSDL với trang Web, tạo ra trang web động. Nhƣợc điểm: chỉ có thể dùng để viết các chƣơng trình, script nhỏ. 2.2.1.3. Một số module của Perl thƣờng đƣợc sử dụng [20, 21] Mudule CGI (Common Gateway Interface – CGI) của Perl: do Lincoln D. Stein viết và bổ sung, nâng cấp thêm các tính năng từ version 1.44 đến version 3.04. Module này gồm các hàm giúp viết kịch bản Perl theo giao thức CGI. Các script này giúp lấy thông tin từ trình diệt khách gởi đến máy chủ, đƣa vào chƣơng trình sử lý và đƣa lại thông tin kết quả đến máy khách. Module DBI (Database Interface) của Perl: là tập các hàm, biến và những qui ƣớc cần thiết cho việc tƣơng tác với một CSDL nhất định thông qua Perl script, hoàn toàn độc lập với hệ quản trị CSDL (do tác giả của DBI, Tim Bunce, định nghĩa). 8 Những tƣơng tác có thể nhập, nâng cấp, xử lý, rút trích,…dữ liệu vào hay ra khỏi CSDL. Phiên bản hiện tại là 1.48. Module DBD (Datadbase Driver) của Perl: là một module phụ thuộc loại hệ quản trị CSDL và liên kết với module BDI để truy cập vào một loại hệ quản trị CSDL nhất định. Nhƣ vậy tƣơng ứng với một hệ quản trị CSDL có một loại DBD. Ví dụ nhƣ hệ quản trị MySQL có Database Driver là DBD::MySQL. 2.2.2. Giới thiệu về mạng Internet [2] 2.2.2.1. Tóm lƣợc lịch sử phát triển Năm 1957, Bộ quốc phòng Mỹ thành lập cơ quan nghiên cứu các dự án kỹ thuật cao ARPA (Advanced Research Projects Agency), thuộc một bộ phận trong bộ quốc phòng. Chỉ một thập niên sau, năm 1969, ARPA thiết lập mạng ARPANET – tiền thân của Internet ngày nay. ARPANET là một mạng máy tính nối bốn máy chủ tại các trƣờng đại học California – Los Angeles, đại học California – Santa Barbara, viện nghiên cứu Standford và đại học Utah lại với nhau. Từ năm 1969 đến 1986, số lƣợng máy chủ tăng lên khoảng năm ngàn. Đến năm 1973, mạng xuyên quốc gia đầu tiên đƣợc thiết lập giữa hai nƣớc Anh và Na Uy. Năm 1982, giao thức TCP/IP ra đời và nhanh chóng trở thành giao thức chuẩn. Internet dần dần đƣợc phát triển và đột phá từ khi có sự ra đời của dịch vụ WWW (World Wide Web). Và từ đây, Internet đƣợc mở rộng sử dụng cho các ngành nghiên cứu khác và trở thành một công cụ có mụch đích thƣơng mại. P E R L S C R I P T D B I S w it c h DBD DBD DBD RDBMS RDBMS RDBMS Hình 2.1 Tƣơng tác giữa Perl script-DBI-DBD-và RBDMS RDBMS (Relational Database Management Systems): hệ quản trị CSDL quan hệ 9 2.2.2.2. Một số khái niệm Internet là một mạng toàn cầu, kết nối các mạng máy tính theo cùng một giao thức chung TCP/IP. Giao thức là cách thức đóng gói, mã hóa dữ liệu truyền trên đƣờng mạng và các qui tắc để thiết lập và duy trì quá trình trao đổi dữ liệu. Giao thức TCP/IP là giao thức dùng cho hệ mạng Internet/Intranet. 2.2.3. Web [2, 4] 2.2.3.1. Tóm lƣợt lịch sử phát triển Năm 1991, WWW đƣợc phát triển đầu tiên ở Thụy Sỹ và trở thành dịch vụ thông dụng trên mạng Internet. Tim Berners – Lee và các cộng sự tại phòng thí nghiệm Vật lý Phân tử Châu Âu đã phát minh ra giao thức truyền thông trên cơ sở các thông tin dạng siêu văn bản (Hypertext). Từ đó, một loạt các thuật ngữ lần lƣợt ra đời nhƣ webServer, webClient, webPage, webSite, URL: WebServer: máy cung cấp thông tin dạng web. WebClient: máy truy xuất thông tin từ web server. WebSite: tập hợp các trang web của một tổ chức, một website có thể có nhiều web server. WebPage: một trang tự liệu web. URL (Uniform Resource Locator) đƣờng dẫn chỉ đến một tập tin trong một máy chủ trên Internet. Để truy xuất các thông tin trên web server, các web client phải sử dụng một chƣơng trình để duyệt các thông tin này gọi là web browser. Đến năm 1993, trung tâm ứng dụng siêu máy tính quốc gia NCSA (National Center Supercomputer Application) xây dựng trình duyệt web, có tên là Mosaic, đầu tiên có giao diện đồ họa. Năm 1995, đánh dấu sự ra đời của trình duyệt Netscape và sau đó là Microsoft Internet Explorer. Các trình duyệt này cho phép truy xuất dữ liệu khu trú trên máy WWW. Hai công cụ hỗ trợ WWW là ngôn ngữ đánh dấu siêu văn bản HTML (Hypertext Markup Language) dùng để tạo ra các trang web và giao thức truyền siêu văn bản HTTP (Hypertext Transfer Protocol). 10 Tuy nhiên, các trang web này chỉ là những trang web tĩnh. Khi nhu cầu trao đổi thông tin ngƣời sử dụng và các nhà cung cấp thông tin ngày càng tăng, các trang web động dần dần thay thế các trang web tĩnh. Trang web động là trang web đƣợc tạo ra để đáp ứng các dữ liệu nhập vào của ngƣời dùng trực tiếp hay gián tiếp và trả lại kết quả thông qua sự tƣơng tác với hệ thống CSDL. Có nhiều kỹ thuật đƣợc dùng để tích hợp CSDL với web để tạo ra trang web động nhƣ CGI, PHP, ASP, JSP, Coldfusion. Trong đó: CGI (Common Gateway Interface): là kỹ thuật ra đời sớm nhất và đƣợc các nhà tin – sinh học sử dụng. Cụ thể CGI đƣợc định nghĩa là một cách thức mà web server chạy một chƣơng trình một cách cục bộ và trả lại kết quả thông qua máy server về trình duyệt web (ở máy client) của ngƣời dùng yêu cầu nội dung động. Nhiều ngôn ngữ lập trình đƣợc sử dụng để viết CGI nhƣ Perl, C, C++. ASP (Active Server Page): là kỹ thuật của Microsoft sử dụng Visual Basic hay các ngôn ngữ khác để viết, thƣờng chỉ ứng dụng trên hệ điều hành Windows. JSP (Java Server Page): là thuật ngữ dùng Java để viết, có thể chạy trên các hệ điều hành nhƣ Unix, Linux, Windows, Mac,… PHP (Hypertext Preprocessior): là dự án của Apache Software Foundation. Tƣơng tự nhƣ ASP và JSP, PHP có một tập các thẻ mã chƣơng trình đặt bên cạnh các thẻ HTML. 2.2.3.2. Tích hợp CSDL với web dùng CGI [2] Gồm ba bƣớc: Bƣớc 1: từ trình duyệt web (trên máy client) gởi đi những yêu cầu của ngƣời dùng đến máy server. Ở máy server, thông qua trình ứng dụng CGI chuyển những yêu cầu đó thành những câu truy vấn SQL. Bƣớc 2: kết nối CSDL, thực hiện những câu truy vấn đó. Bƣớc 3: thu lấy kết quả truy vấn, thông qua trình ứng dụng CGI chuyển kết quả thu đƣợc từ CSDL thành định dạng HTML, rồi trả về máy client. 11 NLM NCBI NIH Hình 2.2 Tƣơng quan giữa NCBI, NLM (National Library of Medicine và NIH) 2.3. CƠ SỞ DỮ LIỆU SINH HỌC Dữ liệu sinh học ngày càng tăng theo cấp số mũ qua các dự án giải trình tự bộ gene, do sự phát triển của kỹ thuật và thiết bị thí nghiệm nhƣ kỹ thuật DNA micro array, kỹ thuật giải trình tự tự động cho phép tạo ra hàng ngàn dữ liệu sinh học trong chốc lát. Nhƣ vậy vấn đề đặt ra là cần phải có biện pháp lƣu trữ, quản lý, sử dụng và chia sẽ nguồn dữ liệu này. Do đó cần xây dựng các dữ liệu này thành một CSDL hoàn chỉnh để có thể thực hiện đƣợc mục đích trên. Hơn thế nữa, với việc hệ thống hóa toàn bộ dữ liệu trên, chúng ta dễ dàng thực hiện việc chia sẽ những thông tin ấy qua mạng Internet hay kết nối thêm vào những tập dữ liệu ở nơi khác. Một số CSDL lớn, trực tuyến đã đƣợc xây dựng để cung cấp thông tin cho các nhà nghiên cứu sinh học nhƣ NCBI, EBI, SIB, DDBJ,… 2.3.1. NCBI (National Center for Bioinformatic Information) [22] 2.3.1.1. Vài nét về NCBI NCBI là chữ viết tắt của “Center for Bioinformatic Information”. Đây là trung tâm quốc gia về Công nghệ sinh học, thuộc viện sức khỏe quốc gia của Hoa kỳ (NIH – National Insitute of Health). NCBI chính thức đƣợc thành lập vào ngày 4/10/1988. Đến năm 1991, NCBI đảm nhiệm việc quản lý CSDL trình tự DNA và từ đó NCBI còn đƣợc gọi là GenBank. NCBI là nơi cung cấp, trao đổi thông tin về sinh học phân tử của Mỹ, thông qua những CSDL trực tuyến. Ngoài ra, NCBI còn tham gia những nghiên cứu về “sinh học tính toán” (computation biology), phát triển những công cụ phân tích dữ liệu bộ gene, protein,… 2.3.1.2. Một số cơ sở dữ liệu trong NCBI Nucleotide (GenBank): là CSDL về trình tự nucleotide. Protein: là CSDL về trình tự amino acid. Genome: trình tự toàn bộ genome của một số sinh vật. 12 Structure: hay còn có tên gọi là MMDB (Molecular Modeling Database) chứa cấu trúc ba chiều của những đại phân tử bao gồm cả protein lẫn những chuỗi nucleotide. Ngoài ra, NCBI còn một số CSDL khác. Chúng là các CSDL trung gian, đƣợc tạo thành từ sự kết hợp của hai hay nhiều CSDL trên, hay do liên kết đến các CSDL khác. 2.3.1.3. Một số công cụ trong NCBI Công cụ khai thác dữ liệu o Tìm kiếm thông tin sinh học dựa trên từ khóa có dạng văn bản: Entrez: chứa các phƣơng thức tìm kiếm nhƣ tìm kiếm dựa trên accession number, hay dựa theo tên sinh vật, tên gene, tên protein,… trên tất cả các CSDL đã đề cập ở phần 2.3.1.2. o Tìm kiếm trình tự tƣơng đồng: có phần mềm điển hình nhƣ: BLAST (Basic Local Alignment Search Tool): có BLAST Homepage là nơi cung cấp thông tin hƣớng dẫn về BLAST, chƣơng trình BLAST,… Blink: nơi hiển thị kết quả bằng BLAST trên mọi protein có trong mọi CSDL protein Entrez. Network-client BLAST: client BLAST (blastcl3) có thể thâm nhập vào bộ máy BLAST của NCBI. Blastcl3 này có thể tìm kiếm tất cả các trình tự dƣới dạng file FASTA và tạo sự gióng cột một-nhiều trình tự, sau đó lƣu dƣới dạng file text hay HTML. Ngoài ra, blastcl3 còn có thể thực hiện việc tìm kiếm trên nhiều CSDL. Stand-alone BLAST: là phần mềm có thể tải về từ NCBI. Phần mềm này thực hiện việc tìm kiếm các trình tự tƣơng tự trên CSDL trình tự cục bộ. o Phân loại sinh vật: Taxonomy Browser: công cụ thực hiện việc tìm kiếm trên CSDL Taxonomy. Taxonomy BLAST: nhóm lại những kết quả có tỉ lệ tƣơng đồng khi thực hiện BLAST, tùy thuộc vào sự phân loại của chúng trong CSDL Taxonomy. TaxTable: tóm tắt kết quả sau khi thực hiện BLAST với CSDL Taxonomy và hiển thị mối quan hệ giữa sinh vật này với sinh vật khác bằng các biểu đồ màu. 13 Công cụ phục vụ cho việc góp trình tự protein, DNA, EST, STS, …lên NCBI Sequin: phần mềm này có thể tải về từ NCBI, hổ trợ cho việc tạo ra những file văn bản (chứa trình tự, tên tác giả, bài báo,…) có cấu trúc theo khuôn mẫu. Trong phần mềm này còn kèm theo một số công cụ nhỏ nhƣ công cụ tìm khung đọc mở, công cụ gióng cột trình tự,… phần mềm này thích hợp cho việc góp nhiều trình tự cùng một lúc. NCBI còn tích hợp khá nhiều những công cụ, phần mềm phân tích trình tự DNA, protein nhƣ: BanklIt, ORF Finder, Electronic-PCR (e-PCR), VecScreen, Homologene, COGs, COGnitor, GEO, MGC, Clone Registry, CDD, LocusLink,… 2.3.2. EBI (European Bioinformatics Insiture) [23] 2.3.2.1. Vài nét về EBI EBI là viện Tin - sinh học của Cộng đồng chung Châu Âu, EBI đặt tại Welcome Trust Genome Campus nƣớc Anh, thành lập năm 1992. EBI bắt nguồn từ EMBL (European Molecular Biology Laboratory). EBML đƣợc thành lập năm 1980 tại phòng thí nghiệm sinh học phân tử Heidelberg của Đức và đây là CSDL trình tự nucleotide đầu tiên của thế giới. EBI phục vụ cho việc nghiên cứu trong các lĩnh vực nhƣ sinh học phân tử, di truyền, y học, nông nghiệp,… bằng cách xây dựng, duy trì những CSDL chia sẻ trực tuyến thông tin cần thiết. Bên cạnh đó, EBI còn thực hiện những nghiên cứu trong lĩnh vực Tin-sinh học và sinh học phân tử tính toán. 2.3.2.2. Một số cơ sở dữ liệu trong EBI EMBL (European Molecular Biology Laboratory): còn đƣợc gọi là EMBL- BANK chứa CSDL về trình tự DNA, RNA. MSD (Macromolecular Structure Database): chứa thông tin cấu trúc của các đại phân tử sinh học nhƣ protein, DNA, RNA,… ArrayExpress: tích trữ nguồn dữ liệu về sự biểu hiện của gene dựa trên kỹ thuật microArray. TrEMBL (Translate EMBL): là cơ sở dữ liệu về protein. Do lƣợng trình tự này ngày càng nhiều và để quản lý tốt hơn, TrEMBL đã kết hợp với Swiss-Prot (CSDL 14 Cơ sở dữ liệu về protein của Thụy Sỹ đặt tại Genva Cơ sở dữ liệu về protein của trƣờng đại học Y Georgetown (Mỹ) Hình 2.3 Một số cơ sở dữ liệu trong EBI về trình tự protein của Thụy Sỹ), PIR (CSDL về protein của trƣờng đại học Y Georgetown, Hoa Kỳ) tạo thành CSDL UniProt. Ngoài ra, EBI còn một số CSDL khác. Chúng là các CSDL trung gian, đƣợc tạo thành từ sự kết hợp của hai hay nhiều CSDL trên, hay do liên kết đến CSDL khác 2.3.2.3. Một số công cụ hỗ trợ phân tích trình tự sinh học FASTA: Do Smith và Waterman tạo ra năm 1981, là chƣơng trình tìm kiếm những trình tự tƣơng đồng, có thể là trình tự DNA hay trình tự protein, trong CSDL đã chọn. BLAST: chủ yếu là phần mềm WU-BLAST (Washington University Bacis Local Alignment Tool version 2.0). Đặc điểm chính của công cụ này là tìm kiếm vùng trình tự tƣơng đồng nhanh chóng. ClustalW: là công cụ dành cho việc sắp gióng cột ở hai hay nhiều trình tự sinh học (cả protein và DNA), công cụ này cho ra kết quả có ý nghĩa sinh học cao. 15 2.3.3. SIB (Swiss Insitute of Bioiformatics) [32] Là viện Tin-sinh học của Thụy Sỹ đặt tại Genva, nơi cung cấp dịch vụ trên web chất lƣợng cao cho cộng đồng khoa học thế giới qua trang ExPASy (Expert Protein Analyis System). Một số CSDL trong ExPASy: SWISS-PROT: là CSDL protein, đƣợc thành lập năm 1986. Nhƣng kể từ năm 1987, SWISS-PROT liên kết với EBI. SWISS-2DPAGE (2-dimensional polyacrylamide gel electrophoresis database): chứa dữ liệu điện di hai chiều từ protein của ngƣời, chuột, E.coli,… PROSITE: tích trữ về các họ protein có cùng chức năng. ENZYME (enzyme nomenclature): cung cấp thông tin về danh pháp của enzyme. SWISS-3DIMAGE: lƣu trữ hình ảnh chất lƣợng cao của các đại phân tử sinh học đã biết cấu trúc không gian ba chiều. 2.3.4. DDBJ (DNA Data Bank Japan) và PDBj (Protein Database Japan) [25] DDBJ là CSDL về trình tự DNA của Nhật Bản, chính thức đi vào hoạt động năm 1986, đặt tại viện di truyền quốc gia (NIG). Đến năm 2001, trung tâm thông tin về sinh học ở NIG đƣợc tổ chức lại với cái tên là CIB (Center Information Biology) kết hợp với DDBJ, viết tắt CIB/DDBJ. PDBj là CSDL của Nhật Bản, tích trữ dữ liệu về cấu trúc, chức năng protein. DDBJ của Nhật Bản, EMBL của Châu Âu, NCBI của Hoa Kỳ là ba CSDL về trình tự nucleotide lớn, mang tính chất toàn cầu và ba cơ sở dữ liệu này có sự hợp tác, trao đổi qua lại dữ liệu. Từ đó càng làm cho dữ liệu về trình tự nucleotide trở nên phong phú hơn. . phân tích dữ liệu bộ gene, protein,… 2 .3. 1.2. Một số cơ sở dữ liệu trong NCBI Nucleotide (GenBank ): là CSDL về trình tự nucleotide. Protein: là CSDL về trình tự amino acid. Genome: trình tự. sở dữ liệu về protein của Thụy Sỹ đặt tại Genva Cơ sở dữ liệu về protein của trƣờng đại học Y Georgetown (Mỹ) Hình 2 .3 Một số cơ sở dữ liệu trong EBI về trình tự protein của Thụy Sỹ), PIR. (Translate EMBL ): là cơ sở dữ liệu về protein. Do lƣợng trình tự này ngày càng nhiều và để quản lý tốt hơn, TrEMBL đã kết hợp với Swiss-Prot (CSDL 14 Cơ sở dữ liệu về protein