[Bioperl-l] Bio::Location::Split question
Chris Fields
cjfields at uiuc.edu
Wed Sep 27 00:31:20 UTC 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