Bioinformatic Tools - Introduction
(Continued from previous part...)
A part of the BioPerl project, this is a resource to gather XML
documentation, DTDs and XML aware tools for biology in one location.
Interface objects have facilitated interoperability between bioperl and other
perl packages such as Ensembl and the Annotation Workbench. However,
interoperability between bioperl and packages written in other languages
requires additional support software. CORBA is one such framework for
interlanguage support, and the biocorba project is currently implementing a
CORBA interface for bioperl. With biocorba, objects written within bioperl
will be able to communicate with objects written in biopython and biojava
(see the next subsection). For more information, see the biocorba project
website at http://biocorba.org/. The Bioperl BioCORBA
server and client bindings are available in the bioperl-corba-server and
bioperl-corba-client bioperl CVS repositories respecitively. (see http://cvs.bioperl.org/
for more information).
Ensembl is an ambitious automated-genome-annotation project at EBI. Much of
Ensembl\'s code is based on bioperl, and Ensembl developers, in turn, have
contributed significant pieces of code to bioperl. In particular, the bioperl
code for automated sequence annotation has been largely contributed by
Ensembl developers. Describing Ensembl and its capabilities is far beyond the
scope of this tutorial The interested reader is referred to the Ensembl
website at http://www.ensembl.org/.
Bioperl-db is a relatively new project intended to transfer some of Ensembl's
capability of integrating bioperl syntax with a standalone Mysql database (http://www.mysql.com)
to the bioperl code-base. More details on bioperl-db can be found in the
bioperl-db CVS directory at http://cvs.bioperl.org/cgi-bin/viewcvs/viewcvs.cgi/bioperl-db/?cvsroot=bioperl.
It is worth mentioning that most of the bioperl objects mentioned above map
directly to tables in the bioperl-db schema. Therefore object data such as
sequences, their features, and annotations can be easily loaded into the
databases, as in $loader->store($newid,$seqobj) Similarly one can query
the database in a variety of ways and retrieve arrays of Seq objects. See
biodatabases.pod, Bio::DB::SQL::SeqAdaptor, Bio::DB::SQL::QueryConstraint,
and Bio::DB::SQL::BioQuery for examples.
Biopython and biojava:
Biopython and biojava are open source projects with very similar goals to
bioperl. However their code is implemented in python and java, respectively.
With the development of interface objects and biocorba, it is possible to
write java or python objects which can be accessed by a bioperl script, or to
call bioperl objects from java or python code. Since biopython and biojava
are more recent projects than bioperl, most effort to date has been to port
bioperl functionality to biopython and biojava rather than the other way
around. However, in the future, some bioinformatics tasks may prove to be
more effectively implemented in java or python in which case being able to
call them from within bioperl will become more important. For more
information, go to the biojava http://biojava.org/ and biopython http://biopython.org/