annotate variant_effect_predictor/Bio/EnsEMBL/StableIdEvent.pm @ 0:2bc9b66ada89 draft default tip

Uploaded
author mahtabm
date Thu, 11 Apr 2013 06:29:17 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1 =head1 LICENSE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
2
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
5
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
6 This software is distributed under a modified Apache license.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
7 For license details, please see
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
8
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
10
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
11 =head1 CONTACT
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
12
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
15
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
17 <helpdesk@ensembl.org>.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
18
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
19 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
20
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
21 =head1 NAME
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
22
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
23 Bio::EnsEMBL::StableIdEvent- object representing a stable ID mapping event
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25 =head1 SYNOPSIS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27 my $old_id = Bio::EnsEMBL::ArchiveStableId->new(
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28 -stable_id => 'ENSG001',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29 -version => 1,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30 -type => 'Gene',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33 my $new_id = Bio::EnsEMBL::ArchiveStableId->new(
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34 -stable_id => 'ENSG001',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35 -version => 2,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36 -type => 'Gene',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39 my $event = Bio::EnsEMBL::StableIdEvent->new(
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40 -old_id => $old_id,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41 -new_id => $new_id,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42 -score => 0.997
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45 # directly access attributes in old and new ArchiveStableId
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46 my $old_stable_id = $event->get_attribute( 'old', 'stable_id' );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48 =head1 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50 This object represents a stable ID mapping event. Such an event links two
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51 ArchiveStableIds with a mapping score.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53 =head1 METHODS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55 new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56 old_ArchiveStableId
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57 new_ArchiveStableId
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
58 score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
59 get_attribute
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60 ident_string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62 =head1 RELATED MODULES
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
64 Bio::EnsEMBL::ArchiveStableId
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
65 Bio::EnsEMBL::DBSQL::ArchiveStableIdAdaptor
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
66 Bio::EnsEMBL::StableIdHistoryTree
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
67
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
68 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70 package Bio::EnsEMBL::StableIdEvent;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73 use warnings;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74 no warnings 'uninitialized';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76 use Bio::EnsEMBL::Utils::Exception qw(throw warning);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80 =head2 new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82 Arg[1] : Bio::EnsEMBL::ArchiveStableId $old_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83 The old ArchiveStableId in the mapping event
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84 Arg[2] : Bio::EnsEMBL::ArchiveStableId $new_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85 The new ArchiveStableId in the mapping event
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86 Arg[3] : (optional) float $score - score of this mapping event
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87 Example : my $event = Bio::EnsEMBL::StableIdEvent->new(
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88 $arch_id1, $arch_id2, 0.977);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89 Description : object constructor
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90 Return type : Bio::EnsEMBL::StableIdEvent
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 Exceptions : thrown on wrong argument types
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92 Caller : Bio::EnsEMBL::DBSQL::ArchiveStableIdAdaptor::fetch_history_tree_by_stable_id, general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93 Status : At Risk
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94 : under development
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98 sub new {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99 my $caller = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100 my $class = ref($caller) || $caller;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102 my ($old_id, $new_id, $score) = rearrange([qw(OLD_ID NEW_ID SCORE)], @_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104 throw("Need old or new Bio::EnsEMBL::ArchiveStableId to create StableIdEvent")
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105 unless ($old_id || $new_id);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107 my $self = {};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108 bless $self, $class;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110 # initialise object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111 $self->old_ArchiveStableId($old_id);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112 $self->new_ArchiveStableId($new_id);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113 $self->score($score);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115 return $self;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119 =head2 old_ArchiveStableId
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121 Arg[1] : (optional) Bio::EnsEMBL::ArchiveStableId $archive_id, or undef
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122 The old ArchiveStableId to set for this mapping event
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123 Example : # getter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124 my $archive_id = $event->old_ArchiveStableId;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126 # setter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127 $event->old_ArchiveStableId($archive_id);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128 Description : Getter/setter for old ArchiveStableId in this mapping event.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129 Return type : Bio::EnsEMBL::ArchiveStableId
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130 Exceptions : thrown on wrong argument type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132 Status : At Risk
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133 : under development
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137 sub old_ArchiveStableId {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140 # setter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141 if (@_) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142 my $archive_id = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144 # if argument is defined, check type. undef is also legal as an argument.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
145 if (defined($archive_id)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
146 throw("Need a Bio::EnsEMBL::ArchiveStableId.") unless
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
147 (ref($archive_id) && $archive_id->isa('Bio::EnsEMBL::ArchiveStableId'));
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
148 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
149
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
150 $self->{'old_id'} = $archive_id;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
151 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
152
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
153 # getter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
154 return $self->{'old_id'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
155 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
156
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
157
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
158 =head2 new_ArchiveStableId
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
159
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
160 Arg[1] : (optional) Bio::EnsEMBL::ArchiveStableId $archive_id, or undef
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
161 The new ArchiveStableId to set for this mapping event
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
162 Example : # getter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
163 my $archive_id = $event->new_ArchiveStableId;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
164
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
165 # setter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
166 $event->new_ArchiveStableId($archive_id);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
167 Description : Getter/setter for new ArchiveStableId in this mapping event.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
168 Return type : Bio::EnsEMBL::ArchiveStableId
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
169 Exceptions : thrown on wrong argument type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
170 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
171 Status : At Risk
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
172 : under development
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
173
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
174 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
175
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
176 sub new_ArchiveStableId {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
177 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
178
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
179 # setter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
180 if (@_) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
181 my $archive_id = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
182
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
183 # if argument is defined, check type. undef is also legal as an argument.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
184 if (defined($archive_id)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
185 throw("Need a Bio::EnsEMBL::ArchiveStableId.") unless
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
186 (ref($archive_id) && $archive_id->isa('Bio::EnsEMBL::ArchiveStableId'));
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
187 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
188
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
189 $self->{'new_id'} = $archive_id;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
190 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
191
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
192 # getter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
193 return $self->{'new_id'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
194 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
195
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
196
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
197 =head2 score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
198
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
199 Arg[1] : (optional) float $score - the score to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
200 Example : my $score = $event->score;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
201 Description : Getter/setter for mapping event score.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
202 Return type : float or undef
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
203 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
204 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
205 Status : At Risk
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
206 : under development
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
207
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
208 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
209
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
210 sub score {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
211 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
212 $self->{'score'} = shift if (@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
213 return $self->{'score'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
214 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
215
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
216
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
217 =head2 get_attribute
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
218
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
219 Arg[1] : String $type - determines whether to get attribute from 'old'
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
220 or 'new' ArchiveStableId
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
221 Arg[2] : String $attr - ArchiveStableId attribute to fetch
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
222 Example : my $old_stable_id = $event->get_attribute('old', 'stable_id');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
223 Description : Accessor to attributes of the ArchiveStableIds attached to this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
224 event. Convenience method that does the check for undef old
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
225 and/or new ArchiveStableId for you.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
226 Return type : same as respective method in Bio::EnsEMBL::ArchiveStableId, or
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
227 undef
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
228 Exceptions : thrown on wrong arguments
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
229 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
230 Status : At Risk
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
231 : under development
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
232
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
233 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
234
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
235 sub get_attribute {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
236 my ($self, $type, $attr) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
237
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
238 throw("First argument passed to this function has to be 'old' or 'new'.")
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
239 unless ($type eq 'old' or $type eq 'new');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
240
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
241 my %allowed_attribs = map { $_ => 1 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
242 qw(stable_id version db_name release assembly);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
243
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
244 throw("Attribute $attr not allowed.") unless $allowed_attribs{$attr};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
245
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
246 my $call = $type.'_ArchiveStableId';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
247
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
248 if (my $id = $self->$call) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
249 return $id->$attr;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
250 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
251 return undef;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
252 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
253 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
254
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
255
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
256 =head2 ident_string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
257
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
258 Example : print $event->ident_string, "\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
259 Description : Returns a string that can be used to identify your StableIdEvent.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
260 Useful in debug warnings.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
261 Return type : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
262 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
263 Caller : general
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
264 Status : At Risk
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
265 : under development
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
266
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
267 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
268
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
269 sub ident_string {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
270 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
271
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
272 my $old_id = $self->old_ArchiveStableId;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
273 my $new_id = $self->new_ArchiveStableId;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
274
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
275 my $str;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
276
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
277 if ($old_id) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
278 $str = $old_id->stable_id.'.'.$old_id->version.' ('.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
279 $old_id->release.')';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
280 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
281 $str = 'null';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
282 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
283
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
284 $str .= ' -> ';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
285
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
286 if ($new_id) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
287 $str .= $new_id->stable_id.'.'.$new_id->version.' ('.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
288 $new_id->release.')';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
289 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
290 $str .= 'null';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
291 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
292
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
293 $str .= ' ['.$self->score.']';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
294
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
295 return $str;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
296 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
297
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
298
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
299 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
300