Bioperl 1.3 - Perl Modules for Biology If you're new to Bioperl, you should start reading bptutorial.pl, an overview of the Bioperl toolkit. In the style of the perl documentation, core Bioperl documentation has been split up into the following sections:

Overview
bioperl Bioperl overview (this document) biodatabases How to use databases with Bioperl biodesign A guide for authoring a Bioperl module

Tutorials
bptutorial.pl Bioperl tutorial for beginners http://www.pasteur.fr/recherche/unites/sis/formation/bioperl

References for Individual Modules
For ease of maintenance and coordination amongst contributors, bioperl code is maintained in a modular form, as is the documentation. Refer to the documentation for individual modules by using perldoc, i.e. "perldoc Bio::Seq" to get documentation for the Bio::Seq object. Bioperl is the product of a community effort to produce Perl code which is useful in biology. Examples include Sequence objects, Alignment objects and database searching objects. These objects not only do what they are advertised to do in the documentation, but they also interact - Alignment objects are made from the Sequence objects, Sequence objects have access to Annotation and SeqFeature objects and databases, Blast objects can be converted to Alignment objects, and so on. This means that the objects provide a coordinated and extensible framework to do computational biology. Bioperl development focuses on Perl classes, or code that is used to create objects representing biological entities. There are scripts provided in the scripts/ and examples/ directories but scripts are not the main focus of the Bioperl developers. Of course, as the objects do most of the hard work for you, all you have to do is combine a number of objects together sensibly to make useful scripts. The intent of the Bioperl development effort is to make reusable tools that aid people in creating their own sites or job-specific applications. The bioperl.org website at http://bioperl.org also attempts to maintain links and archives of standalone bio-related Perl tools that are not affiliated or related to the core Bioperl effort. Check the site for useful code ideas and contribute your own if possible. The Bio::Perl module is designed to flatten the learning curve for newcomers to Perl/Bioperl. This is a good place to start if you want some simple functionality. We have a cookbook tutorial in bptutorial.pl which has embedded documentation. Start there if learning-by-example suits you most, or examine the Bioperl online course at http://www.pasteur.fr/recherche/unites/sis/formation/bioperl. Make sure to check the documentation in the modules as well - there are over 900 modules in Bioperl, and counting, and there's detail in the modules' documentation that will not appear in the general documentation. The Bioperl modules are distributed as a tar file that expands into a standard perl CPAN distribution. Detailed installation directions can be found in the distribution INSTALL file. Installing on windows using ActiveState Perl is covered in the INSTALL.WIN file. The Bioperl modules can now interact with local flat file and relational databases. To learn how to set this up, look at the biodatabases.pod documentation ('perldoc biodatabases.pod' should work once Bioperl has been installed). The bioperl-db, bioperl-run, bioperl-gui, corba-server, bioperl-ext, bioperl-pipeline, bioperl-microarray and corba-client packages are installed separately from Bioperl. Please refer to their respective documentation for more information. A good place to start is by reading and running the cookbook script, bptutorial.pl. The distribution scripts/ directory has working scripts for use with Bioperl, check the self-described examples/ directory as well. A list and brief description of all these scripts is found in bioscripts.pod. You are more than welcome to contribute your script! If you have installed Bioperl in the standard way, as detailed in the INSTALL in the distribution, these scripts should work by just running them. If you have not installed it in a standard way you will have to change the 'use lib' to point to your installation (see INSTALL for details). Bioperl is a completely open community of developers. We are not funded and we don't have a mission statement. We encourage collaborative code, in particular in Perl. You can help us in many different ways, from just a simple statement about how you have used Bioperl to doing something interesting to contributing a whole new object hierarchy. See http://bioperl.org for more information. Here are some ways of helping us:

Asking questions and telling us you used it
We are very interested to hear how you experienced using Bioperl. Did it install cleanly? Did you understand the documentation? Could you get the objects to do what you wanted them to do? If Bioperl was useless we want to know why, and if it was great - that too. Post a message to bioperl-l@bioperl.org, the Bioperl mailing list, where all the developers are. Only by getting people's feedback do we know whether we are providing anything useful.

Writing a script that uses it
By writing a good script that uses Bioperl you both show that Bioperl is useful and probably save someone elsewhere writing it. If you contribute it to the 'script central' at http://bioperl.org then other people can view and use it. Don't be nervous if you've never done this sort of work, advice is freely given and all are welcome!

Find bugs!
We know that there are bugs in there. If you find something which you are pretty sure is a problem, post a note to bioperl-bugs@bioperl.org and we will get on it as soon as possible. You can also access the bug system through the web pages.

Suggest new functionality
You can suggest areas where the objects are not ideally written and could be done better. The best way is to find the main developer of the module (each module was written principally by one person, except for Seq.pm). Talk to him or her and suggest changes.

Make your own objects
If you can make a useful object we will happily include it into the core. Probably you will want to read a lot of the documentation in Bio::Root, talk to people on the Bioperl mailing list, bioperl-l@bioperl.org, and read biodesign.pod. biodesign.pod provides documentation on the conventions and ideas used in Bioperl, it's definitely worth a read if you would like to be a Bioperl developer.

Writing documentation
We appreciate good documentation. It's what tells the world what's in Bioperl, it's what instructs the user, it's what describes the rationale and inner workings of the package. Feel free to contribute. Bioperl owes its early organizational support to its association with the award-winning VSNS-BCD BioComputing Courses; some students of the 1996 course (Chris Dagdigian, Richard Resnick, Lew Gramer, Alessandro Guffanti, and others) have contributed code and commentary. Georg Fuellen, the VSNS-BCD chief organizer was one of the early driving forces behind Bioperl. Steven Brenner, who was an early adopter of Perl for bioinformatics provided some of the early work on Bioperl. Lincoln Stein has long provided guidance and code. Bioperl was then taken up by people developing code at the large genome centres. In particular Steve Chervitz at Stanford, Ian Korf at the Genome Sequencing Centre (St. Louis) and Ewan Birney at the Sanger Centre (Cambridge UK). All of the C code XS extensions were provided by Ewan Birney. Bioperl is used in anger at these sites, indicating that is both useful and that it works. Jason Stajich and Hilmar Lapp joined Bioperl for the drive towards a 0.7 release over 2000 and the first part of 2001, which includes a revised feature location model, richer feature objects (in particular genes) and more and better tools. Peter Schattner and Lorenz Pollak contributed serious chunks of code, being the AlignIO and bptutorial scripts and the BPLite port to Bioperl respectively. At this time Bioperl was being used in absolute earnest by the Ensembl group which shook out a number of problems in the code base. Additional compatibility with the Sequence Workbench (Bioperl-gui, Mark Wilkinson and David Block) and Biocorba (Jason Stajich, Brad Chapman and Alan Robinson) and finally Game-XML (Brad Marshall) provided more interoperability. From 2001-2002 we saw the developer ranks swell and contributions increase with folks volunteering everything from bibliographic modules (Martin Senger) to new SCF chromatogram file parsers (Chad Matsalla and Aaron Mackey) to a new relational database and Bioperl layer for fast access to feature data (Lincoln Stein) as well as graphical rendering of sequences with features (Lincoln Stein). In early 2002 Open-Bioinformatics foundation was formally incorporated as a non-profit organization (see http://www.open-bio.org) in the early part of 2002. We also participated in the 1st Bio-Hackathon that February which drew developers from several Open-Bio projects to lovely Cape Town, South Africa and the hospitality of the co-sponsor Electric Genetics (O'Reilly and Associates also co-sponsored the event, and AstraZeneca contributed to the sponsorship). In early May we released bioperl 1.0 as an effort to put a stamp of completeness on the toolkit and submitted a paper detailing the efforts thus far (see the FAQ). In late 2002 we released a developer release 1.1 for testing purposes and released bioperl 1.2 at the beginning of 2003. Current server hardware for bioperl.org (and other open-bio.org hosted projects) is provided by Sun. A previous server was provided by Compaq Computer Corporation. The compaq donation was facilitated by both the Pharmaceutical Sales and High Performance Technical Computing (HPTC) groups. The Bioperl servers reside in Cambridge, Massachusetts USA with colocation facilities and Internet bandwidth donated by Genetics Institute. In particular Dr. Steven Howes, Kenny Grant & Rich DiNunno have made significant efforts on our behalf. Copyright (c) 1996-2003 Georg Fuellen, Richard Resnick, Steven E. Brenner, Chris Dagdigian, Steve Chervitz, Ewan Birney, James Gilbert, Elia Stupka, and others. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.