[Bioperl-l] Changes to Bio::SeqI broke Bio::Graphics

Matthew Pocock matthew_pocock@yahoo.co.uk
Mon, 11 Nov 2002 23:30:11 +0000


I was thinking more along the lines of something like 
Bio::Graphics::Feature that it not related to Bio::SeqFeatureI by 
inheritance, and factories or factory methods or adaptors for 
manufacturing them from Bio::SeqFeatureI and Sequence and whatever-else 
objects. Bio::Graphics::Feature (or Bio::Graphics::RenderableData or 
whatever) would be the only thing that the rendering code knew about. To 
add a new thing that can be rendered, you just need to write a providor 
of Bio::Graphics::Feature objects for your data-type and potentialy hook 
up the apropreate glyphs.

Anyway, the BioJava and BioPerl rendering APIs are so dissimilar that 
any comments I make should be taken with a healthy pinch of salt.

Matthew

Hilmar Lapp wrote:
> Lincoln correct me if this is wrong, but I guess that 'lightweight 
> interface' is more or less Bio::SeqFeatureI.
> 
> One could duplicate (well, probably remove a few methods?) 
> Bio::SeqFeatureI as Bio::SeqFeature::RenderableFeatureI ... Is that what 
> you were thinking of?
> 
>     -hilmar
> 
> On Monday, November 11, 2002, at 12:25 PM, Matthew Pocock wrote:
> 
>> Rather than all this kludging to make sequences look like features so 
>> that they can be rendered, could you instead define the renderer in 
>> terms of some light-weigth interface for the data you need to render 
>> something and adapt both features and sequences to that interface? 
>> That way, you can later decide to render traces, barcharts, pictures 
>> by just providing an apropreate adaptor.
>>
>> Just my 2p
>>
>> Matthew
>>
>> Hilmar Lapp wrote:
>>
>>> I was thinking of doing exactly that, just don't have time. I'd have 
>>> called it Bio::SeqFeature::SeqAdaptor, because basically the pattern 
>>> is to adapt a Bio::SeqI object to the Bio::SeqFeatureI interface. Hence,
>>>     Bio::SeqFeature::SeqAdaptor is-a Bio::SeqFeatureI, Bio::SeqI
>>> Bio::SeqI would be implemented by composition, as you say. With this 
>>> you'd be able to look at any seq object as if it were a feature. I 
>>> believe Lincoln has already accomplished a similar thing in 
>>> Bio::DB::GFF::Feature even though it's not explicit. Not sure though.
>>> The only downside of this is that it could potentially be expensive 
>>> if you want to disguise very many sequences.
>>>     -hilmar
>>> On Saturday, November 9, 2002, at 04:53 AM, Ewan Birney wrote:
>>>
>>>> On Fri, 8 Nov 2002, Lincoln Stein wrote:
>>>>
>>>>>>
>>>>>> Why? So that they looked like sequence features? I still think it 
>>>>>> is wrong
>>>>>> to have Bio::SeqI inherieting from Bio::RangeI.
>>>>>
>>>>>
>>>>>
>>>>> When rendering the features of a sequence, it looks nice to have a 
>>>>> single
>>>>> feature that goes all the way across the whole sequence labeled 
>>>>> with the
>>>>> display_id of the sequence.  When Bio::SeqI had start() and end() 
>>>>> features,
>>>>> this was sufficient to pass the sequence object to the drawing code 
>>>>> and get
>>>>> the desired effect.
>>>>>
>>>>
>>>> I think this is changing the sequence interface for a specific use 
>>>> case. I
>>>> would claim a better pattern here is:
>>>>
>>>>
>>>>   Bio::SeqFeature::SequenceExtent
>>>>
>>>> which is-a Bio::SeqFeatureI and has-a Bio::SeqI and chains the call to
>>>> "end" to "length" and also "has_tags" etc to something sensible in
>>>> Bio::AnnotationCollection.
>>>>
>>>> I am happy to write this. Does this sound like a better solution?
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Bioperl-l mailing list
>>>> Bioperl-l@bioperl.org
>>>> http://bioperl.org/mailman/listinfo/bioperl-l
>>>>
>>> -- -------------------------------------------------------------
>>> Hilmar Lapp                            email: lapp at gnf.org
>>> GNF, San Diego, Ca. 92121              phone: +1-858-812-1757
>>> -------------------------------------------------------------
>>> _______________________________________________
>>> Bioperl-l mailing list
>>> Bioperl-l@bioperl.org
>>> http://bioperl.org/mailman/listinfo/bioperl-l
>>
>>
>>
>> -- BioJava Consulting LTD - Support and training for BioJava
>> http://www.biojava.co.uk
>>
>> __________________________________________________
>> Do You Yahoo!?
>> Everything you'll ever need on one web page
>> from News and Sport to Email and Music Charts
>> http://uk.my.yahoo.com
>>
>>
> -- 
> -------------------------------------------------------------
> Hilmar Lapp                            email: lapp at gnf.org
> GNF, San Diego, Ca. 92121              phone: +1-858-812-1757
> -------------------------------------------------------------
> 


-- 
BioJava Consulting LTD - Support and training for BioJava
http://www.biojava.co.uk

__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com