[Bioperl-l] RootI migration and other changes

Jason Stajich jason@chg.mc.duke.edu
Wed, 3 Jan 2001 14:12:07 -0500 (EST)

Hilmar, Ewan, and I came up with the scheme for handling Bio::Root::RootI
and all this obnoxious initializations.  My apologies for not keeping the
list more in the loop, but this was actually really boring.  

So I have checked in changes that should meet this new spec.  There are
some parts that were a little tricky, but all the tests pass so the
behaviour appears to be consistent.

In additione making the changes necessary for the move to a chained new
rather than chained _initialize I revamped some modules that needed
updating.  Here is a summary to the best of my recollection.

t/ - I updated some the tests on an ad hoc basis to using the perl Test
module.  more info on it perldoc Test.  I hope this will make test writing
even easier so that those interested can jump in and write a test (This
might be a good way to get acquainted with a module if you are wanting to
contribute to the project).

Bio::Tools::Run - this new directory is for modules that serve as wrappers
to call outside programs.  We should try and have all modules that execute
external programs residing in this dir or its subdirs.
I added some code using File::Spec to standardize how pathnames to
executeables are located.  I am not sure if we can expect File::Spec to
always be installed in a perl distribution (IT SHOULD BE!), so I revert
back to the original way of constructing paths (assuming unix style
directory separators '/').  Some cleaning up and standardization.
Actually we need to write a module Bio::Tools::Run.pm that will serve as a
framework for all modules that execute external programs.  There is much
code redundancy in these modules right now.

Bio::Species - now use named parameter for classification this required
updates to a test and some of the SeqIO modules.

Bio::SeqFeature::* - I worked on Mark's Computation object a little to
take advantage of inheritance, there are still some noises being made in
t/SeqFeature with the new tests Ewan added so I'll try and track those
down.  I also did some work so that feature1 and feature2 of
SimilarityPair always return something valid even if you have not
initialized it.  This was necessary because of the order parameters are
set when a subclass is instantiated (ie look at the Bio::Tools::Sim4::Exon
heirarchy and trace the calls to new() and you'll start to see what was
happening).  This was due to our move to chained new(), but it works now
so no worries.

Bio::AlignIO::clustalw - now supports read and writing of clustalw
alignments - only supported writing before.  This should work for both
clustal 1.4 and 1.8 

Bio::SearchDist - I added a test for this - I have not actually had luck
loading it on my machine lately so I have written a very simple test that
will skip if it cannot load the Bio::Ext::Align module.

Bio::SeqIO - genbank/embl/swiss I added the verbose parameters to
new Bio::FTHelper(-verbose => $self->verbose)	and when instantiating the
new Seq so that it will not print the warnings when vebose is set to -1
for the SeqIO object.

Bio::DB::GDB - a new module that will query the website www.gdb.org and
return simple things (what I needed which was for a markername, the
pcrprimers and length of product.  This will get much improved later on as
we develop objects for storing Markers and other information.  This will
fail if you overload the GDB server (Trust me I know...)  I'm still
tinkering with it so the tests may not pass 100% of the time.  We can
decide if it is good enough to include in the release (I'm not sure yet).
It's hairy HTML parsing in there.

There are some modules I did not touch - UnivAln, Bio::Tools::Blast,
which depend on Bio::Root::Object.  We're going to have to decide what we
want to do here in the future, but that may not be a job we try to
complete for 0.7 release.


Jason Stajich
Center for Human Genetics
Duke University Medical Center