[Bioperl-l] Other object oddities

Kevin Brown Kevin.M.Brown at asu.edu
Mon May 4 15:58:05 UTC 2009


I guess since my first exposure to BioPerl was reading in FASTA data,
that I picked up the preference for ->seq to be a string as that is what
happens in Bio::Seq objects. So, I see seq and think sequence string,
heheh.

Just be aware, ->seq returning/setting a string seems to be far more
common than it returning an object.

> -----Original Message-----
> From: Mark A. Jensen [mailto:maj at fortinbras.us] 
> Sent: Monday, May 04, 2009 8:51 AM
> To: Kevin Brown
> Cc: BioPerl List
> Subject: Re: [Bioperl-l] Other object oddities
> 
> This is definitely a reasonable issue to chase down. How to 
> do it needs
> a little care. I personally see 'seq' and think 'object', and 
> have resorted to
> 'seqstr' in my own code to hold/access just strings. FWIW, my 
> preference would
> be to have any object that has a seq object as a property 
> return objects
> when a '..._seq' accessor is called. However, the seq objects 
> themselves
> generally contain the sequence string in their seq() 
> property. We wouldn't
> want to disrupt that, but would it be worth creating an alias 
> getter/setter for
> the Seq classes seq() property called 'seqstr'? We could then count on
> 
> $foo->bar_seq, an object
> $foo->bar_seq->seqstr, a string
> $foo->seqstr, a string (not nec same as above)
> 
> cheers Mark
> ----- Original Message ----- 
> From: "Kevin Brown" <Kevin.M.Brown at asu.edu>
> Cc: "BioPerl List" <Bioperl-l at lists.open-bio.org>
> Sent: Monday, May 04, 2009 11:31 AM
> Subject: Re: [Bioperl-l] Other object oddities
> 
> 
> >I don't mind that Bio::Seq uses seq to return a string. In 
> fact I prefer
> > that. Just would be nice if other objects obeyed the same 
> convention.
> > Bio::SeqFeature::Generic returns an object for both 
> entire_seq and seq,
> > but uses attach_seq to store the Bio::Seq object into the Feature.
> >
> > Maybe SeqFeature could be adjusted so that ->seq returns 
> the sequence
> > string of the feature (just like Bio::Seq) and 
> ->feature_seq returns the
> > Bio::Seq object.
> >
> >> -----Original Message-----
> >> From: Hilmar Lapp [mailto:hlapp at gmx.net]
> >> Sent: Sunday, May 03, 2009 11:37 AM
> >> To: Kevin Brown
> >> Cc: BioPerl List
> >> Subject: Re: [Bioperl-l] Other object oddities
> >>
> >> I agree, $seq->seq() could possibly be better named. Maybe $seq-
> >>  >seqstr()?
> >>
> >> The thing is that having $seq->seq() return an object would be
> >> meaningless - it would be $self.
> >>
> >> You can test what kind of object you have using ref() or isa():
> >>
> >> $seq = $obj->seq();
> >> # we need the sequence string
> >> $seq = $seq->seq() if ref($seq) &&
> >> $seq->isa("Bio::PrimarySeqI");
> >>
> >> There has been a naming consistency review, but it's been 
> a long time.
> >>
> >> -hilmar
> >>
> >>
> >> On Apr 30, 2009, at 5:56 PM, Kevin Brown wrote:
> >>
> >> > So, I'm using quite a bit of bioperl code in my own 
> stuff and have
> >> > been
> >> > seeing some oddities with the naming of methods. A good example
> >> > would be
> >> > in the Bio::Seq and Bio::SeqFeature::Generic. Both have a method
> >> > called
> >> > "seq" but in the latter case it returns an object (and expects an
> >> > object
> >> > when doing a Set) and in the former it returns a string and
> >> expects a
> >> > string when doing a Set.
> >> >
> >> > This makes for a bit of brain freeze on my part when the 
> return from
> >> > another object might be a Bio::Seq or
> >> Bio::SeqFeature::Generic and now
> >> > calling the ->seq returns different things.
> >> >
> >> > Guess I'm just curious if anyone has done an audit of the
> >> methods of
> >> > the
> >> > various objects and their return types to see how
> >> consistent they are
> >> > across even a subsection of the codebase?
> >> >
> >> > _______________________________________________
> >> > Bioperl-l mailing list
> >> > Bioperl-l at lists.open-bio.org
> >> > http://lists.open-bio.org/mailman/listinfo/bioperl-l
> >>
> >> -- 
> >> ===========================================================
> >> : Hilmar Lapp  -:-  Durham, NC  -:-  hlapp at gmx dot net :
> >> ===========================================================
> >>
> >>
> >>
> >>
> >
> > _______________________________________________
> > Bioperl-l mailing list
> > Bioperl-l at lists.open-bio.org
> > http://lists.open-bio.org/mailman/listinfo/bioperl-l
> >
> > 
> 
> 




More information about the Bioperl-l mailing list