[Bioperl-l] Re: sub_Location in Bio::Location::Simple?
Hilmar Lapp
hlapp@gnf.org
Mon, 1 Jul 2002 11:52:12 -0700
Also, there is Heikki's AtomicLocation-triggered dispute going on -- but that shouldn't affect this one. Just go ahead. -hilmar
> -----Original Message-----
> From: Charles Tilford [mailto:charles.tilford@bms.com]
> Sent: Monday, July 01, 2002 5:55 AM
> To: Jason Stajich; Bioperl
> Subject: [Bioperl-l] Re: sub_Location in Bio::Location::Simple?
>
>
> I'm not sure what the Bioperl-culturally-appropriate-interpretation of
> "null comment" is - should I add each_location() to the appropriate
> modules? Uncertain whether the lack of response indicates quiet
> satisfaction or stunned shock...
>
> -CAT
>
> Charles Tilford wrote:
> >
> > Jason Stajich wrote:
> >
> > >I'd rather create a new method, something like:
> > >each_Location().
> > >
> > >This can be implemented as a recursive method to handle
> the case when
> > >split locations contain other split locations.
> > >
> > >I don't want to make Simple locations explictly act like
> Split locations
> > >with a single loc since that defeats the purpose of separating the
> > >interfaces.
> > >
> > >Other people may have input?
> > >-j
> > >
> >
> > I'm happy with a new method. How about these changes then?
> >
> > Bio::Location::Split
> >
> > sub each_Location {
> > my ($self, $order) = @_;
> > my @locs = ();
> > foreach my $subloc ($self->sub_Location($order)) {
> > # Recursively check to get hierarchical split locations:
> > push @locs, $subloc->each_Location($order);
> > }
> > return @locs;
> > }
> >
> > Bio::Location::Simple
> >
> > sub each_Location {
> > my ($self) = @_;
> > return $self;
> > }
> >
> > Bio::LocationI
> >
> > sub each_Location {
> > my ($self,@args) = @_;
> > $self->throw_not_implemented();
> > return undef;
> > }
> >
> > -Charles
> >
> > >On Tue, 28 May 2002, Charles Tilford wrote:
> > >
> > >
> > >
> > >>Hi Jason,
> > >>
> > >>Would you mind if I added a sub_Location method in
> > >>Bio::Location::Simple? It would look like this:
> > >>
> > >>=head2 sub_Location
> > >>
> > >> Title : sub_Location
> > >> Usage : $loc = $loc->sub_Location();
> > >> Function: compatibility method to allow this single
> method to get
> > >>locations from either Simple or Split locations.
> > >> Returns : the Bio::Location::Simple object itself
> > >> Args :
> > >>
> > >>=cut
> > >>
> > >>sub start {
> > >> my ($self) = @_;
> > >> return $self;
> > >>}
> > >>
> > >>I find myself doing this frequently, to grab all the
> locations in a
> > >>given feature:
> > >>
> > >> my $fLoc = $feat->location;
> > >> my $locs = ($fLoc =~ /Split/) ?
> [$fLoc->sub_Location()] : [$fLoc];
> > >>
> > >>If ::Simple had a sub_Location method, then I could just say:
> > >>
> > >>my @locs = $feat->location->sub_Location();
> > >>
> > >>Not sure if I am overlooking a gotcha here...
> > >>
> > >>-Charles
>
> --
> Charles Tilford, Bioinformatics-Applied Genomics
> Bristol-Myers Squibb PRI, Hopewell 3A039
> P.O. Box 5400, Princeton, NJ 08543-5400, (609) 818-3213
> charles.tilford@bms.com
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l@bioperl.org
> http://bioperl.org/mailman/listinfo/bioperl-l
>