annotate variant_effect_predictor/Bio/EnsEMBL/Compara/MemberSet.pm @ 0:21066c0abaf5 draft

Uploaded
author willmclaren
date Fri, 03 Aug 2012 10:04:48 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
1 =head1 LICENSE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6 This software is distributed under a modified Apache license.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7 For license details, please see
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11 =head1 CONTACT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17 <helpdesk@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19 =head1 AUTHORSHIP
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 Ensembl Team. Individual contributions can be found in the CVS log.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 =head1 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 MemberSet - A superclass for pairwise or multiple relationships, base of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 Bio::EnsEMBL::Compara::Family, Bio::EnsEMBL::Compara::Homology and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 Bio::EnsEMBL::Compara::Domain.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 A superclass for pairwise and multiple relationships
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 Currently the Member objects are used in the GeneTree structure
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 to represent the leaves of the trees. Each leaf contains an aligned
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 sequence, which is represented as an Member object.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 =head1 INHERITANCE TREE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 Bio::EnsEMBL::Compara::MemberSet
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43 =head1 METHODS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47 package Bio::EnsEMBL::Compara::MemberSet;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 use Scalar::Util qw(weaken);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 use Bio::EnsEMBL::Utils::Argument;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52 use Bio::EnsEMBL::Utils::Scalar qw(:all);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53 use Bio::EnsEMBL::Utils::Exception;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 use Bio::EnsEMBL::Compara::Attribute;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55 use Bio::EnsEMBL::Compara::Member;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58 ####################################
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 # #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60 # Constructor, getters / setters #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 # #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 ####################################
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 =head2 new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 Arg [-DBID] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68 int - internal ID for this object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 Arg [-ADAPTOR]:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70 Bio::EnsEMBL::Compara::DBSQL::MemberSetAdaptor - the object adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71 Arg [-STABLE_ID] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 string - the stable identifier of this object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 Arg [-VERSION] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74 int - the version of the stable identifier of this object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75 Arg [-METHOD_LINK_SPECIES_SET_ID] :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 int - the internal ID for the MethodLinkSpeciesSet object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 Arg [-DESCRIPTION]:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78 string - the description for the object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 Example : $family = Bio::EnsEMBL::Compara::MemberSet->new(...);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 Description: Creates a new MemberSet object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 Returntype : Bio::EnsEMBL::Compara::MemberSet
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 Caller : subclass->new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 my ($class, @args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 my $self = bless {}, $class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 if (scalar @args) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 #do this explicitly.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 my ($dbid, $stable_id, $version, $method_link_species_set_id, $description, $adaptor)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 = rearrange([qw(DBID STABLE_ID VERSION METHOD_LINK_SPECIES_SET_ID DESCRIPTION ADAPTOR)], @args);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 $dbid && $self->dbID($dbid);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99 $stable_id && $self->stable_id($stable_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 $version && $self->version($version);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101 $description && $self->description($description);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 $method_link_species_set_id && $self->method_link_species_set_id($method_link_species_set_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 $adaptor && $self->adaptor($adaptor);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 =head2 new_fast
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 Arg [1] : hash reference $hashref
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 Example : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 Description: This is an ultra fast constructor which requires knowledge of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 the objects internals to be used.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 Returntype :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 Caller :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 sub new_fast {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 my ($class, $hashref) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 return bless $hashref, $class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 =head2 dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 Arg [1] : int $dbID (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 Description: Getter/setter for the internal ID of this relation
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 sub dbID {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 $self->{'_dbID'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143 return $self->{'_dbID'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 =head2 stable_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 Arg [1] : string $stable_id (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 Description: Getter/setter for the stable ID of this relation
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 sub stable_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 $self->{'_stable_id'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 return $self->{'_stable_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164 =head2 version
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 Arg [1] : string $version (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 Description: Getter/setter for the version number of the stable ID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 sub version {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 $self->{'_version'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179 return $self->{'_version'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 =head2 description
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 Arg [1] : string $description (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 Description: Getter/setter for the description corresponding to this relation
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 sub description {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 $self->{'_description'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 return $self->{'_description'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200 =head2 method_link_species_set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202 Arg [1] : MethodLinkSpeciesSet object (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 Description: getter/setter method for the MethodLinkSpeciesSet for this relation.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205 Can lazy-load the method_link_species_set from the method_link_species_set_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206 if that one is set and the adaptor is set.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207 Returntype : Bio::EnsEMBL::Compara::MethodLinkSpeciesSet
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 Exceptions : throws if setting to an unsuitable object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214 sub method_link_species_set {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217 if(@_) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218 my $mlss = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219 assert_ref($mlss, 'Bio::EnsEMBL::Compara::MethodLinkSpeciesSet');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220 $self->{'_method_link_species_set'} = $mlss;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 $self->{'_method_link_species_set_id'} = $mlss->dbID;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223 } elsif (defined $self->{'_method_link_species_set_id'}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224 #lazy load from method_link_species_set_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225 if ((not defined $self->{'_method_link_species_set'})
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226 or ($self->{'_method_link_species_set'}->dbID ne $self->{'_method_link_species_set_id'})) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227 my $mlssa = $self->adaptor->db->get_MethodLinkSpeciesSetAdaptor;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228 my $mlss = $mlssa->fetch_by_dbID($self->method_link_species_set_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229 $self->{'_method_link_species_set'} = $mlss;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233 return $self->{'_method_link_species_set'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236 =head2 method_link_species_set_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238 Arg [1] : integer (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240 Description: getter/setter method for the internal ID of the MethodLinkSpeciesSet
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241 for this relation.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242 Returntype : integer
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249 sub method_link_species_set_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252 $self->{'_method_link_species_set_id'} = shift if (@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 return $self->{'_method_link_species_set_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256 =head2 method_link_type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258 DEPRECATED. Use method_link_species_set()->method()->type() instead. This is not a setter any more.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262 sub method_link_type { # DEPRECATED
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264 deprecate('Use method_link_species_set()->method()->type() instead. This is not a setter any more.');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265 return $self->method_link_species_set->method->type() if defined $self->{'_method_link_species_set_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269 =head2 method_link_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271 DEPRECATED. Use method_link_species_set()->method()->dbID() instead. This is not a setter any more.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275 sub method_link_id { # DEPRECATED
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277 deprecate('Use method_link_species_set()->method()->dbID() instead. This is not a setter any more.');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
278 return $self->method_link_species_set->method->dbID if defined $self->{'_method_link_species_set_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
279 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
280
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
281 =head2 adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
282
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
283 Arg [1] : string $adaptor (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
284 corresponding to a perl module
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
285 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
286 Description: getter/setter method for the adaptor for this relation. Usually
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
287 this will be either GeneTreeAdaptor, FamilyAdaptor, or
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
288 HomologyAdaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
289 Returntype : Bio::EnsEMBL::Compara::DBSQL::BaseAdaptor object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
290 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
291 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
292 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
293
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
294 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
295
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
296 sub adaptor {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
297 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
298 $self->{'_adaptor'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
299 return $self->{'_adaptor'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
300 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
301
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
302
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
303
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
304 ###########################
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
305 # #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
306 # Member content #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
307 # #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
308 ###########################
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
309
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
310 =head2 member_class
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
311
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
312 Description: Returns the type of member used in the set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
313 Returntype : String: Bio::EnsEMBL::Compara::Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
314 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
315 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
316
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
317 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
318
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
319 sub member_class {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
320 return 'Bio::EnsEMBL::Compara::Member';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
321 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
322
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
323
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
324 =head2 deep_copy
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
325
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
326 Description: Returns a copy of $self. All the members are themselves copied
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
327 Returntype : Bio::EnsEMBL::Compara::MemberSet
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
328 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
329 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
330
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
331 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
332
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
333 sub deep_copy {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
334 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
335 my $copy = {};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
336 bless $copy, ref($self);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
337
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
338 foreach my $attr (qw(_dbID _adaptor _version _stable_id _description _method_link_species_set_id)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
339 $copy->{$attr} = $self->{$attr};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
340 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
341
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
342 foreach my $member (@{$self->get_all_Members}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
343 $copy->add_Member($member->copy());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
344 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
345
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
346 return $copy;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
347 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
348
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
349
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
350 =head2 add_Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
351
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
352 Arg [1] : Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
353 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
354 Description: Add a new Member to this set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
355 Returntype : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
356 Exceptions : Throws if input objects don't check
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
357 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
358 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
359
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
360 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
361
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
362 sub add_Member {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
363 my ($self, $member) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
364
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
365 assert_ref($member, $self->member_class);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
366 my $source_name = $member->source_name();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
367 my $taxon_id = $member->taxon_id();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
368 my $genome_db_id = $member->genome_db_id();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
369 #print "adding $source_name: ", $member->dbID, "\n";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
370
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
371 if (defined $self->{'_this_one_first'} && $self->{'_this_one_first'} eq $member->stable_id) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
372 unshift @{$self->{'_member_array'}}, $member ;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
373 unshift @{$self->{'_members_by_source'}{$source_name}}, $member;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
374 unshift @{$self->{'_members_by_source_taxon'}{"${source_name}_${taxon_id}"}}, $member;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
375 if(defined $genome_db_id) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
376 unshift @{$self->{_members_by_source_genome_db}{"${source_name}_${genome_db_id}"}}, $member;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
377 unshift @{$self->{_members_by_genome_db}{$genome_db_id}}, $member;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
378 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
379 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
380 push @{$self->{'_member_array'}}, $member ;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
381 push @{$self->{'_members_by_source'}{$source_name}}, $member;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
382 push @{$self->{'_members_by_source_taxon'}{"${source_name}_${taxon_id}"}}, $member;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
383 if(defined $genome_db_id) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
384 push @{$self->{_members_by_source_genome_db}{"${source_name}_${genome_db_id}"}}, $member;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
385 push @{$self->{_members_by_genome_db}{$genome_db_id}}, $member;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
386 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
387 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
388
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
389 $member->{'set'} = $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
390 weaken($member->{'set'});
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
391 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
392
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
393 sub add_Member_Attribute { # DEPRECATED
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
394 my ($self, $member_attribute) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
395 my ($member, $attr) = @{$member_attribute};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
396
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
397 my $am = Bio::EnsEMBL::Compara::Member::copy($member);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
398 bless $am, $self->member_class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
399 foreach my $key (keys %Bio::EnsEMBL::Compara::Attribute::ok_field) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
400 $am->$key($attr->$key) if defined $attr->key;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
401 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
402 $self->add_Member($am);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
403 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
404
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
405
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
406 sub _tranform_array_to_Member_Attributes {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
407 my ($self, $array) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
408 my @all_ma;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
409 foreach my $member (@$array) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
410 my $attribute = new Bio::EnsEMBL::Compara::Attribute;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
411 foreach my $key (keys %Bio::EnsEMBL::Compara::Attribute::ok_field) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
412 $attribute->$key($member->can($key) ? $member->$key : undef);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
413 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
414 push @all_ma, [$member, $attribute];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
415 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
416 return \@all_ma;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
417 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
418
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
419
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
420 =head2 get_all_Members
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
421
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
422 Arg [1] : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
423 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
424 Description:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
425 Returntype : array reference of Bio::EnsEMBL::Compara::Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
426 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
427 Caller :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
428
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
429 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
430
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
431 sub get_all_Members {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
432 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
433
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
434 unless (defined $self->{'_member_array'}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
435
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
436 my $am_adaptor = $self->adaptor->db->get_MemberAdaptor();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
437 my $members = $am_adaptor->fetch_all_by_MemberSet($self);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
438
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
439 $self->{'_member_array'} = [];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
440 $self->{'_members_by_source'} = {};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
441 $self->{'_members_by_source_taxon'} = {};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
442 $self->{'_members_by_source_genome_db'} = {};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
443 $self->{'_members_by_genome_db'} = {};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
444 foreach my $member (@{$members}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
445 $self->add_Member($member);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
446 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
447 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
448 return $self->{'_member_array'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
449 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
450
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
451
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
452
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
453 =head2 get_all_GeneMember
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
454
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
455 Arg [1] : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
456 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
457 Description:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
458 Returntype : array reference of Bio::EnsEMBL::Compara::Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
459 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
460 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
461
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
462 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
463
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
464 sub get_all_GeneMembers {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
465 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
466
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
467 my $members = [];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
468 foreach my $aligned_member (@{$self->get_all_Members}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
469 push @$members, $aligned_member->gene_member if defined $aligned_member->gene_member;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
470 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
471
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
472 return $members;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
473 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
474 =head2 gene_list
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
475
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
476 Example : my $pair = $homology->gene_list
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
477 Description: return the pair of members for the homology
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
478 Returntype : array ref of (2) Bio::EnsEMBL::Compara::Member objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
479 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
480
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
481 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
482
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
483
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
484 sub gene_list { # DEPRECATED
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
485 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
486 return $self->get_all_GeneMembers
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
487 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
488
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
489
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
490 sub get_all_Member_Attribute { # DEPRECATED
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
491 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
492 return $self->_tranform_array_to_Member_Attributes($self->get_all_Members);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
493 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
494
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
495
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
496 #################################
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
497 # #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
498 # Members per category #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
499 # #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
500 #################################
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
501
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
502 =head2 get_Member_by_source
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
503
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
504 Arg [1] : string $source_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
505 e.g. "ENSEMBLPEP"
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
506 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
507 Description:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
508 Returntype : array reference of Bio::EnsEMBL::Compara::Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
509 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
510 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
511
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
512 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
513
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
514 sub get_Member_by_source {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
515 my ($self, $source_name) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
516 throw("Should give defined source_name as arguments\n") unless (defined $source_name);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
517 my ($scope, $key) = ('_members_by_source', $source_name);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
518 return $self->_get_Member($scope, $key);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
519 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
520
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
521 =head2 get_Member_by_source_taxon
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
522
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
523 Arg [1] : string $source_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
524 Arg [2] : int $taxon_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
525 Example : $domain->get_Member_by_source_taxon('ENSEMBLPEP',9606)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
526 Description:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
527 Returntype : array reference of Bio::EnsEMBL::Compara::Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
528 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
529 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
530
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
531 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
532
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
533 sub get_Member_by_source_taxon {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
534 my ($self, $source_name, $taxon_id) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
535 throw("Should give defined source_name and taxon_id as arguments\n") unless (defined $source_name && defined $taxon_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
536 my ($scope, $key) = ('_members_by_source_taxon', "${source_name}_${taxon_id}");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
537 return $self->_get_Member($scope, $key);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
538 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
539
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
540 =head2 get_Member_by_GenomeDB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
541
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
542 Arg [1] : Bio::EnsEMBL::Compara::GenomeDB $genome_db
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
543 Example : $domain->get_Member_by_GenomeDB($genome_db)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
544 Description: Returns all [Member] entries linked to this GenomeDB.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
545 This will only return EnsEMBL based entries since UniProtKB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
546 entries are not linked to a GenomeDB.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
547 Returntype : array reference of Bio::EnsEMBL::Compara::Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
548 Exceptions : If input is undefined & genome db is not of expected type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
549 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
550
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
551 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
552
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
553 sub get_Member_by_GenomeDB {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
554 my ($self, $genome_db) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
555 throw("Should give defined genome_db as an argument\n") unless defined $genome_db;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
556 assert_ref($genome_db, 'Bio::EnsEMBL::Compara::GenomeDB');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
557 my ($scope, $key) = ('_members_by_genome_db', $genome_db->dbID());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
558 return $self->_get_Member($scope, $key);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
559 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
560
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
561 =head2 get_Member_by_source_GenomeDB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
562
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
563 Arg [1] : string $source_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
564 Arg [2] : Bio::EnsEMBL::Compara::GenomeDB $genome_db
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
565 Example : $domain->get_Member_by_source_taxon('ENSEMBLPEP', $genome_db)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
566 Description: Returns all [Member] entries linked to this GenomeDB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
567 and the given source_name. This will only return EnsEMBL based
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
568 entries since UniProtKB entries are not linked to a GenomeDB.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
569 Returntype : array reference of Bio::EnsEMBL::Compara::Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
570 Exceptions : If input is undefined & genome db is not of expected type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
571 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
572
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
573 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
574
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
575 sub get_Member_by_source_GenomeDB {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
576 my ($self, $source_name, $genome_db) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
577 throw("Should give defined source_name & genome_db as arguments\n") unless defined $source_name && $genome_db;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
578 assert_ref($genome_db, 'Bio::EnsEMBL::Compara::GenomeDB');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
579 my ($scope, $key) = ('_members_by_source_genome_db', "${source_name}_".$genome_db->dbID());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
580 return $self->_get_Member($scope, $key);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
581 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
582
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
583 =head2 _get_Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
584
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
585 Arg [1] : string $scope
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
586 Arg [2] : string $key
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
587 Example : $domain->_get_Member('_members_by_source', 'ENSEMBLPEP')
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
588 Description: Used as the generic reference point for all
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
589 get_Memeber_by* methods. The method searches the given
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
590 scope & if the values cannot be found will initalize that value
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
591 to an empty array reference.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
592 Returntype : array reference of Bio::EnsEMBL::Compara::Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
593 Exceptions : None.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
594 Caller : internal
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
595
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
596 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
597
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
598 sub _get_Member {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
599 my ($self, $scope, $key) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
600 $self->get_all_Members();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
601 $self->{$scope}->{$key} = [] unless defined $self->{$scope}->{$key};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
602 return $self->{$scope}->{$key};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
603 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
604
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
605
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
606 =head2 get_Member_Attribute_by_source
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
607
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
608 Arg [1] : string $source_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
609 e.g. "ENSEMBLPEP"
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
610 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
611 Description:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
612 Returntype : array reference of Bio::EnsEMBL::Compara::Member and attribute
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
613 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
614 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
615
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
616 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
617
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
618 sub get_Member_Attribute_by_source { # DEPRECATED
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
619 my ($self, $source_name) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
620 throw("Should give defined source_name as arguments\n") unless (defined $source_name);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
621 my ($attribute_scope, $key) = ('_members_by_source', $source_name);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
622 return $self->_get_Member_Attribute($attribute_scope, $key);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
623 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
624
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
625 =head2 get_Member_Attribute_by_source_taxon
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
626
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
627 Arg [1] : string $source_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
628 Arg [2] : int $taxon_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
629 Example : $domain->get_Member_by_source_taxon('ENSEMBLPEP',9606)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
630 Description:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
631 Returntype : array reference of Bio::EnsEMBL::Compara::Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
632 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
633 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
634
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
635 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
636
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
637 sub get_Member_Attribute_by_source_taxon { # DEPRECATED
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
638 my ($self, $source_name, $taxon_id) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
639 throw("Should give defined source_name and taxon_id as arguments\n") unless (defined $source_name && defined $taxon_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
640 my ($attribute_scope, $key) = ('_members_by_source_taxon', "${source_name}_${taxon_id}");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
641 return $self->_get_Member_Attribute($attribute_scope, $key);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
642 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
643
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
644 =head2 get_Member_Attribute_by_GenomeDB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
645
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
646 Arg [1] : Bio::EnsEMBL::Compara::GenomeDB $genome_db
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
647 Example : $domain->get_Member_Attribute_by_GenomeDB($genome_db)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
648 Description: Returns all [Member_Attribute] entries linked to this GenomeDB.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
649 This will only return EnsEMBL based entries since UniProtKB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
650 entries are not linked to a GenomeDB.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
651 Returntype : array reference of Bio::EnsEMBL::Compara::Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
652 Exceptions : If input is undefined & genome db is not of expected type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
653 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
654
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
655 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
656
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
657 sub get_Member_Attribute_by_GenomeDB { # DEPRECATED
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
658 my ($self, $genome_db) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
659 throw("Should give defined genome_db as an argument\n") unless defined $genome_db;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
660 assert_ref($genome_db, 'Bio::EnsEMBL::Compara::GenomeDB');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
661 my ($attribute_scope, $key) = ('_members_by_genome_db', $genome_db->dbID());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
662 return $self->_get_Member_Attribute($attribute_scope, $key);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
663 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
664
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
665 =head2 get_Member_Attribute_by_source_GenomeDB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
666
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
667 Arg [1] : string $source_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
668 Arg [2] : Bio::EnsEMBL::Compara::GenomeDB $genome_db
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
669 Example : $domain->get_Member_by_source_taxon('ENSEMBLPEP', $genome_db)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
670 Description: Returns all [Member_Attribute] entries linked to this GenomeDB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
671 and the given source_name. This will only return EnsEMBL based
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
672 entries since UniProtKB entries are not linked to a GenomeDB.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
673 Returntype : array reference of Bio::EnsEMBL::Compara::Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
674 Exceptions : If input is undefined & genome db is not of expected type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
675 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
676
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
677 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
678
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
679 sub get_Member_Attribute_by_source_GenomeDB { # DEPRECATED
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
680 my ($self, $source_name, $genome_db) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
681 throw("Should give defined source_name & genome_db as arguments\n") unless defined $source_name && $genome_db;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
682 assert_ref($genome_db, 'Bio::EnsEMBL::Compara::GenomeDB');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
683 my ($attribute_scope, $key) = ('_members_by_source_genome_db', "${source_name}_".$genome_db->dbID());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
684 return $self->_get_Member_Attribute($attribute_scope, $key);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
685 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
686
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
687 =head2 _get_Member_Attribute
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
688
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
689 Arg [1] : string $attribute_scope
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
690 Arg [2] : string $key
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
691 Example : $domain->_get_Member_Attribute('_members_by_source', 'ENSEMBLPEP')
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
692 Description: Used as the generic reference point for all
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
693 get_Memeber_Attribute_by* methods. The method searches the given
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
694 scope & if the values cannot be found will initalize that value
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
695 to an empty array reference.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
696 Returntype : array reference of Bio::EnsEMBL::Compara::Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
697 Exceptions : None.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
698 Caller : internal
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
699
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
700 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
701
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
702 sub _get_Member_Attribute { # DEPRECATED
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
703 my ($self, $attribute_scope, $key) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
704 $self->get_all_Member_Attribute();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
705 $self->{$attribute_scope}->{$key} = [] unless defined $self->{$attribute_scope}->{$key};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
706 return $self->_tranform_array_to_Member_Attributes($self->{$attribute_scope}->{$key});
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
707 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
708
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
709
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
710
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
711
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
712
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
713 =head2 Member_count_by_source
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
714
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
715 Arg [1] : string $source_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
716 e.g. "ENSEMBLPEP"
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
717 Example : $domain->Member_count_by_source('ENSEMBLPEP');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
718 Description:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
719 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
720 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
721 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
722
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
723 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
724
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
725 sub Member_count_by_source {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
726 my ($self, $source_name) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
727
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
728 throw("Should give a defined source_name as argument\n") unless (defined $source_name);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
729
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
730 return scalar @{$self->get_Member_by_source($source_name)};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
731 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
732
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
733 =head2 Member_count_by_source_taxon
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
734
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
735 Arg [1] : string $source_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
736 Arg [2] : int $taxon_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
737 Example : Member_count_by_source_taxon('ENSEMBLPEP',9606);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
738 Description:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
739 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
740 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
741 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
742
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
743 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
744
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
745 sub Member_count_by_source_taxon {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
746 my ($self, $source_name, $taxon_id) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
747
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
748 throw("Should give defined source_name and taxon_id as arguments\n") unless (defined $source_name && defined $taxon_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
749
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
750 return scalar @{$self->get_Member_by_source_taxon($source_name,$taxon_id)};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
751 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
752
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
753 =head2 Member_count_by_GenomeDB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
754
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
755 Arg [1] : Bio::EnsEMBL::Compara::GenomeDB $genome_db
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
756 Example : Member_count_by_GenomeDB($genome_db);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
757 Description: Convenience wrapper for member counts by a GenomeDB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
758 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
759 Exceptions : Thrown by subrountines this call. See get_Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
760 equivalent
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
761 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
762
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
763 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
764
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
765 sub Member_count_by_GenomeDB {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
766 my ($self, $genome_db) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
767 return scalar @{$self->get_Member_by_GenomeDB($genome_db)};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
768 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
769
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
770 =head2 Member_count_by_source_GenomeDB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
771
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
772 Arg [1] : string $source_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
773 Arg [2] : Bio::EnsEMBL::Compara::GenomeDB $genome_db
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
774 Example : Member_count_by_source_GenomeDB('ENSEMBLPEP', $genome_db);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
775 Description: Convenience wrapper for member counts by a GenomeDB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
776 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
777 Exceptions : Thrown by subrountines this call. See get_Member
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
778 equivalent
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
779 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
780
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
781 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
782
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
783
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
784 sub Member_count_by_source_GenomeDB {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
785 my ($self, $source_name, $genome_db) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
786 return scalar @{$self->get_Member_by_source_GenomeDB($source_name, $genome_db)};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
787 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
788
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
789
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
790 =head2 get_all_taxa_by_member_source_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
791
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
792 Arg [1] : string $source_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
793 e.g. "ENSEMBLPEP"
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
794 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
795 Description: Returns the distinct taxons found in this family across
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
796 the specified source. If you do not specify a source then
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
797 the code will return all taxons in this family.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
798 Returntype : array reference of distinct Bio::EnsEMBL::Compara::NCBITaxon
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
799 objects found in this family
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
800 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
801 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
802
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
803 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
804
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
805 sub get_all_taxa_by_member_source_name {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
806 my ($self, $source_name) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
807
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
808 my $ncbi_ta = $self->adaptor->db->get_NCBITaxonAdaptor();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
809 my @taxa;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
810 $self->get_all_Members;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
811 foreach my $key (keys %{$self->{_members_by_source_taxon}}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
812 my @parts = split('_', $key);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
813 if ($parts[0] eq $source_name) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
814 push @taxa, $ncbi_ta->fetch_node_by_taxon_id($parts[1]);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
815 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
816 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
817 return \@taxa;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
818 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
819
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
820 =head2 get_all_GenomeDBs_by_member_source_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
821
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
822 Arg [1] : string $source_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
823 e.g. "ENSEMBLPEP"
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
824 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
825 Description: Returns the distinct GenomeDBs found in this family. Please note
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
826 that if you specify a source other than an EnsEMBL based one
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
827 the chances of getting back GenomeDBs are very low.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
828 Returntype : array reference of distinct Bio::EnsEMBL::Compara::GenomeDB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
829 objects found in this family
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
830 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
831 Caller : public
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
832
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
833 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
834
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
835 sub get_all_GenomeDBs_by_member_source_name {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
836 my ($self, $source_name) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
837
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
838 my $gdb_a = $self->adaptor->db->get_GenomeDBAdaptor();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
839 my @gdbs;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
840 $self->get_all_Members;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
841 foreach my $key (keys %{$self->{_members_by_source_genome_db}}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
842 my @parts = split('_', $key);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
843 if ($parts[0] eq $source_name) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
844 push @gdbs, $gdb_a->fetch_by_dbID($parts[1]);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
845 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
846 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
847 return \@gdbs;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
848 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
849
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
850 =head2 has_species_by_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
851
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
852 Arg [1] : string $species_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
853 Example : my $ret = $homology->has_species_by_name("Homo sapiens");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
854 Description: return TRUE or FALSE whether one of the members in the homology is from the given species
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
855 Returntype : 1 or 0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
856 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
857 Caller :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
858
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
859 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
860
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
861
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
862 sub has_species_by_name {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
863 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
864 my $species_name = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
865
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
866 foreach my $member (@{$self->get_all_Members}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
867 return 1 if defined $member->genome_db and ($member->genome_db->name eq $species_name);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
868 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
869 return 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
870 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
871
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
872
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
873 1;