annotate variant_effect_predictor/Bio/Cluster/SequenceFamily.pm @ 2:a5976b2dce6f

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