Bioperl: Alignment factories

Ewan Birney birney@sanger.ac.uk
Sat, 8 May 1999 12:08:12 +0100 (BST)


On Fri, 7 May 1999, Ian Holmes wrote:

> Matt mentioned alignment factories the other day. I wonder if anyone
> (Ewan?) can tell me how these are meant to work. Eg I assume that
> $factory->pairwise_alignment($seq1,$seq2) is meant to be a base method of
> the AlignmentFactory interface but from the website docs it appears to be
> just in the pSW class. There are a couple of other things like this; the
> documentation is pretty sparse and yet Matt sounded like he had a firmish
> idea of the abstract concept of an AlignmentFactory even though it isn't
> really explained on the website.

The docs are pretty thin aren't they ;). The alignment factory base class
was orginally intended from my perspective to be somewhere where you could
modify the
	- reporting to stderr
	- memory usage of the algorithm.

All my alignment algorithms allow these things to be twiddled, but not
everyone elses, and it seems pretty silly to enforce other people's to.

I guess in a roundabout way I am trying to say that AlignmentFactory is
a pretty Ewan (or rather Dynamite) specific base class, and probably
should be renamed <grin>. A bit of a design error there.

Aaron has been talking about a pure perl SW implementation, and we have
notionally agreed that Aaron's and my pSW should have the same interface
so people can switch at will. We haven't defined that in a 'Protein SW 
Interface' way (perhaps that is what Matt was talking about), but we 
should do.

Yours would be a multiple alignment factory and I am not sure to what
extent a MA alignment interface should interact with a pairwise alignment
interface. But I am keen to define an abstract interface, as one can
imagine a number of different implementations. Perhaps something like:

	MultipleAlignmentI # 'I' indicates this is an interface
	$factory->align(\%param,@seqs);
		# reference to a hash of string parameter values
		# followed by an array of sequences

but just a suggestion: I am sure you have a better idea of what is going
on.

We should probably thrash this out on the guts list. Are you thinking
about an XS interface or a system call/pipe?

> 
> can anyone enlighten me? I'm currently writing C++ code to handle multiple
> alignment in a probabilistic manner and would like to make a perl wrapper
> that fits the AlignmentFactory API... if only i can work out what that is.
> ;->
> 
> yam
> 
> =========== Bioperl Project Mailing List Message Footer =======
> Project URL: http://bio.perl.org/
> For info about how to (un)subscribe, where messages are archived, etc:
> http://www.techfak.uni-bielefeld.de/bcd/Perl/Bio/vsns-bcd-perl.html
> ====================================================================
> 

Ewan Birney
<birney@sanger.ac.uk>
http://www.sanger.ac.uk/Users/birney/

=========== Bioperl Project Mailing List Message Footer =======
Project URL: http://bio.perl.org/
For info about how to (un)subscribe, where messages are archived, etc:
http://www.techfak.uni-bielefeld.de/bcd/Perl/Bio/vsns-bcd-perl.html
====================================================================