annotate variant_effect_predictor/Bio/EnsEMBL/Variation/Failable.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 # Ensembl module for Bio::EnsEMBL::Variation::BaseStructuralVariation
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 # Copyright (c) 2011 Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 Bio::EnsEMBL::Variation::Failable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 This object returns failed information.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 package Bio::EnsEMBL::Variation::Failable;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 =head2 failed_description
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 Arg [1] : $failed_description (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 The new value to set the failed_description attribute to. Should
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 be a reference to a list of strings, alternatively a string can
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 be passed. If multiple failed descriptions are specified, they should
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 be separated with semi-colons.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 Example : $failed_str = $sv->failed_description();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 Description: Get/Sets the failed description for this structural variant. The failed
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 descriptions are lazy-loaded from the database.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 Returntype : Semi-colon separated string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 Exceptions : Thrown on illegal argument.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 Status : At risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 sub failed_description {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 my $description = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 # Update the description if necessary
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 if (defined($description)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 # If the description is a string, split it by semi-colon and take the reference
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 if (check_ref($description,'STRING')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 my @pcs = split(/;/,$description);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 $description = \@pcs;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 # Throw an error if the description is not an arrayref
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 assert_ref($description.'ARRAY');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 # Update the cached failed_description
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 $self->{'failed_description'} = $description;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 # Else, fetch it from the db if it's not cached
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 elsif (!defined($self->{'failed_description'})) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 $self->{'failed_description'} = $self->get_all_failed_descriptions();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 # Return a semi-colon separated string of descriptions
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 return join(";",@{$self->{'failed_description'}});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 =head2 get_all_failed_descriptions
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 if ($sv->is_failed()) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 my $descriptions = $sv->get_all_failed_descriptions();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 print "Structural variant " . $sv->variation_name() . " has been flagged as failed because '";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 print join("' and '",@{$descriptions}) . "'\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 Description: Gets all failed descriptions associated with this Structural variant.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 Returntype : Reference to a list of strings
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 Exceptions : Thrown if an adaptor is not attached to this object.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 Status : At risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 sub get_all_failed_descriptions {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 # If the failed descriptions haven't been cached yet, load them from db
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 unless (defined($self->{'failed_description'})) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 # Check that this allele has an adaptor attached
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 unless (defined($self->adaptor())) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 throw('An adaptor must be attached to the ' . ref($self) . ' object');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 $self->{'failed_description'} = $self->adaptor->get_all_failed_descriptions($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 return $self->{'failed_description'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 =head2 is_failed
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 Example : print "Structural variant '" . $sv->variation_name() . "' has " . ($sv->is_failed() ? "" : "not ") . "been flagged as failed\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 Description: Gets the failed attribute for this structural variant. The failed attribute
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 is lazy-loaded from the database.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 Returntype : int
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 Status : At risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 sub is_failed {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 return (length($self->failed_description()) > 0);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 1;