annotate variant_effect_predictor/Bio/EnsEMBL/Compara/CAFETreeNode.pm @ 1:d6778b5d8382 draft default tip

Deleted selected files
author willmclaren
date Fri, 03 Aug 2012 10:05:43 -0400
parents 21066c0abaf5
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-2011 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 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 Bio::EnsEMBL::Compara::GeneTree
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 Tree - Class for a CAFE tree
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 Specific subclass of NestedSet to add functionality when the nodes of this tree
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 are CAFETreeMember objects.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32 =head1 INHERITANCE TREE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 Bio::EnsEMBL::Compara::CAFETreeNode
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 +- Bio::EnsEMBL::Compara::NestedSet
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 +- Bio::EnsEMBL::Compara::Graph::Node
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 +- Bio::EnsEMBL::Compara::Graph::CGObject
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 =head1 APPENDIX
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 package Bio::EnsEMBL::Compara::CAFETreeNode;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49 use Data::Dumper;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 use base ('Bio::EnsEMBL::Compara::NestedSet');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53 #################################################
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 # Object variable methods
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55 #################################################
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58 sub method_link_species_set_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 my ($self, $mlss_id) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 if (defined $mlss_id) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 $self->{'_method_link_species_set_id'} = $mlss_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 return $self->{'_method_link_species_set_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 sub species_tree {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68 my ($self, $species_tree) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70 if (defined $species_tree) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71 $self->{'_species_tree'} = $species_tree;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 return $self->{'_species_tree'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 sub genome_db {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78 return undef unless ($self->is_leaf);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 $self->throw("taxon_id is not set in this node") unless ($self->taxon_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 my $GenomeDBAdaptor = $self->adaptor->db->get_GenomeDBAdaptor;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 my $genomeDB = $GenomeDBAdaptor->fetch_by_taxon_id($self->taxon_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82 return $genomeDB;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 sub lambdas {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 my ($self, $lambdas) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 if (defined $lambdas) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 $self->{'_lambdas'} = $lambdas;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 return $self->{'_lambdas'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 sub avg_pvalue {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 my ($self, $avg_pvalue) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97 if (defined $avg_pvalue) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 $self->{'_avg_pvalue'} = $avg_pvalue;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 return $self->{'_avg_pvalue'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 sub pvalue_lim {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104 my ($self, $pvalue) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 if (defined $pvalue) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 $self->{'_pvalue_lim'} = $pvalue;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 return $self->{'_pvalue_lim'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 sub fam_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 my ($self, $fam_id) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 if (defined $fam_id) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 $self->{'_fam_id'} = $fam_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 return $self->{'_fam_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 sub taxon_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 my ($self, $taxon_id) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 if (defined $taxon_id) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 $self->{'_taxon_id'} = $taxon_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126 return $self->{'_taxon_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129 sub n_members {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 my ($self, $n_members) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 if (defined $n_members) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 $self->{'_n_members'} = $n_members;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 return $self->{'_n_members'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 sub p_value {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139 my ($self, $pvalue) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 if (defined $pvalue) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 $self->{'_p_value'} = $pvalue;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 return $self->{'_p_value'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 sub is_tree_significant {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 return $self->avg_pvalue() < $self->pvalue_lim();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 sub is_node_significant {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154 return $self->p_value() < $self->root->pvalue_lim();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157 sub get_contractions {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 my $contractions;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 for my $node (@{$self->get_all_nodes}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 if (defined $node->p_value && ($node->p_value < $self->pvalue_lim) && $node->is_contraction) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 push @{$contractions}, $node;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 return $contractions || [];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 sub get_expansions {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 my $expansions;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171 for my $node (@{$self->get_all_nodes}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 if (defined $node->p_value && ($node->p_value < $self->pvalue_lim) && $node->is_expansion) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173 push @{$expansions}, $node;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 return $expansions || [];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179 sub is_expansion {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181 if ($self->has_parent) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 return 1 if ($self->n_members > $self->parent->n_members);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 return 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 sub is_contraction {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189 if ($self->has_parent) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 return 1 if ($self->n_members < $self->parent->n_members);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192 return 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 1;