annotate variant_effect_predictor/Bio/EnsEMBL/Compara/Homology.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 package Bio::EnsEMBL::Compara::Homology;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 use Bio::EnsEMBL::Utils::Exception qw( deprecate throw warning );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6 use base ('Bio::EnsEMBL::Compara::AlignedMemberSet');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8 =head1 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10 Bio::EnsEMBL::Compara::Homology - Homology between two proteins
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14 use Bio::EnsEMBL::Registry;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16 my $homology_adaptor = $reg->get_adaptor("Multi", "compara", "Homology");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18 ## Please, refer to Bio::EnsEMBL::Compara::DBSQL::MemberAdaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19 ## to see how to get a Member from the database. Also, you can
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20 ## find alternative ways to fetch homologies in the POD for the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 ## Bio::EnsEMBL::Compara::DBSQL::HomologyAdaptor module.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 my $homologies = $homology_adaptor->fetch_all_by_Member($member);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 foreach my $this_homology (@$homologies) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26 my $homologue_genes = $this_homology->gene_list();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 print join(" and ", @$homologue_genes), " are ",
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 $this_homology->description, "\n";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 =head1 AUTHOR
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 Ensembl Team
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 =head1 COPYRIGHT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 Copyright (c) 1999-2012. Ensembl Team
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 You may distribute this module under the same terms as perl itself
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 =head1 CONTACT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43 This modules is part of the EnsEMBL project (http://www.ensembl.org)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45 Questions can be posted to the ensembl-dev mailing list:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 dev@ensembl.org
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 =head1 INHERITANCE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 This class inherits all the methods and attributes from Bio::EnsEMBL::DBSQL::BaseAdaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52 =head1 APPENDIX
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 =head2 subtype
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 Arg [1] : string $subtype (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 Example : $subtype = $homology->subtype();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63 $homology->subtype($subtype);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 Description: getter/setter of string description of homology subtype.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 Examples: 'Chordata', 'Euteleostomi', 'Homo sapiens'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 sub subtype {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74 # deprecate("Use taxonomy_level() instead.");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75 return $self->taxonomy_level(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 =head2 taxonomy_level
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 Arg [1] : string $taxonomy_level (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82 Example : $taxonomy_level = $homology->taxonomy_level();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 $homology->taxonomy_level($taxonomy_level);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 Description: getter/setter of string description of homology taxonomy_level.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 Examples: 'Chordata', 'Euteleostomi', 'Homo sapiens'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 sub taxonomy_level {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 $self->{'_subtype'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 $self->{'_subtype'} = '' unless($self->{'_subtype'});
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 return $self->{'_subtype'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 =head2 taxonomy_alias
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 Arg [1] : string $taxonomy_alias (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 Example : $taxonomy_alias = $homology->taxonomy_alias();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104 $homology->taxonomy_alias($taxonomy_alias);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 Description: get string description of homology taxonomy_alias.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 Examples: 'Chordates', 'Bony vertebrates', 'Homo sapiens'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107 Defaults to taxonomy_level if alias is not in the db
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 sub taxonomy_alias {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 my $ancestor_node_id = $self->ancestor_node_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 return unless $ancestor_node_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 my $ancestor_node = $self->adaptor->db->get_GeneTreeNodeAdaptor->fetch_node_by_node_id($ancestor_node_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 return unless $ancestor_node;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 my $taxon_id = $ancestor_node->get_tagvalue('taxon_id');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 return unless $taxon_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 my $taxon = $self->adaptor->db->get_NCBITaxonAdaptor->fetch_node_by_taxon_id($taxon_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 return unless $taxon;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 return $taxon->ensembl_alias();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 =head2 n
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136 Arg [1] : float $n (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 Example : $n = $homology->n();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 $homology->n(3);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139 Description: getter/setter of number of nonsynonymous positions for the homology.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 Returntype : float
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 sub n {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 $self->{'_n'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 return $self->{'_n'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 =head2 s
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 Arg [1] : float $s (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156 Example : $s = $homology->s();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157 $homology->s(4);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 Description: getter/setter of number of synonymous positions for the homology.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 Returntype : float
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 sub s {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 $self->{'_s'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 return $self->{'_s'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 =head2 lnl
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 Arg [1] : float $lnl (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 Example : $lnl = $homology->lnl();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 $homology->lnl(-1234.567);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 Description: getter/setter of number of the negative log likelihood for the dnds homology calculation.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 Returntype : float
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 sub lnl {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 $self->{'_lnl'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 return $self->{'_lnl'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 =head2 threshold_on_ds
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192 Arg [1] : float $threshold_ond_ds (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 Example : $lnl = $homology->threshold_on_ds();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 $homology->threshold_on_ds(1.01340);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 Description: getter/setter of the threshold on ds for which the dnds ratio still makes sense.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 Returntype : float
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202 sub threshold_on_ds {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 $self->{'_threshold_on_ds'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205 return $self->{'_threshold_on_ds'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 =head2 dn
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 Arg [1] : floating $dn (can be undef)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211 Arg [2] : boolean $apply_threshold_on_ds (optional, default = 1)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 Can be 0 or 1.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213 Example : $homology->dn or $homology->dn(0.1209)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214 if you want to retrieve dn without applying threshold_on_ds, the right call
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215 is $homology->dn(undef,0).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216 Description: set/get the non synonymous subtitution rate
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217 Returntype : floating
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219 Caller :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224 sub dn {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225 my ($self, $dn, $apply_threshold_on_ds) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227 $self->{'_dn'} = $dn if (defined $dn);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228 $apply_threshold_on_ds = 1 unless (defined $apply_threshold_on_ds);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230 unless (defined $self->ds(undef, $apply_threshold_on_ds)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 return undef;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234 return $self->{'_dn'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237 =head2 ds
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239 Arg [1] : floating $ds (can be undef)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240 Arg [2] : boolean $apply_threshold_on_ds (optional, default = 1)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241 Can be 0 or 1.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242 Example : $homology->ds or $homology->ds(0.9846)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243 if you want to retrieve ds without applying threshold_on_ds, the right call
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244 is $homology->dn(undef,0).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245 Description: set/get the synonymous subtitution rate
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246 Returntype : floating
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248 Caller :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 sub ds {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254 my ($self, $ds, $apply_threshold_on_ds) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256 $self->{'_ds'} = $ds if (defined $ds);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257 $apply_threshold_on_ds = 1 unless (defined $apply_threshold_on_ds);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259 if (defined $self->{'_ds'} &&
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260 defined $self->{'_threshold_on_ds'} &&
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261 $self->{'_ds'} > $self->{'_threshold_on_ds'}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 if ($apply_threshold_on_ds) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264 return undef;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266 warning("Threshold on ds values is switched off. Be aware that you may obtain saturated ds values that are not to be trusted, neither the dn/ds ratio\n");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270 return $self->{'_ds'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273 =head2 dnds_ratio
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275 Arg [1] : boolean $apply_threshold_on_ds (optional, default = 1)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276 Can be 0 or 1.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277 Example : $homology->dnds_ratio or
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
278 $homology->dnds_ratio(0) if you want to obtain a result
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
279 even when the dS is above the threshold on dS.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
280 Description: return the ratio of dN/dS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
281 Returntype : floating
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
282 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
283 Caller :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
284
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
285 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
286
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
287
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
288 sub dnds_ratio {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
289 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
290 my $apply_threshold_on_ds = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
291
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
292 $apply_threshold_on_ds = 1 unless (defined $apply_threshold_on_ds);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
293
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
294 my $ds = $self->ds(undef, $apply_threshold_on_ds);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
295 my $dn = $self->dn(undef, $apply_threshold_on_ds);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
296
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
297 unless (defined $dn &&
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
298 defined $ds &&
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
299 $ds !=0) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
300 return undef;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
301 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
302
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
303 unless (defined $self->{'_dnds_ratio'}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
304 $self->{'_dnds_ratio'} = sprintf("%.5f",$dn/$ds);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
305 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
306
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
307 return $self->{'_dnds_ratio'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
308 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
309
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
310
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
311
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
312 =head2 print_homology
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
313
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
314 Example : $homology->print_homology
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
315 Description: This method prints a short descriptor of the homology
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
316 USE ONLY FOR DEBUGGING not for data output since the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
317 format of this output may change as need dictates.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
318
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
319 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
320
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
321 sub print_homology {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
322 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
323
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
324 printf("Homology %d,%s,%s : ", $self->dbID, $self->description, $self->subtype);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
325 foreach my $member (@{$self->gene_list}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
326 printf("%s(%d)\t", $member->stable_id, $member->dbID);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
327 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
328 print("\n");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
329 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
330
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
331
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
332 =head2 get_all_PeptideAlignFeature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
333
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
334 Description: returns a reference to an empty array as we don't have any
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
335 PeptideAlignFeatures associated to the homologies
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
336 Returntype : array ref
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
337 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
338 Caller :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
339
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
340 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
341
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
342 sub get_all_PeptideAlignFeature {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
343
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
344 deprecated("Homologies don't have PeptideAlignFeatures any more. Use DBSQL::PeptideAlignFeatureAdaptor::fetch_all_by_qmember_id_hmember_id() instead");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
345 return [];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
346 }
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
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
351 =head2 homology_key
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
352
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
353 Example : my $key = $homology->homology_key;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
354 Description: returns a string uniquely identifying this homology in world space.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
355 uses the gene_stable_ids of the members and orders them by taxon_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
356 and concatonates them together.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
357 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
358 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
359 Caller :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
360
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
361 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
362
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
363 sub homology_key {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
364 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
365 return $self->{'_homology_key'} if(defined($self->{'_homology_key'}));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
366
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
367 my @genes = sort {$a->taxon_id <=> $b->taxon_id || $a->stable_id cmp $b->stable_id} @{$self->gene_list};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
368 @genes = map ($_->stable_id, @genes);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
369
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
370 my $homology_key = join('_', @genes);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
371 return $homology_key;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
372 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
373
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
374
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
375 =head2 node_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
376
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
377 Arg [1] : int $node_id (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
378 Example : $node_id = $homology->node_id();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
379 $homology->subtype($node_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
380 Description: getter/setter of integer that refer to a node_id in the protein_tree data.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
381 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
382 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
383 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
384
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
385 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
386
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
387 sub node_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
388 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
389
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
390 $self->{'_ancestor_node_id'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
391 $self->{'_ancestor_node_id'} = '' unless($self->{'_ancestor_node_id'});
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
392 return $self->{'_ancestor_node_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
393
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
394 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
395
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
396 =head2 ancestor_node_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
397
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
398 Arg [1] : int $ancestor_node_id (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
399 Example : $ancestor_node_id = $homology->ancestor_node_id();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
400 $homology->subtype($ancestor_node_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
401 Description: getter/setter of integer that refer to the ancestor_node_id in the protein_tree data.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
402 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
403 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
404 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
405
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
406 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
407
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
408 sub ancestor_node_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
409 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
410
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
411 $self->{'_ancestor_node_id'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
412 $self->{'_ancestor_node_id'} = '' unless($self->{'_ancestor_node_id'});
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
413 return $self->{'_ancestor_node_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
414
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
415 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
416
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
417
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
418 =head2 tree_node_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
419
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
420 Arg [1] : int $tree_node_id (optional)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
421 Example : $tree_node_id = $homology->tree_node_id();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
422 $homology->subtype($tree_node_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
423 Description: getter/setter of integer that refer to the tree node_id in the protein_tree data.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
424 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
425 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
426 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
427
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
428 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
429
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
430 sub tree_node_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
431 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
432
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
433 $self->{'_tree_node_id'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
434 $self->{'_tree_node_id'} = '' unless($self->{'_tree_node_id'});
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
435 return $self->{'_tree_node_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
436
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
437 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
438
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
439
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
440 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
441