annotate variant_effect_predictor/Bio/SeqFeature/CollectionI.pm @ 0:2bc9b66ada89 draft default tip

Uploaded
author mahtabm
date Thu, 11 Apr 2013 06:29:17 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1 # $Id: CollectionI.pm,v 1.2 2002/10/22 07:45:20 lapp Exp $
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
2 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
3 # BioPerl module for Bio::SeqFeature::CollectionI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
4 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
5 # Cared for by Jason Stajich <jason@bioperl.org>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
6 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
7 # Copyright Jason Stajich
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
8 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
9 # You may distribute this module under the same terms as perl itself
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
10
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
11 # POD documentation - main docs before the code
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
12
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
13 =head1 NAME
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
14
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
15 Bio::SeqFeature::CollectionI - An interface for a collection of SeqFeatureI objects.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
16
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
17 =head1 SYNOPSIS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
18
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
19
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
20 # get a Bio::SeqFeature::CollectionI somehow
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
21 # perhaps a Bio::SeqFeature::Collection
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
22
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
23
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24 use Bio::SeqFeature::Collection;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25 my $collection = new Bio::SeqFeature::Collection;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26 $collection->add_features(\@featurelist);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29 $collection->features(-attributes =>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30 [ { 'location' => new Bio::Location::Simple
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31 (-start=> 1, -end => 300) ,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32 'overlaps' }]);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34 =head1 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36 This interface describes the basic methods needed for a collection of Sequence Features.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38 =head1 FEEDBACK
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40 =head2 Mailing Lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42 User feedback is an integral part of the evolution of this and other
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43 Bioperl modules. Send your comments and suggestions preferably to
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44 the Bioperl mailing list. Your participation is much appreciated.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46 bioperl-l@bioperl.org - General discussion
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47 http://bioperl.org/MailList.shtml - About the mailing lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49 =head2 Reporting Bugs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51 Report bugs to the Bioperl bug tracking system to help us keep track
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52 of the bugs and their resolution. Bug reports can be submitted via
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53 email or the web:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55 bioperl-bugs@bioperl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56 http://bugzilla.bioperl.org/
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
58 =head1 AUTHOR - Jason Stajich
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
59
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60 Email jason@bioperl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62 Describe contact details here
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
64 =head1 CONTRIBUTORS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
65
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
66 Additional contributors names and emails here
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
67
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
68 =head1 APPENDIX
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70 The rest of the documentation details each of the object methods.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71 Internal methods are usually preceded with a _
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76 # Let the code begin...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79 package Bio::SeqFeature::CollectionI;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80 use vars qw(@ISA);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82 use Carp;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83 use Bio::Root::RootI;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85 @ISA = qw( Bio::Root::RootI );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88 =head2 add_features
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90 Title : add_features
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 Usage : $collection->add_features(\@features);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93 Returns : number of features added
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94 Args : arrayref of Bio::SeqFeatureI objects to index
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98 sub add_features{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99 shift->throw_not_implemented();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103 =head2 features
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105 Title : features
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106 Usage : my @f = $collection->features(@args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107 Returns : a list of Bio::SeqFeatureI objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108 Args : see below
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109 Status : public
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111 This routine will retrieve features associated with this collection
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112 object. It can be used to return all features, or a subset based on
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113 their type, location, or attributes.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115 -types List of feature types to return. Argument is an array
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116 of Bio::Das::FeatureTypeI objects or a set of strings
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117 that can be converted into FeatureTypeI objects.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119 -callback A callback to invoke on each feature. The subroutine
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120 will be passed to each Bio::SeqFeatureI object in turn.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122 -attributes A hash reference containing attributes to match.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124 The -attributes argument is a hashref containing one or more attributes
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125 to match against:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127 -attributes => { Gene => 'abc-1',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128 Note => 'confirmed' }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130 Attribute matching is simple exact string matching, and multiple
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131 attributes are ANDed together. See L<Bio::DB::ConstraintsI> for a
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132 more sophisticated take on this.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134 If one provides a callback, it will be invoked on each feature in
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135 turn. If the callback returns a false value, iteration will be
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136 interrupted. When a callback is provided, the method returns undef.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140 sub features{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141 shift->throw_not_implemented();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144 1;