[Bioperl-l] Changes to Bio::SeqI broke Bio::Graphics
Hilmar Lapp
hlapp@gnf.org
Mon, 11 Nov 2002 15:21:36 -0800
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
-------------------------------------------------------------