[ The Open Bioinformatics Foundation | BioPerl | BioJava | BioPython | BioRuby | BioPipe | BioSQL | OBDA | MOBY | DAS | BioPathways | EMBOSS | ... ]BioRuby : Open-source Bioinformatics LibraryNaohisa Goto , Mitsuteru C. Nakao , Shuichi Kawashima , Toshiaki Katayama , Minoru Kanehisa
1231 Genome Information Research Center, Osaka University

232 Human Genome Center, Institute of Medical Science, University of Tokyo

3 Bioinformatics Center, Institute for Chemical Research, Kyoto University+ various contributors on the Internet

E-mail: <staff@bioruby.org>

SummaryBioRuby is an open-source project which aims to provide a reusable library for biological tasks for the Ruby language. Ruby is aninterpreted object-oriented scripting language wih a simple and powerful syntax and native object-oriented programming support. Ruby wasstarted by a Japanese author and is now accepted not only by Japanese but also by many professional programmers around the world as ahighly productive language.
Ruby has many advantageous features to process text files and for system management tasks, which are frequently needed forbioinformatics tools. Compared to other languages, it has native support for object-oriented programming with a simple but powerful syntax,
with which we can easily describe and manipulate complicated biological data structures efficiently. These are the main reason why wedecided to implement a bioinformatics library in Ruby, even though BioPerl, BioJava, and BioPython were developed previously.
BioRuby project was started in late 2000, and is still in progress. Currently, in version 0.5.3 (latest release), there are over 80 files and 15,000
lines (except comment-only lines). BioRuby is available as free software and is licensed under the LGPL.

History(1995/12/21 Ruby language (0.95) was opened to public (fj.sources))
2000/11/21 BioRuby project started
2001/03/18 mailing list started
2001/06/21 bioruby-0.1
2001/07/19 ISMB/BOSC2001 lightning talks
2001/10/24 bioruby-0.3 w/ CVS repository
2002/01-02 BioHackathon w/ BioFetch server
2002/12/16 GIW2002 software demonstration
2003/01/28 bioruby-0.4.0 released
2003/02/17 BioHackathon 2003
2003/06/25 bioruby-0.5.0 released
2003/06/27 ISMB/BOSC2003 talks
2003/07/16 bioruby-0.5.1 released
2003/08/22 bioruby-0.5.2 released
2003/10/13 bioruby-0.5.3 released

http://bioruby.org/

Classes in BioRuby
Basic data structures

NEW

Bio::Sequence::NA
Bio::Sequence::AA
Bio::Locations
Bio::Features
Bio::Reference
Bio::Relation
Bio::Pathway
Bio::Alignment

Databases and sequence file formats

Nucleic acid sequences
Amino acid sequences
LocationsAnnotations
Literatures
Graphs / Relations
Pathways
Alignments

NEWNEW

Wrappers and parsers for bioinformatics tools

NEWNEW
NEW
NEW
NEW
NEW
NEW

Bio::FastaFormat
FASTA format
Bio::Registry
OBDA Registry service
Bio::GenBank
GenBank / DDBJ
Bio::SQLOBDA BioSQL RDB schema
Bio::EMBL
EMBLBio::Fetch
OBDA BioFetch via HTTP
Bio::SPTR
SwissProt and TrEMBL
Bio::FlatFileIndex OBDA flat file indexing system
Bio::NBRF
PIR
Bio::FlatFile
Flat file reader with data
Bio::PDB
Protein Data Bank
format autodetection
Bio::PROSITEPROSITE motifs
Bio::PubMed
NCBI PubMed service
Bio::AAindex
AAindex
Bio::DASDistributed Annotation System
Bio::GOGene Ontology
Bio::KEGG::API SOAP/WSDL interface in KEGG
Bio::GFF
General Feature Format
Bio::DDBJ::XML DDBJ web services
Bio::KEGG::GENES
KEGG GENES
Command-line applications
Bio::KEGG::GENOME
KEGG Genomes
biogetseq OBDA Resistry sequence retrieval
Bio::KEGG::KO
KEGG Orthorogy
biofetch OBDA BioFetch sequence retrieval
Bio::KEGG::ENZYMEKEGG enzyme
bioflatCreates/searches ODBA flat file index
Bio::KEGG::COMPOUND KEGG compound
Bio::KEGG::CELL
KEGG CELL
Bio::KEGG::Microarrays KEGG microarrays
Sample / Miscellaneous
Bio::KEGG::BRITE
Biomolecular Reactions
goslim.rb GO slim histgram
Bio::LITDB
Protein/peptide literature databasetdiary.rb
Plug-in for tDiary
Bio::TRANSFAC
The transcription factor database: newly added in 2003
Bio::FANTOM
Functional annotation of mouse: significant improvement
Bio::MEDLINEMEDLINE bibliographic database(Some classes are not listed here.)
NEWNEW

updatedFile, network, and database I/O

NEW

Bio::Blast
BLAST (similarity search)
Bio::Fasta
FASTA (similarity search)
Bio::HMMER HMMER (similarity search)
Bio::ClustalW CLUSTAL W (multiple alignment)
Bio::MAFFT MAFFT (multiple alignment)
Bio::PSORTPSORT (protein subcellular localization)
Bio::TargetP TargetP (protein subcellular localization)
Bio::SOSUI
SOSUI (transmembrane helix prediction)
Bio::TMHMM TMHMM (transmembrane helix prediction)
Bio::GenScan GenScan (gene finding)
Bio::EMBOSS EMBOSS (analysis package)

NEWNEWNEWNEW

NEWNEW

NEW

NEW

updatedSample codes
Sequence manipulation#!/usr/bin/env rubyrequire 'bio'
gene = Bio::Sequence::NA.new("ggtatctgg")
puts gene.complement# --> "ccagatacc"
puts gene.composition# --> {"a"=>1,"c"=>1, ...
puts gene.gc# --> 55.6
prot = gene.translate# --> Bio::Sequence::AA
puts prot# --> "GIW"
puts prot.molecular_weight # --> 374.45

Flat file database access

Entry fetch by OBDA#!/usr/bin/env rubyrequire 'bio'
ff = Bio::FlatFile.auto("gbbct1.seq")
ff.each do |gb|
gb.each_gene do |f|
pos = f.position
title = gb.entry_id + pos
puts gb.seq.splicing(pos).to_fasta(title)end
end#!/usr/bin/env rubyrequire 'bio'
registry = Bio::Registry.new
db = registry.db("swissprot")puts db.fetch("TETW_BUTFI")'bioflat' command% bioflat --create --location ./ \--dbname gbphg \gbphg.seq% bioflat gbphg AB048798'biofech' command% biofetch eco b0001'biogetseq' command% biogetseq --dbname eco \b0001 b0002