Tin sinh học

Tin sinh học (bioinformatics) là một lĩnh vực khoa học sử dụng các công nghệ của các ngành toán học ứng dụng, tin học, thống kê, khoa học máy tính, trí tuệ nhân tạo, hóa học và hóa sinh (biochemistry) để giải quyết các vấn đề sinh học. Một thuật ngữ thường được dùng thay thế cho tin sinh học là sinh học tính toán (computational biology). Tuy nhiên, tin sinh học thiên về việc phát triển các giải thuật, lý thuyết và các kĩ thuật thống kê và tính toán để giải quyết các bài toán bắt nguồn từ nhu cầu quản lý và phân tích dữ liệu sinh học. Trong khi đó, sinh học tính toán thiên về kiểm định các giả thuyết (hypothesis) được đặt ra của một vấn đề trong sinh học nhờ máy tính thực nghiệm trên dữ liệu mô phỏng, với mục đích chính là phát hiện và nâng cao tri thức về sinh học (ví dụ: dự đoán mối quan hệ tương tác giữa các protein, dự đoán cấu trúc bậc 2 phân tử của protein, v.v.).

Do đó, các nghiên cứu trong ngành sinh học tính toán (computational biology) thường trùng lặp với sinh học hệ thống (systems biology). Những lĩnh vực nghiên cứu chính của nó bao gồm bắt cặp trình tự (sequence alignment), bắt cặp cấu trúc protein (protein structural alignment), dự đoán cấu trúc protein (protein structure prediction), dự đoán biểu hiện gene (gene expression) và tương tác protein - protein (protein-protein interactions), và mô hình hóa quá trình tiến hoá. Thuật ngữ tin sinh học và sinh học tính toán thường được dùng hoán đổi cho nhau, mặc dù cái trước, nói một cách nghiêm túc, là tập con của cái sau. Những mối quan tâm chính trong các dự án tin sinh học và sinh học tính toán là việc sử dụng các công cụ toán học để trích rút các thông tin hữu ích từ các dữ liệu hỗn độn được thu nhận từ các kĩ thuật sinh học với lưu lượng mức độ lớn. (Lĩnh vực khai phá dữ liệu (data mining) trùng lắp với sinh học tính toán về phương diện này.) Những bài toán đặc trưng trong sinh học tính toán bao gồm việc lắp ráp (assembly) những trình tự DNA chất lượng cao từ các đoạn ngắn DNA được thu nhận từ kỹ thuật xác định trình tự DNA (shotgun sequencing), và việc dự đoán quy luật điều hòa gene (gene regulation) với dữ liệu từ các mRNA, microarray hay khối phổ (mass spectrometry).

Các lĩnh vực nghiên cứu chính

Genomics - Hệ gene học
Phân tích trình tự
Bài chính: Bắt cặp trình tự, CSDL trình tự

Kể từ khi bộ gene của Phage Φ-X174 được xác định trình tự (1977) cho đến nay, trình tự DNA của rất nhiều loài sinh vật đã được lưu trữ trong các ngân hàng cơ sở dữ liệu gene. Những dữ liệu này sẽ được phân tích để tìm ra những gene cấu trúc (gene mã hoá cho một protein nào đó), cũng như tìm ra quy luật của những trình tự tương đồng giữa các protein). Việc so sánh các gene trong cùng một loài hay giữa các loài khác nhau có thể cho thấy sự tương đồng về chức năng của protein, hay mối quan hệ phát sinh chủng loài giữa những loài này (thể hiện trên cây phát sinh chủng loài (phylogenetic tree)). Với sự tăng trưởng khổng lồ của dữ liệu loại này, việc phân tích trình tự DNA một cách thủ công trở nên không thể thực hiện nổi.

Ngày nay, các chương trình máy tính được sử dụng để giúp tìm các trình tự tương đồng trong bản đồ gen (genome) của hàng loạt sinh vật, với số lượng nucleotide trong trình tự lên đến hàng tỉ. Những chương trình này có thể tìm kiếm những trình tự DNA không giống nhau hoàn toàn do các đột biến nucleotide (thay thế, mất hay thêm các gốc base). Những giải thuật bắt cặp trình tự (sequence alignment) cũng được áp dụng ngay cả trong quá trình xác định trình tự DNA, là kỹ thuật xác định trình tự đoạn nhỏ (shotgun sequencing). (Kỹ thuật này đã được công ty Celera Genomics sử dụng để xác định trình tự genome của vi khuẩn Haemophilus influenza.) Kỹ thuật xác định trình tự hiện nay không thể tiến hành với cả đoạn trình tự DNA lớn (cỡ vài chục nghìn nucleotide trở lên) nên người ta sử dụng xác định trình tự nhỏ để giải mã hàng nghìn đoạn trình tự với kích thước khoảng 600 - 800 nucleotide. Sau đó, những đoạn trình tự nhỏ này sẽ được sắp xếp thứ tự và nối lại với nhau (thông qua việc bắt cặp trình tự ở những đầu gối lên nhau (overlap)) tạo thành một trình tự genome hoàn chỉnh.

Kỹ thuật xác định trình tự đoạn nhỏ tạo ra chuỗi dữ liệu một cách nhanh chóng, nhưng nhiệm vụ sắp xếp lại các mảnh DNA có thể là khá phức tạp cho các genome lớn. Trong trường hợp dự án bản đồ gen người (Human Genome Project), các nhà tin sinh học phải mất cả hàng tháng đồng thời sử dụng hàng loạt siêu máy tính (các máy DEC Alpha ra đời năm 2000) để sắp xếp đúng trình tự ngắn lại.
Xác định trình tự đoạn nhỏ là kỹ thuật ưu tiên sử dụng trong hầu hết các dự án giải mã genome hiện nay và giải thuật lắp ráp genome (genome assembly algorithms) là một trong những lĩnh vực nóng của tin sinh học.

Một khía cạnh khác của tin sinh học trong việc phân tích trình tự là việc tìm kiếm tự động các gen và những trình tự điều khiển bên trong một genome. Không phải là tất cả nucleotides bên trong một genome đều là gene. Phần lớn các DNA bên trong genome của các sinh vật bậc cao là các đoạn DNA không phục vụ cho một nhiệm vụ cụ thể nào (hoặc do khoa học hiện nay chưa nhận ra) được gọi là những đoạn DNA rác (junk DNA). Tin sinh học còn giúp kết nối dữ liệu giữa các dự án genomics và proteomics, ví dụ việc sử dụng trình tự DNA để nhận dạng protein.

Xem thêm: phân tích trình tự, công cụ định danh chuỗi (sequence profiling tool), trình tự motif.

Chỉ định Genome
Bài chính: Tìm kiếm gene

Về phía lĩnh vực gen chuyên về nghiên cứu bản đồ gen (genomics), annotation là quá trình đánh dấu các gen và các đặc tính sinh học (biological features) khác trong một chuỗi DNA. Hệ thống phần mềm làm nhiệm vụ "genome annotation" đầu tiên đã được thiết kế vào năm 1995 bởi Owen White, anh thuộc nhóm đảm nhiệm việc sắp xếp trình tự và phân tích bản đồ gen đầu tiên của các sinh vật tự do (free-living organism) để giải mã, khuẩn Haemophilus influenzae. Dr. White đã xây dựng hệ thống phần mềm này để tìm kiếm các gen (nằm trong chuỗi DNA nhằm nhiệm vụ mã hóa các proteine), RNA chuyển vận (transfer RNA), và các chức năng khác, và để tạo các chức năng đầu tiên cho các gen đó. Hầu hết các hệ thống genome annotation hiện nay đều hoạt động tương tự, nhưng các chương trình nhằm để phân tích lãnh vực nghiên cứu bản đồ gen DNA (genomic DNA) thì thường xuyên thay đổi và được cải tiến. Hệ thống Ensembl là hệ thống genome annotation pipeline cho bản đồ gen người được phát triển bởi Ewan Birney tại viện Sanger (The Sanger Institute) gần Cambridge, Anh.

Dò tìm đột biến và SNP

Rất nhiều các nghiên cứu xác định trình tự (sequencing) hiện nay là nhằm tìm ra các đột biến điểm (point mutation) xảy ra trên các gene khác nhau trong ung thư. Tập sơ khởi (sheer volume) các dữ liệu được tạo ra đòi hỏi các hệ thống tự động đọc những dữ liệu kiểu chuỗi này (sequence data), rồi so sánh trình tự kết quả với các trình tự đã biết trên genome người, bao gồm cả những điểm đa hình trên tế bào dòng tinh (germline) đã biết.

Những hệ thống oligonucleotide microarray, bao gồm những hệ thống dùng để phát hiện điểm đa hình đơn nucleotide (single nucleotide polymorphism) hoặc khảo sát tính dị biệt so sánh genome (comparative genomic hybridization), với khả năng cho phép nghiên cứu đồng thời hàng trăm ngàn vị trí trên toàn bản đồ gen đang được sử dụng để xác định những đột biến thêm và mất đoạn nhiễm sắc thể trong quá trình hình thành ung thư. Mô hình chuỗi Markov ẩn (Hidden Markov Model) và phương pháp phân tích điểm thay đổi (change-point analysis) đang được phát triển để có thể suy ra số lượng thực của những thay đổi từ các dữ liệu hỗn độn (noisy data). Các phương pháp tiếp cận thông tin vẫn đang được phát triển để có thể phát hiện những thương tổn DNA đã trùng hợp xảy ra trên nhiều dạng ung thư.

Sinh học tiến hoá
Phân loại học phân tử
Sinh học tiến hoá (Evolutionary biology) là ngành học nghiên cứu tổ tiên, hậu duệ cũng như quá trình phát triển của các chủng loài theo thời gian. Những phát triển gần đây trong lĩnh vực xác định trình tự gen và sự phổ biến các máy tính tốc độ cao cho phép các nhà nghiên cứu theo dõi sự tiến hoá của các loài dựa trên những thay đổi trong trình tự DNA. Tiến hóa học máy tính (Computational Evolutionary Biology, CEB) đã ra đời trước kỷ nguyên hệ gene học (genomics) nghiên cứu xây dựng các mô hình tính toán quần thể và sự biến thiên của chúng theo thời gian.

Tiếp cận vấn đề theo chiều hướng ngược lại với CEB --- thay vì sử dụng các chương trình máy tính để điều tra quá trình tiến hoá, lĩnh vực giải thuật di truyền (genetic algorithm) tìm cách tối ưu hóa những chương trình máy tính thông qua các nguyên lý tiến hoá (evolutionary principles).

Bảo tồn đa dạng sinh học
Tin sinh học thường áp dụng trong lĩnh vực bảo tồn đa dạng sinh học (biodiversity). Thông tin quan trọng nhất được thu thập chính là tên, miêu tả, sự phân bố, trạng thái và kích thước dân số của các chủng loài (species), nhu cầu thói quen (habitat) và cách mà mỗi tổ chức tương tác với các chủng loài khác. Thông tin này được lưu trữ vào trong cơ sở dữ liệu các máy tính, được truy xuất bởi các chương trình phần mềm để tìm kiếm, hiển thị, phân tích các thông tin đó một cách tự động, và quan trọng nhất, là để giao tiếp được với con người, đặc biệt qua internet. Các chuỗi DNA của các loài sắp tuyệt chủng có thể được bảo quản, và tên cùng miêu tả của mỗi loài đang bị giam giữ được lưu lại để có thể cho phép truy xuất tối đa đến các thông tin cần cho việc bảo tồn đa dạng sinh học.

Một ví dụ của ứng dụng này là dự án Species 2000 . Nó là một dự án nghiên cứu toàn cầu dựa vào internet để giúp cung cấp thông tin về mỗi chủng loài được biết đến của cây, động vật, nấm (fungus), và vi khuẩn (microbe) còn tồn tại để làm nền tảng cho việc nghiên cứu đa dạng sinh học toàn cầu. Bất cứ ai trên thế giới cũng có thể tìm thấy lượng lớn thông tin về bất kì chủng loài nào từ các cơ sở dữ liệu cung cấp.

Phân tích chức năng gene
Mức độ biểu hiện gene

Nhà sinh học phân tử có thể đánh giá mức độ biểu hiện của một gene bằng cách xác định lượng mRNA được tạo ra từ gene đó thông qua các kỹ thuật như microarray, EST (expressed sequence tag), SAGE (Serial Analysis of Gene Expression), MPSS (massively parallel signature sequencing), hay khối phổ (định lượng protein). Tất cả những kĩ thuật trên đều tạo ra những dữ liệu chứa thông tin nhiễu (noise-prone) làm việc tính toán, phân tích trở nên phức tạp. Yêu cầu thực tế đó đã cho ra đời một lĩnh vực mới trong sinh học tính toán là phát triển các công cụ thống kê để lọc tín hiệu xác đáng khỏi thông tin nhiễu trong những nghiên cứu biểu hiện gene đa lượng (high-throughput gene expression). Các nghiên cứu này thường dùng để xác định các gene liên quan đến một bệnh lý nhất định, người ta có thể so sánh dữ liệu microarray từ những tế bào bị ung thư với tế bào bình thường để xác định những protein nào được tăng cường hay giảm thiểu do ung thư.

Dữ liệu biểu hiện gene cũng được dùng để nghiên cứu điều hòa gen, người ta có thể so sánh dữ liệu microarray của một sinh vật ở những trạng thái sinh lý khác nhau từ đó kết luận về vài trò của từng gen tham gia vào mỗi trạng thái. Đối với sinh vật đơn bào, ta có thể so sánh các giai đoạn khác nhau của chu kỳ tế bào (cell cycle), hay phản ứng của cơ thể ở những điều kiện stress (stress sốc nhiệt, stress đói dinh dưỡng,.v.v.). Người ta cũng có thể áp dụng giải thuật phân nhóm (clustering algorithms) đối với những dữ liệu biểu hiện để xác định những nhóm gene đồng biểu hiện, hay đơn vị điều hòa (regulon). Những phân tích tiếp theo có thể triển khai theo nhiều hướng, ví dụ phân tích trình tự promoter của những nhóm gene để xác định nhân tố điều hòa chung hoặc sử dụng các công cụ máy tính để dự đoán những promoter liên quan đến cơ chế điều hòa từng nhóm gene (tham khảo ).

Nhận diện protein
Bài chính: Nhận diện chuỗi polypeptide

Protein microarray và hệ thống khối phổ cao năng (high throughput mass spectrometry) có thể cung cấp hình ảnh (snapshot) tổng thể của các protein hiện có trong một mẫu sinh học (biological sample). Các ứng dụng tin sinh học có liên quan rất nhiều đến việc lý giải các dữ liệu thu được từ những hệ thống này. Đối với protein microarray, những nhà tin sinh học cần chuyển kiểm tra dữ liệu mRNA gắn trên array. Trong khi đó, những vấn đề tin sinh học liên quan đến việc so trùng (matching) dữ liệu khối phổ với cơ sở dữ liệu về trình tự protein.

Dự đoán cấu trúc protein
Bài chính: Dự đoán cấu trúc protein

Dự đoán cấu trúc là một ứng dụng quan trọng nữa của tin sinh học. Có thể dễ dàng xác định trình tự amino acid hay còn gọi là cấu trúc bậc một của protein từ trình tự gene mã hóa cho nó. Nhưng, protein chỉ có chức năng vốn có khi nó cuộn gấp thành hình dạng chính xác (nếu điều này xảy ra ta có cấu trúc bậc hai, cấu trúc bậc ba và cấu trúc bậc bốn). Tuy nhiên, sẽ là vô cùng khó khăn nếu chỉ dự đoán các cấu trúc gấp nếp này từ trình tự amino acid. Một số phương pháp dự đoán cấu trúc bằng máy tính hiện đang phát triển.

Một trong các ý tưởng quan trọng trong nghiên cứu tin sinh học là quan điểm tương đồng. Trong một nhánh genomic của tin sinh học, tính tương đồng được sử dụng để dự đoán cấu trúc của gene: nếu biết trình tự và chức năng của gene A và trình tự này tương đồng với trình tự của gene B chưa biết chức năng thì có thể kết luận là A và B có cùng chức năng. Trong nhánh cấu trúc của tin sinh học, tính tương đồng được dùng để xác định những hợp phần quan trọng trong cấu trúc của protein cũng như tương tác của nó với các protein khác. Với kỹ thuật mô phỏng tính tương đồng (homology modelling), thông tin này được dùng để dự đoán cấu trúc của một protein khi đã biết cấu trúc của một protein khác tương đồng với nó. Hiện tại đây là cách dự đoán cấu trúc protein đáng tin cậy nhất.

Một ví dụ là hemoglobin ở người và hemoglobin của các cây họ đậu (leghemoglobin) khá tương đồng với nhau. Cả hai đều có vai trò vận chuyển oxy. Mặc dù trình tự amino acid hoàn toàn khác nhau, cấu trúc của chúng trên thực tế lại đồng nhất cho thấy rằng chúng hầu như có cùng một chức năng.

Các kỹ thuật dự đoán cấu trúc protein khác là protein threading và de novo (from scratch) physics-based modeling.

Xem thêm: motif cấu trúc

Các hệ thống sinh học kiểu mẫu
Bài chính: sinh học hệ thống

Sinh học hệ thống bao gồm việc sử dụng khả năng mô phỏng bằng máy tính (computer simulation) các hệ cơ quan tế bào cellular (như mạng các metabolites và enzyme, chúng bao gồm các metabolism, signal transduction pathways và gene regulatory networks) để có thể phân tích và hiển thị hoá (visualize) việc kết nối phức tạp của các quá trình tế bào này. Sự sống nhân tạo (Artificial life) hay tiến hoá ảo nỗ lực nhằm tìm hiểu quá trình tiến hoá thông qua việc mô phỏng bằng máy tính các dạng sự sống (nhân tạo) đơn giản.

Phân tích hình ảnh mức độ cao

Các kĩ thuật tính toán cũng được dùng để tăng tốc độ hoặc giúp tự động hoàn toàn quá trình xử lý, định lượng và phân tích một lượng lớn các hình ảnh sinh học có chứa-thông-tin-cao. Các hệ thống xử lý ảnh hiện đại tăng cường khả năng quan sát để giúp cho việc tính toán từ một tập lớn và phức tạp các hình ảnh, bằng cách cải tiến độ chính xác, tính khách quan, hay tốc độ. Một hệ thống phân tích được phát triển hoàn thiện có thể hoàn toàn thay thế người quan sát. Trong khi những hệ thống này không chỉ duy nhất phục vụ cho các ảnh liên quan đến sinh học, ứng dụng của chúng đối với các vấn đề sinh học vẫn tiếp tục tìm các giải pháp và là một thách thức, nhằm đưa nhiều ứng dụng xử lý ảnh về cùng thuộc lĩnh vực tin sinh học. Những hệ thống này đang dần trở thành quan trọng đối với cả chẩn đoán và nghiên cứu. Một vài ví dụ là:

Định lượng với tốc độ cao, độ tin cậy cao và xác định vị trí các tế-bào-con (hiển thị hình ảnh giàu nội dung (high-content screening), cytohistopathology)
Động học hình thái (Morphometrics) được dùng để phân tích các hình ảnh về quá trình phát triển của phôi nhằm theo dõi và dự đoán số phận của từng cụm tế bào (cell cluster) trong suốt quá trình phát sinh hình thái (morphogenesis).
Phân tích và hiển thị hình ảnh các hình ảnh lâm sàng
Xác định các mẫu dòng khí trong phổi của mỗi sinh vật sống tại thời gian thực
Định lượng mức độ lưu giữ trong các hình ảnh thời gian thực từ sự phát triển và hồi phục trong suốt thời gian tổn thương động mạch (arterial injury)
Đưa ra các quan sát về sự xử sự từ các đoạn phim được thu lại của các động vật thí nghiệm
Đo đạc bằng tia hồng ngoại để xác định các hoạt động trao đổi chất

Công cụ phần mềm

Một trong các công cụ dùng trong sinh học tính toán (computational biology) nổi tiếng nhất là BLAST, một giải thuật để tìm kiếm những trình tự nucleic acid hoặc protein tương đồng lưu trữ trên các cơ sở dữ liệu. Ba nguồn cơ sở dữ liệu công cộng lớn nhất về trình tự DNA và protein (thường được gọi là ngân hàng gene (ngân hàng cơ sở dữ liệu gene) là NCBI, EMBL và DDBJ.

Các ngôn ngữ lập trình của máy tính như Perl và Python thường được dùng để giao tiếp (interface) và ly trích (parse) dữ liệu từ các ngân hàng cơ sở dữ liệu sinh học (biological database) thông qua những chương trình tin sinh học (bioinformatics program). Cộng đồng những lập trình viên tin sinh học đã triển khai nhiều dự án phần mềm mã nguồn mở (free/open source) như EMBOSS, Bioconductor, BioPerl, BioPython, BioRuby và BioJava. Điều này giúp cho việc chia sẻ, phát triển và phổ biến các công cụ lập trình và tài nguyên lập trình (programming objects) giữa các nhà tin sinh học.

Xem thêm
Biologically-inspired computing
Morphometrics
Metabolic network
Important publications in bioinformatics

Môn học liên quan
Toán ứng dụng
Sinh học
Khoa học máy tính
Tin học
Toán sinh học (biomathematics)
Sinh học lý thuyết
Lý sinh học

Hình ảnh

Tập tin:Genome viewer screenshot small.png

Tham khảo
R. Durbin, S. Eddy, A. Krogh and G. Mitchison, Biological sequence analysis. Cambridge University Press, 1998. ISBN 0-521-62971-3
Kohane, et al. Microarrays for an Integrative Genomics. The MIT Press, 2002. ISBN 0-262-11271-X
Mount, David W. "Bioinformatics: Sequence and Genome Analysis" Spring Harbor Press, May 2002. ISBN 0-87969-608-7
JM. Claverie, C. Notredame, Bioinformatics for Dummies. Wiley, 2003. ISBN 0-7645-1696-5

Liên kết ngoài
Human Genome Project and Bioinformatics
Bioinformatics journal
BMC Bioinformatics journal
Genome Canada: Canadian Bioinformatics Help Desk
The OpenScience Project
Biohealthmatics.com
Bioinformatics News
Books and articles on Bioinformatics from O'Reilly

Dự án phần mềm
BIOMAP Project – Creating a Unified Global Map of various Macromolecular Biological Structures
Proteome Ontology Project – an effort to build a protein ontology specification, part of the BIOMAP Project
Bioinformatics.org – cổng giao tiếp và nơi lưu trữ các phần mềm tin sinh học mã nguồn mở

Bioconductor
BioJava
BioPerl
BioPython
BioRuby
EMBOSS
EnsEMBL
The Generic Model Organism Database Project (GMOD)

Tổ chức
European Bioinformatics Institute
National Center for Biotechnology Information
European Molecular Biology Laboratory
Open Bioinformatics Foundation – umbrella non-profit organization focused on supporting open source programming in bioinformatics
The International Society for Computational Biology

Thư mục
Bioinformatics.ca: một cổng điện tử của các hoạt động tin sinh học tại Canada
Bioinformatics.net: thư mục các công cụ phần mềm
ColorBasePair.com: một cổng điện tử về tin sinh học
GeneFinding.Org: thư mục các hệ thống tìm kiếm gene và các công cụ liên quan
Danh sách các khóa học
Một danh sách các khóa học trên toàn thế giới .
Các khóa đào tạo tại Viện Tinh Sinh Học châu Âu.
Các khóa về Ensembl.
Các tạp chí quan trọng
Bioinformatics journal
BMC Bioinformatics journal
Cancer Informatics Open Access journal
Online Journal of Bioinformatics
Một số site quan trọng
Tin tức Tin sinh học
Tin tức Tin sinh học trực tuyến
Các sách và bài viết về Tin sinh học từ O'Reilly
Genome Canada: Trung tâm hỗ trợ về Tin sinh học Canada
Dự án Genome người và Tin sinh học
Wikiomics.org : bioinformatics wiki cho người dùng và các nhà phát triển Tin sinh học trên toàn thế giới. Tập trung vào các câu hỏi thực tiễn và hướng đến các ấn phẩm học thuật và các nguồn phần mềm (khai trương vào tháng 11 năm 2005).

Sách tham khảo
Baxevanis, A.D. and Ouellette, B.F.F., eds., Bioinformatics: A Practical Guide to the Analysis of Genes and Proteins, third edition. Wiley, 2005. ISBN 0-471-47878-4
Claverie, J.M. and C. Notredame, Bioinformatics for Dummies. Wiley, 2003. ISBN 0-7645-1696-5
Durbin, R., S. Eddy, A. Krogh and G. Mitchison, Biological sequence analysis. Cambridge University Press, 1998. ISBN 0-521-62971-3
Kohane, et al. Microarrays for an Integrative Genomics. The MIT Press, 2002. ISBN 0-262-11271-X
Michael S. Waterman, Introduction to Computational Biology: Sequences, Maps and Genomes. CRC Press, 1995. ISBN 0-412-99391-0
Mount, David W. Bioinformatics: Sequence and Genome Analysis Spring Harbor Press, May 2002. ISBN 0-87969-608-7