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