[Bioperl-l] Bio::Location::Split question

Chris Fields cjfields at uiuc.edu
Tue Sep 26 20:31:20 EDT 2006


Hilmar, 

I have committed one fix that was causing problems.  Locations like this,
which contain remote locations:

complement(join(2691..4571,ABC1234.5:4918..5163))

were getting converted to this, which is syntactically incorrect and doesn't
flip the strand of the remote location:

join(complement(2691..4571),ABC1234.5:4918..5163)

Essentially, if we continue to use strand() to propagate strand changes to
sublocations, under the current SplitLocationI implementation we must
include remote locations.  However, I am looking into an alternative which
may solve the strand() problem and simplify a few things.  If I can get it
to work and pass the relevant tests I will commit it, but I may hold off
until post-1.5.2.  

Christopher Fields
Postdoctoral Researcher - Switzer Lab
Dept. of Biochemistry
University of Illinois Urbana-Champaign 

> -----Original Message-----
> From: bioperl-l-bounces at lists.open-bio.org [mailto:bioperl-l-
> bounces at lists.open-bio.org] On Behalf Of Chris Fields
> Sent: Friday, September 22, 2006 12:27 AM
> To: Hilmar Lapp
> Cc: Bioperl-l at lists.open-bio.org
> Subject: Re: [Bioperl-l] Bio::Location::Split question
> 
> On Sep 21, 2006, at 10:29 PM, Hilmar Lapp wrote:
> 
> > The idea is that those sub-locations are 'owned' by the container
> > location unless they are remote.
> >
> > The motivation for Location::Split was not to have an arbitrary
> > container which could have first-class locations added to it, but
> > rather its purpose is to represent the location of a dis-contiguous
> > feature transparently in a way that's compatible with Bio::LocationI.
> >
> > So if you call $loc->strand(-$loc->strand) and $loc happens to be a
> > split location but doesn't propagate the location change to the sub-
> > locations, you have a situation which is ambiguous and inconsistent.
> >
> > Obviously, if you assume that the sub-locations are first-class
> > locations and you permit those to zig-zag between strands then
> > propagating a new strand value would clearly lead to an incorrect
> > result (namely the same strand for all sublocs when they did not have
> > the same strand before).
> >
> > You could change that to only propagate the direction of the change,
> > not the new value itself.
> >
> > 	-hilmar
> 
> There are two relatively serious problems that I have found, which
> are outlined in bugzilla (and which we have talked about):
> 
> http://bugzilla.open-bio.org/show_bug.cgi?id=2101
> 
> Data::Dumper output shows that the objects are different in order and
> strand.  I'm running more tests when I have time to check out the
> subsequences but they seem out-of-order, so using each_sub_Location
> will likely get the subsequences out of order as well.  I'll see what
> I can work out.  I know that, if we treat remote locations similarly
> to regular locations in strand(), then one bug is fixed.
> 
> The reason I ask about the use of strand() is I found it much easier
> to fix some of these bugs when assuming the split location has a
> strand, if using it as nothing more than a point of reference for the
> sublocations (i.e. the strand doesn't mean anything except
> internally).  I noticed that is done somewhat, but only with
> complemented strands.
> 
> Chris
> 
> > On Sep 21, 2006, at 4:43 PM, Chris Fields wrote:
> >
> >> Hilmar,
> >>
> >> Here's a question which I can't quite find the answer for.  The
> >> current
> >> behavior of Bio::Location::Split is to propagate strand information
> >> (using
> >> $loc->strand()) for a Split location object to the various
> >> sublocations it
> >> contains.  In other words, it isn't just a get/set, but has a
> >> direct effect
> >> on the sublocation objects and assumes that all sublocations have
> >> the same
> >> strand as the Split location container object.  Would you know of any
> >> rationale for this?
> >>
> >> Christopher Fields
> >> Postdoctoral Researcher - Switzer Lab
> >> Dept. of Biochemistry
> >> University of Illinois Urbana-Champaign
> >>
> >>
> >>> -----Original Message-----
> >>> From: bioperl-l-bounces at lists.open-bio.org [mailto:bioperl-l-
> >>> bounces at lists.open-bio.org] On Behalf Of Hilmar Lapp
> >>> Sent: Monday, September 18, 2006 5:27 PM
> >>> To: Chris Fields
> >>> Cc: Bioperl-l at lists.open-bio.org
> >>> Subject: Re: [Bioperl-l] Bio::Location::Split question
> >>>
> >>> On Sep 18, 2006, at 5:55 PM, Chris Fields wrote:
> >>>
> >>>> However, if I take the two examples above, run them through
> >>>> FTLocationFactory, then use to_FTstring() to get the feature
> >>>> string, this is
> >>>> what I get:
> >>>>
> >>>> complement(join(2691..4571,4918..5163))
> >>>>
> >>>> complement(join(4918..5163,2691..4571))
> >>>
> >>> So this looks like a bug, right? The correct result would be if both
> >>> yielded the same strings, or syntactically equivalent strings. The
> >>> two above are neither identical nor syntactically equivalent.
> >>>
> >>> Another test is if you set a feature location from either string and
> >>> then request the sub-sequence, the resulting sequence should be
> >>> identical given syntactically equivalent location specifications.
> >>>
> >>> Do you want to file (and possibly address?) this?
> >>>
> >>> 	-hilmar
> >>> --
> >>> ===========================================================
> >>> : 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
> >>
> >
> > --
> > ===========================================================
> > : 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
> 
> Christopher Fields
> Postdoctoral Researcher
> Lab of Dr. Robert Switzer
> Dept of Biochemistry
> University of Illinois Urbana-Champaign
> 
> 
> 
> _______________________________________________
> 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