Bioperl-guts: need design advice for some unigene db query methods

Ewan Birney birney@sanger.ac.uk
Thu, 29 Apr 1999 00:34:40 +0100 (BST)


On Wed, 28 Apr 1999, Chris Dagdigian wrote:

> 
> I'm thinking of playing around with some type of module that would talk to
> the NCBI unigene server via LWP. It would have the following
> mehods:

sounds great. All the more...

> 
>  get_CID_by_acc()   -- Given EST accession number, return the unigene cluster name (if any) 
> 
>  list_cluster_by_CID()  -- return all accession numbers for members of given cluster ID
> 
>  get_cluster_by_acc() -- use the above 2 methods and then batch fetch all the sequences
> 
> These methods do not map at all to the abstract interface designed
> for Bio::DB. Would a module like this be better off suited as a standalone .pm file
> or possibly a Bio::Tools:: item?

I think logically it is in the DB stuff, even if it doesn't support this
interface. Thinking about it, we have three types of interfaces:

	a)

	$db->get_Seq_by_id(); # random access memory

	b) 

	$stream = $db->get_Seq_stream_by_query(); # streamed query access

	$stream->next_seq();
 
	c)

	$stream = $db->get_stream(); # streamed entire access...	
	$stream->next_seq();


Bio::DB::GenBank supports a) and b), Bio::Index::Fasta supports only
a) but could be done to support c), and this unigene stuff supports b).

Whether we defined these interfaces or not, the unigene stuff should 
make something that works like SeqIO. I think we should definitely define
the SeqIO interface (I should have done it already).

Looking at it, I guess c) looks like a special case of c) with no
arguments. Do you think it is worth defining stream'able query access to
databases as an abstract interface? Probably... yes...


Chris - does this make sense with your thinking?

Aaron and James - what do you think about this?

	
> 
> Implementing the above methods should be easy, I'm not sure however about
> the design & big picture -- what is the best way to take advangage of existing code and
> integrate this functionality into bioperl?
> 
>  -chris
> 
> 
>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !
!
>                                                                                                                                                                                            
> =========== 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-guts.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-guts.html
====================================================================