annotate variant_effect_predictor/Bio/Cluster/SequenceFamily.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: SequenceFamily.pm,v 1.4 2002/12/01 00:34:58 jason Exp $
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
2 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
3 # BioPerl module for Bio::Cluster::SequenceFamily
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
4 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
5 # Cared for by Shawn Hoon <shawnh@fugu-sg.org>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
6 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
7 # Copyright Shawn Hoon
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::Cluster::SequenceFamily - Sequence Family object
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 use Bio::Cluster::SequenceFamily
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
20
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
21 use Bio::SeqIO;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
22 use Bio::Cluster::SequenceFamily;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
23
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24 my $file = Bio::Root::IO->catfile('t','data','swiss.dat');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25 my $seqio= new Bio::SeqIO('-format' => 'swiss',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26 '-file' => $file);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27 my @mem;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28 while(my $seq = $seqio->next_seq){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29 push @mem, $seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32 #create the family
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33 my $family = Bio::Cluster::SequenceFamily->new(-family_id=>"Family_1",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34 -description=>"Family Description Here",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35 -annotation_score=>"100",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36 -members=>\@mem);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38 #access the family
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40 foreach my $mem ($family->get_members){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41 print $mem->display_id."\t".$mem->desc."\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44 #select members if members have a Bio::Species Object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46 my @mem = $family->get_members(-binomial=>"Homo sapiens");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47 @mem = $family->get_members(-ncbi_taxid => 9606);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48 @mem = $family->get_members(-common_name=>"Human");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49 @mem = $family->get_members(-species=>"sapiens");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50 @mem = $family->get_members(-genus=>"Homo");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54 =head1 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56 This is a simple Family object that may hold any group of object. For more
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57 specific families, one should derive from FamilyI.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
58
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
59 =head1 FEEDBACK
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62 =head2 Mailing Lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
64 User feedback is an integral part of the evolution of this and other
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
65 Bioperl modules. Send your comments and suggestions preferably to one
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
66 of the Bioperl mailing lists. Your participation is much appreciated.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
67
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
68 bioperl-l@bioperl.org - General discussion
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69 http://bio.perl.org/MailList.html - About the mailing lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71 =head2 Reporting Bugs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73 Report bugs to the Bioperl bug tracking system to help us keep track
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74 the bugs and their resolution. Bug reports can be submitted via email
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75 or the web:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77 bioperl-bugs@bioperl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78 http://bugzilla.bioperl.org/
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80 =head1 AUTHOR - Shawn Hoon
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82 Email shawnh@fugu-sg.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85 =head1 APPENDIX
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88 The rest of the documentation details each of the object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89 methods. Internal methods are usually preceded with a "_".
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93 # Let the code begin...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96 package Bio::Cluster::SequenceFamily;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99 use vars qw(@ISA);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102 use Bio::Root::Root;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103 use Bio::Cluster::FamilyI;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105 @ISA = qw(Bio::Root::Root Bio::Cluster::FamilyI);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108 =head2 new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110 Title : new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111 Usage : my $family = Bio::Cluster::SequenceFamily->new(-family_id=>"Family_1",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112 -description=>"Family Description Here",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113 -annotation_score=>"100",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114 -members=>\@mem);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115 Function: Constructor for SequenceFamily object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116 Returns : L<Bio::Cluster::SequenceFamily> object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120 sub new {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121 my ($class,@args) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122 my $self = $class->SUPER::new(@args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123 my ($id,$description,$version,$annot_score,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124 $family_score,$members) = $self->_rearrange([qw(FAMILY_ID DESCRIPTION VERSION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125 ANNOTATION_SCORE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126 FAMILY_SCORE MEMBERS)],@args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127 $self->{'_members'} = [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128 $id && $self->family_id($id);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129 $description && $self->description($description);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130 $version && $self->version($version);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131 $annot_score && $self->annotation_score($annot_score);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132 $family_score && $self->family_score($family_score);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133 $members && $self->add_members($members);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135 return $self;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139 =head2 version
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141 Title : version
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142 Usage : $family->version("1.0");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143 Function: get/set for version
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144 Returns : a string version of the family generated.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
145
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
146 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
147
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
148 sub version{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
149 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
150 if($value){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
151 $self->{'_version'} =$value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
152 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
153 return $self->{'_version'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
154 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
155
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
156 =head2 annotation_score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
157
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
158 Title : annotation_score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
159 Usage : $family->annotation_score(100);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
160 Function: get/set for annotation_score which
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
161 represent the confidence in which the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
162 consensus description has been assigned
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
163 to the family.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
164 Returns : L<Bio::SimpleAlign>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
165
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
166 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
167
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
168 sub annotation_score{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
169 my ($self,$score) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
170 if($score){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
171 $self->{'_annotation_score'} = $score;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
172 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
173 return $self->{'_annotation_score'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
174 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
175
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
176 =head2 alignment
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
177
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
178 Title : alignment
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
179 Usage : $family->alignment($align);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
180 Function: get/set for an alignment object representing
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
181 the multiple alignment of the members of the family.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
182 Returns : L<Bio::SimpleAlign>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
183
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
184 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
185
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
186 sub alignment {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
187 my ($self,$align) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
188 if($align){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
189 $self->{'_alignment'} = $align;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
190 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
191 return $self->{'_alignment'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
192 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
193
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
194 =head2 tree
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
195
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
196 Title : tree
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
197 Usage : $family->tree($tree);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
198 Function: get/set for an tree object representing
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
199 the phylogenetic tree of the family.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
200 Returns : L<Bio::Tree>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
201
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
202 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
203
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
204 sub tree {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
205 my ($self,$tree) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
206 if($tree) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
207 $self->{'_tree'} = $tree;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
208 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
209 return $self->{'_tree'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
210 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
211
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
212 =head1 L<Bio::Cluster::FamilyI> methods
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
213
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
214 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
215
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
216 =head2 family_score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
217
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
218 Title : family_score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
219 Usage : Bio::Cluster::FamilyI->family_score(95);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
220 Function: get/set for the score of algorithm used to generate
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
221 the family if present
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
222
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
223 This is aliased to cluster_score().
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
224
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
225 Returns : the score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
226 Args : the score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
227
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
228 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
229
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
230 sub family_score {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
231 return shift->cluster_score(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
232 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
233
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
234
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
235 =head2 family_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
236
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
237 Title : family_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
238 Usage : $family->family_id("Family_1");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
239 Function: get/set for family id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
240
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
241 This is aliased to display_id().
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
242
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
243 Returns : a string specifying identifier of the family
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
244
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
245 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
246
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
247 sub family_id{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
248 return shift->display_id(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
249 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
250
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
251 =head1 L<Bio::ClusterI> methods
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
252
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
253 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
254
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
255 =head2 display_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
256
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
257 Title : display_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
258 Usage :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
259 Function: Get/set the display name or identifier for the cluster
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
260 Returns : a string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
261 Args : optional, on set the display ID ( a string)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
262
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
263 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
264
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
265 sub display_id{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
266 my ($self,$id) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
267 if($id){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
268 $self->{'_cluster_id'} = $id;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
269 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
270 return $self->{'_cluster_id'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
271 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
272
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
273 =head2 description
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
274
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
275 Title : description
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
276 Usage : $fam->description("POLYUBIQUITIN")
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
277 Function: get/set for the consensus description of the cluster
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
278 Returns : the description string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
279 Args : Optional the description string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
280
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
281 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
282
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
283 sub description{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
284 my ($self,$desc) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
285 if($desc){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
286 $self->{'_description'} = $desc;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
287 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
288 return $self->{'_description'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
289 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
290
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
291 =head2 get_members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
292
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
293 Title : get_members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
294 Usage : Valid criteria:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
295 -common_name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
296 -binomial
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
297 -ncbi_taxid
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
298 -organelle
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
299 -genus
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
300 $family->get_members(-common_name =>"human");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
301 $family->get_members(-species =>"homo sapiens");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
302 $family->get_members(-ncbi_taxid => 9606);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
303 For now, multiple critieria are ORed.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
304
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
305 Will return all members if no criteria are provided.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
306
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
307 Function: get members using methods from L<Bio::Species>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
308 the phylogenetic tree of the family.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
309 Returns : an array of objects that are member of this family.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
310
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
311 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
312
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
313 sub get_members {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
314 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
315 my @ret;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
316
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
317 if(@_) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
318 my %hash = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
319 foreach my $mem ( @{$self->{'_members'}} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
320 foreach my $key ( keys %hash){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
321 my $method = $key;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
322 $method=~s/-//g;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
323 if($mem->can('species')){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
324 my $species = $mem->species;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
325 $species->can($method) ||
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
326 $self->throw("$method is an invalid criteria");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
327 if($species->$method() eq $hash{$key} ){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
328 push @ret, $mem;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
329 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
330 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
331 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
332 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
333 return @ret;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
334 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
335 return @{$self->{'_members'}};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
336 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
337
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
338 =head2 size
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
339
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
340 Title : size
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
341 Usage : $fam->size();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
342 Function: get/set for the size of the family,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
343 calculated from the number of members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
344 Returns : the size of the family
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
345 Args :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
346
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
347 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
348
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
349 sub size {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
350 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
351
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
352 return scalar(@{$self->{'_members'}});
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
353
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
354 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
355
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
356 =head2 cluster_score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
357
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
358 Title : cluster_score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
359 Usage : $fam->cluster_score(100);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
360 Function: get/set for cluster_score which
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
361 represent the score in which the clustering
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
362 algorithm assigns to this cluster.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
363 Returns : a number
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
364
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
365 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
366
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
367 sub cluster_score{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
368 my ($self,$score) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
369 if($score){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
370 $self->{'_cluster_score'} = $score;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
371 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
372 return $self->{'_cluster_score'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
373 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
374
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
375
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
376 =head1 Implementation specific methods
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
377
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
378 These are mostly for adding/removing/changing.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
379
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
380 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
381
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
382 =head2 add_members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
383
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
384 Title : add_members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
385 Usage : $fam->add_member([$seq1,$seq1]);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
386 Function: add members to a family
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
387 Returns :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
388 Args : the member(s) to add, as an array or arrayref
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
389
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
390 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
391
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
392 sub add_members{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
393 my ($self,@mems) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
394
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
395 my $mem = shift(@mems);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
396 if(ref($mem) eq "ARRAY"){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
397 push @{$self->{'_members'}},@{$mem};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
398 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
399 push @{$self->{'_members'}},$mem;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
400 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
401 push @{$self->{'_members'}}, @mems;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
402
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
403 return 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
404 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
405
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
406 =head2 remove_members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
407
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
408 Title : remove_members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
409 Usage : $fam->remove_members();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
410 Function: remove all members from a family
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
411 Returns : the previous array of members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
412 Args : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
413
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
414 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
415
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
416 sub remove_members{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
417 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
418 my $mems = $self->{'_members'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
419 $self->{'_members'} = [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
420 return @$mems;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
421 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
422
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
423 #####################################################################
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
424 # aliases for naming consistency or other reasons #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
425 #####################################################################
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
426
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
427 *flush_members = \&remove_members;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
428 *add_member = \&add_members;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
429
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
430 sub members{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
431 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
432 if(@_) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
433 # this is in set mode
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
434 $self->warn("setting members() in ".ref($self)." is deprecated.\n".
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
435 "Use add_members() instead.");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
436 return $self->add_members(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
437 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
438 # get mode
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
439 $self->warn("members() in ".ref($self)." is deprecated.\n".
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
440 "Use get_members() instead.");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
441 return $self->get_members();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
442 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
443 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
444
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
445 1;