Bio-DB-SeqFeature
view release on metacpan or search on metacpan
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
This method fetches features based on a location range lookup. You
call it using a positional list of arguments, or a list of
(-argument=E<gt>$value) pairs.
The positional form is as follows:
$db->get_features_by_location($seqid [[,$start,]$end])
The $seqid is the name of the sequence on which the feature resides,
and start and end are optional endpoints for the match. If the
endpoints are missing then any feature on the indicated seqid is
returned.
Examples:
get_features_by_location('chr1'); # all features on chromosome 1
get_features_by_location('chr1',5000); # features between 5000 and the end
get_features_by_location('chr1',5000,8000); # features between 5000 and 8000
Location lookups are overlapping. A feature will be returned if it
partially or completely overlaps the indicated range.
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
-range_type Type of range to search over
The B<-strand> argument, if present, can be one of "0" to find
features that are on both strands, "+1" to find only plus strand
features, and "-1" to find only minus strand features. Specifying a
strand of undef is the same as not specifying this argument at all,
and retrieves all features regardless of their strandedness.
The B<-range_type> argument, if present, can be one of "overlaps" (the
default), to find features whose positions overlap the indicated
range, "contains," to find features whose endpoints are completely
contained within the indicated range, and "contained_in" to find
features whose endpoints are both outside the indicated range.
=cut
sub get_features_by_location {
my $self = shift;
my ($seqid,$start,$end,$strand,$rangetype) =
rearrange([['SEQ_ID','SEQID','REF'],'START',['STOP','END'],'STRAND','RANGE_TYPE'],@_);
$self->_features(-seqid=>$seqid,
-start=>$start||undef,
-end=>$end||undef,
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
Title : segment
Usage : $segment = $db->segment($seq_id [,$start] [,$end] [,$absolute])
Function: restrict the database to a sequence range
Returns : a Bio::DB::SeqFeature::Segment object
Args : sequence id, start and end ranges (optional)
Status : public
This is a convenience method that can be used when you are interested
in the contents of a particular sequence landmark, such as a
contig. Specify the ID of a sequence or other landmark in the database
and optionally a start and endpoint relative to that landmark. The
method will look up the region and return a
Bio::DB::SeqFeature::Segment object that spans it. You can then use
this segment object to make location-restricted queries on the database.
Example:
$segment = $db->segment('contig23',1,1000); # first 1000 bp of contig23
my @mRNAs = $segment->features('mRNA'); # all mRNAs that overlap segment
Although you will usually want to fetch segments that correspond to
lib/Bio/DB/SeqFeature/Store/GFF3Loader.pm view on Meta::CPAN
# contiguous feature, so add a segment
warn $old_feat if defined $old_feat and !ref $old_feat;
if (defined $old_feat) {
# set this to 1 to disable split-location behavior
if (0 && @parent_ids) { # If multiple features are held together by the same ID
$feature_id = $ld->{TemporaryID}++; # AND they have a Parent attribute, this causes an undesirable
} # additional layer of aggregation. Changing the ID fixes this.
elsif (
$old_feat->seq_id ne $refname ||
$old_feat->start != $start ||
$old_feat->end != $end # make sure endpoints are distinct
)
{
$self->add_segment($old_feat,$self->sfclass->new(@args));
return;
}
}
# we get here if this is a new feature
# first of all, store the current feature if it is there
$self->store_current_feature() if defined $ld->{CurrentID};
( run in 0.283 second using v1.01-cache-2.11-cpan-b61123c0432 )