[Bioperl-l] Bio::Tools reorganisation (long)

Heikki Lehvaslaiho heikki at sanbi.ac.za
Fri Oct 24 10:04:06 UTC 2008


I was thinking of the proposed simplification of the BioPerl core and
reading http://www.bioperl.org/wiki/Proposed_core_modules_changes.

I realised that Bio::Tools really should be reorganised. At the
moment it holds at least five different kinds of categories
of "tools".

The most difficult question here is, of course: How much backward
compatibility should be kept? I am in favour of doing quite
drastic changes if they help clarify the purpose of the modules.

Also, what is the defining rule to categorize the modules?

 Possibilities:

1. Local/web
2. Type of data: Sequences in databases/Analysis tools
3. Type of analysis

Below I've outlined what I think need to be done based on
assumption that local/web rule is primary and type of analysis is the
secondary organising principle.


None of this is in the bioperl wiki but can be put in there at any point of 
the discussion.


   -Heikki


1. Core functionality
=====================

Used by core sequence objects.

e.g.:
Bio::Utils::Codontable
Bio::Utils::GuessSeqFormat

Suggestion: Not called directly, so moving to. e.g. Bio::Seq,
should not be a problem. Can be implemented immediately.

2. Utilities
============

Perform a simple analysis related to sequences or sequence
formats. All the code is present within the module.

e.g.:
Bio::Tools::IUPAC
Bio::Tools::OddCodes
Bio::Tools::ECnumber (?)

Suggestion: Separate them from tools into Bio::Utils within the
core package. Seldom used, so should not break backward
compatibility too much.


3. Parsers for program outputs
==============================

Bulk of the Bio::Tools name space content. They need to be sorted into
categories when possible according to convention:
Bio::Tools::Alignment, Bio::Tools, Phylo.

Suggestion: Move into Bio::Tools::Parser(, or Bio::Parser).


4. External local programme wrappers
====================================

Most of these, but not all, are in Bio::Tools::Run and already in
bioperl-run package. They use parsers in Bio::Tools name
space (category 3.).

Suggestion: Move into Bio::Tools::RunLocal, (or Bio::RunLocal) to shorten the 
name.


5. Wrappers for remote (Web based) services
===========================================

Most of the service wrappers follow Bio::SimpleAlignI and are in
Bio::Tools::Analysis. 

Examples of modules that are using web but are among local
application wrappers:
 
Bio::Tools::Protparam
Bio::Tools::WebBlat

Modules using Web access, but are in the bioperl-run package:

Bio::Tools::Run::Pise*

Modules accessing web for retrieving sequences: Bio::DB.

This name space contains modules for managing local sequence databases,
accessing web based sequence databases, and a variety of other
objects: Bibliographic references, sequence annotation, MeSH
terms, Taxonomy.

Suggestion: move to Bio::Tools::RunExternal, (or
Bio::Web). Reorganise Bio::DB in the similar manner to logical categories.




-- 
______ _/      _/_____________________________________________________
      _/      _/
     _/  _/  _/  Heikki Lehvaslaiho    heikki at_sanbi _ac _za
    _/_/_/_/_/  Senior Scientist    skype: heikki_lehvaslaiho
   _/  _/  _/  SANBI, South African National Bioinformatics Institute
  _/  _/  _/  University of Western Cape, South Africa
     _/      Phone: +27 21 959 2096   FAX: +27 21 959 2512
___ _/_/_/_/_/________________________________________________________




More information about the Bioperl-l mailing list