annotate variant_effect_predictor/Bio/EnsEMBL/Compara/MethodLinkSpeciesSet.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-2012 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::MethodLinkSpeciesSet -
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22 Relates every method_link with the species_set for which it has been used
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26 use Bio::EnsEMBL::Compara::MethodLinkSpeciesSet;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 my $method_link_species_set = Bio::EnsEMBL::Compara::MethodLinkSpeciesSet->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 -adaptor => $method_link_species_set_adaptor,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 -method => Bio::EnsEMBL::Compara::Method->new( -type => 'MULTIZ'),
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 -species_set_obj => Bio::EnsEMBL::Compara::SpeciesSet->new( -genome_dbs => [$gdb1, $gdb2, $gdb3]),
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 -max_alignment_length => 10000,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 SET VALUES
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 $method_link_species_set->dbID( 12 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 $method_link_species_set->adaptor( $mlss_adaptor );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 $method_link_species_set->method( Bio::EnsEMBL::Compara::Method->new( -type => 'MULTIZ') );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 $method_link_species_set->species_set( Bio::EnsEMBL::Compara::SpeciesSet->new( -genome_dbs => [$gdb1, $gdb2, $gdb3]) );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 $method_link_species_set->max_alignment_length( 10000 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 GET VALUES
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 my $mlss_id = $method_link_species_set->dbID();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43 my $mlss_adaptor = $method_link_species_set->adaptor();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 my $method = $method_link_species_set->method();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45 my $method_link_id = $method_link_species_set->method->dbID();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 my $method_link_type = $method_link_species_set->method->type();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47 my $species_set = $method_link_species_set->species_set_obj();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 my $species_set_id = $method_link_species_set->species_set_obj->dbID();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49 my $genome_dbs = $method_link_species_set->species_set_obj->genome_dbs();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 my $max_alignment_length = $method_link_species_set->max_alignment_length();
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
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60 package Bio::EnsEMBL::Compara::MethodLinkSpeciesSet;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 use Bio::EnsEMBL::Utils::Exception qw(throw warning deprecate);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66 use Bio::EnsEMBL::Compara::Method;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 use Bio::EnsEMBL::Compara::SpeciesSet;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 use base ( 'Bio::EnsEMBL::Storable', # inherit dbID(), adaptor() and new() methods
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70 'Bio::EnsEMBL::Compara::Taggable' # inherit everything related to tagability
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 my $DEFAULT_MAX_ALIGNMENT = 20000;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 =head2 new (CONSTRUCTOR)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78 Arg [-DBID] : (opt.) int $dbID (the database internal ID for this object)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 Arg [-ADAPTOR] : (opt.) Bio::EnsEMBL::Compara::DBSQL::MethodLinkSpeciesSetAdaptor $adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 (the adaptor for connecting to the database)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 Arg [-METHOD] : Bio::EnsEMBL::Compara::Method $method object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82 Arg [-SPECIES_SET_OBJ]: Bio::EnsEMBL::Compara::SpeciesSet $species_set object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 Arg [-NAME] : (opt.) string $name (the name for this method_link_species_set)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 Arg [-SOURCE] : (opt.) string $source (the source of these data)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 Arg [-URL] : (opt.) string $url (the original url of these data)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 Arg [-MAX_ALGINMENT_LENGTH]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 : (opt.) int $max_alignment_length (the length of the largest alignment
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 for this MethodLinkSpeciesSet (only used for genomic alignments)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 Example : my $method_link_species_set = Bio::EnsEMBL::Compara::MethodLinkSpeciesSet->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 -adaptor => $method_link_species_set_adaptor,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 -method => Bio::EnsEMBL::Compara::Method->new( -type => 'MULTIZ' ),
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 -species_set => [$gdb1, $gdb2, $gdb3],
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 -max_alignment_length => 10000,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 Description : Creates a new MethodLinkSpeciesSet object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 Returntype : Bio::EnsEMBL::Compara::MethodLinkSpeciesSet object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 my $caller = shift @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104 my $class = ref($caller) || $caller;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 my $self = $class->SUPER::new(@_); # deal with Storable stuff
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 my ($method, $method_link_id, $method_link_type, $method_link_class,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 $species_set_obj, $species_set, $species_set_id,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110 $name, $source, $url, $max_alignment_length) =
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 rearrange([qw(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 METHOD METHOD_LINK_ID METHOD_LINK_TYPE METHOD_LINK_CLASS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 SPECIES_SET_OBJ SPECIES_SET SPECIES_SET_ID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 NAME SOURCE URL MAX_ALIGNMENT_LENGTH)], @_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 if($method) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 $self->method($method);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 warning("Please consider using -method to set the method instead of older/deprecated ways to do it");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 # the following three should generate a deprecated warning:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 $self->method_link_id($method_link_id) if (defined ($method_link_id));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 $self->method_link_type($method_link_type) if (defined ($method_link_type));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 $self->method_link_class($method_link_class) if (defined ($method_link_class));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 warning("method has not been set in MLSS->new") unless($self->method());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129 $self->species_set_obj($species_set_obj) if (defined ($species_set_obj));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 $self->species_set($species_set) if (defined ($species_set));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131 $self->species_set_id($species_set_id) if (defined ($species_set_id));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 warning("species_set_obj has not been set in MLSS->new") unless($self->species_set_obj());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 $self->name($name) if (defined ($name));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136 $self->source($source) if (defined ($source));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 $self->url($url) if (defined ($url));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 $self->max_alignment_length($max_alignment_length) if (defined ($max_alignment_length));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 sub new_fast {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145 my $class = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 my $hashref = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 return bless $hashref, $class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 sub method {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 my $self = shift @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 if(@_) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156 $self->{'method'} = shift @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 return $self->{'method'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 =head2 method_link_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 Arg [1] : (opt.) integer method_link_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 Example : my $meth_lnk_id = $method_link_species_set->method_link_id();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 Example : $method_link_species_set->method_link_id(23);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 Description: get/set for attribute method_link_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 Returntype : integer
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 Status : DEPRECATED, use $mlss->method->dbID instead
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 sub method_link_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 my $self = shift @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179 deprecate("MLSS->method_link_id() is DEPRECATED, please use MLSS->method->dbID()");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181 if(@_) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 if($self->method) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183 $self->method->dbID( @_ );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185 $self->method( Bio::EnsEMBL::Compara::Method->new(-dbID => @_) );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189 # type is known => fetch the method from DB and set all of its attributes
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 if (!$self->method->dbID and $self->adaptor and my $type = $self->method->type) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191 my $method_adaptor = $self->adaptor->db->getMethodAdaptor;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192 if( my $fetched_method = $method_adaptor->fetch_by_type( $type ) ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 $self->method( $fetched_method );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 warning("Could not fetch method by type '$type'");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199 return $self->method->dbID();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203 =head2 method_link_type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205 Arg [1] : (opt.) string method_link_type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206 Example : my $meth_lnk_type = $method_link_species_set->method_link_type();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207 Example : $method_link_species_set->method_link_type("BLASTZ_NET");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 Description: get/set for attribute method_link_type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 Status : DEPRECATED, use $mlss->method->type instead
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216 sub method_link_type {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217 my $self = shift @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219 deprecate("MLSS->method_link_type() is DEPRECATED, please use MLSS->method->type()");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 if(@_) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222 if($self->method) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223 $self->method->type( @_ );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225 $self->method( Bio::EnsEMBL::Compara::Method->new(-type => @_) );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229 # dbID is known => fetch the method from DB and set all of its attributes
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230 if (!$self->method->type and $self->adaptor and my $dbID = $self->method->dbID) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 my $method_adaptor = $self->adaptor->db->getMethodAdaptor;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232 if( my $fetched_method = $method_adaptor->fetch_by_dbID( $dbID ) ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233 $self->method( $fetched_method );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235 warning("Could not fetch method by dbID '$dbID'");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239 return $self->method->type();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243 =head2 method_link_class
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245 Arg [1] : (opt.) string method_link_class
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246 Example : my $meth_lnk_class = $method_link_species_set->method_link_class();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247 Example : $method_link_species_set->method_link_class("GenomicAlignBlock.multiple_alignment");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248 Description: get/set for attribute method_link_class
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252 Status : DEPRECATED, use $mlss->method->class instead
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256 sub method_link_class {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257 my $self = shift @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259 deprecate("MLSS->method_link_class() is DEPRECATED, please use MLSS->method->class()");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261 if(@_) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262 if($self->method) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 $self->method->class( @_ );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265 $self->method( Bio::EnsEMBL::Compara::Method->new(-class => @_) );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269 # dbID is known => fetch the method from DB and set all of its attributes
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270 if (!$self->method->class and $self->adaptor and my $dbID = $self->method->dbID) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271 my $method_adaptor = $self->adaptor->db->getMethodAdaptor;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272 if( my $fetched_method = $method_adaptor->fetch_by_dbID( $dbID ) ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273 $self->method( $fetched_method );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275 warning("Could not fetch method by dbID '$dbID'");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
278
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
279 return $self->method->class();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
280 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
281
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
282
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
283 =head2 species_set_obj
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
284
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
285 Arg [1] : (opt.) Bio::EnsEMBL::Compara::SpeciesSet species_set object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
286 Example : my $species_set_obj = $mlss->species_set_obj();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
287 Example : $mlss->species_set_obj( $species_set_obj );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
288 Description: getter/setter for species_set_obj attribute
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
289 Returntype : Bio::EnsEMBL::Compara::SpeciesSet
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
290 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
291 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
292
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
293 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
294
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
295 sub species_set_obj {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
296 my $self = shift @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
297
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
298 if(@_) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
299 $self->{'species_set'} = shift @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
300 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
301
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
302 return $self->{'species_set'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
303 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
304
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
305
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
306 sub _set_genome_dbs {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
307 my ($self, $arg) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
308
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
309 my %genome_db_hash = ();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
310 foreach my $gdb (@$arg) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
311 throw("undefined value used as a Bio::EnsEMBL::Compara::GenomeDB\n") if (!defined($gdb));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
312 throw("$gdb must be a Bio::EnsEMBL::Compara::GenomeDB\n") unless $gdb->isa("Bio::EnsEMBL::Compara::GenomeDB");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
313
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
314 if(defined $genome_db_hash{$gdb->dbID}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
315 warn("GenomeDB (".$gdb->name."; dbID=".$gdb->dbID .") appears twice in this Bio::EnsEMBL::Compara::MethodLinkSpeciesSet\n");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
316 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
317 $genome_db_hash{$gdb->dbID} = $gdb;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
318 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
319 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
320 my $genome_dbs = [ values %genome_db_hash ] ;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
321
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
322 my $species_set_id = $self->adaptor && $self->adaptor->db->get_SpeciesSetAdaptor->find_species_set_id_by_GenomeDBs_mix( $genome_dbs );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
323
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
324 my $ss_obj = Bio::EnsEMBL::Compara::SpeciesSet->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
325 -genome_dbs => $genome_dbs,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
326 $species_set_id ? (-species_set_id => $species_set_id) : (),
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
327 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
328 $self->species_set_obj( $ss_obj );
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
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
333 =head2 species_set_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
334
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
335 Arg [1] : (opt.) integer species_set_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
336 Example : my $species_set_id = $method_link_species_set->species_set_id();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
337 Example : $method_link_species_set->species_set_id(23);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
338 Description: get/set for attribute species_set_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
339 Returntype : integer
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
340 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
341 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
342 Status : DEPRECATED, use $mlss->species_set_obj->dbID instead
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
343
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
344 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
345
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
346 sub species_set_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
347 my $self = shift @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
348
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
349 deprecate("MLSS->species_set_id() is DEPRECATED, please use MLSS->species_set_obj->dbID()");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
350
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
351 if(my $species_set_obj = $self->species_set_obj) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
352 return $species_set_obj->dbID( @_ );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
353 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
354 warning("SpeciesSet object has not been set, so cannot deal with its dbID");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
355 return undef;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
356 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
357 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
358
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
359
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
360 =head2 species_set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
361
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
362 Arg [1] : (opt.) listref of Bio::EnsEMBL::Compara::GenomeDB objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
363 Example : my $meth_lnk_species_set = $method_link_species_set->species_set();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
364 Example : $method_link_species_set->species_set([$gdb1, $gdb2, $gdb3]);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
365 Description: get/set for attribute species_set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
366 Returntype : listref of Bio::EnsEMBL::Compara::GenomeDB objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
367 Exceptions : Thrown if any argument is not a Bio::EnsEMBL::Compara::GenomeDB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
368 object or a GenomeDB entry appears several times
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
369 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
370 Status : DEPRECATED, use $mlss->species_set_obj->genome_dbs instead
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
371
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
372 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
373
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
374 sub species_set {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
375 my ($self, $arg) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
376
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
377 deprecate("MLSS->species_set() is DEPRECATED, please use MLSS->species_set_obj->genome_dbs()");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
378
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
379 if($arg) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
380 if(UNIVERSAL::isa($arg, 'Bio::EnsEMBL::Compara::SpeciesSet')) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
381
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
382 $self->species_set_obj( $arg );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
383
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
384 } elsif((ref($arg) eq 'ARRAY') and @$arg) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
385
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
386 $self->_set_genome_dbs( $arg );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
387
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
388 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
389 die "Wrong type of argument to $self->species_set()";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
390 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
391 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
392 return $self->species_set_obj->genome_dbs; # for compatibility, we shall keep this method until everyone has switched to using species_set_obj()
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 name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
397
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
398 Arg [1] : (opt.) string $name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
399 Example : my $name = $method_link_species_set->name();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
400 Example : $method_link_species_set->name("families");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
401 Description: get/set for attribute name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
402 Returntype : string
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 name {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
409 my ($self, $arg) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
410
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
411 if (defined($arg)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
412 $self->{'name'} = $arg ;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
413 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
414
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
415 return $self->{'name'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
416 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
417
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
418
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
419 =head2 source
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
420
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
421 Arg [1] : (opt.) string $name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
422 Example : my $name = $method_link_species_set->source();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
423 Example : $method_link_species_set->source("ensembl");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
424 Description: get/set for attribute source. The source refers to who
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
425 generated the data in a first instance (ensembl, ucsc...)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
426 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
427 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
428 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
429
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
430 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
431
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
432 sub source {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
433 my ($self, $arg) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
434
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
435 if (defined($arg)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
436 $self->{'source'} = $arg ;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
437 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
438
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
439 return $self->{'source'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
440 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
441
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
442
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
443 =head2 url
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
444
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
445 Arg [1] : (opt.) string $url
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
446 Example : my $name = $method_link_species_set->source();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
447 Example : $method_link_species_set->url("http://hgdownload.cse.ucsc.edu/goldenPath/monDom1/vsHg17/");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
448 Description: get/set for attribute url. Defines where the data come from if they
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
449 have been imported
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
450 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
451 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
452 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
453
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
454 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
455
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
456 sub url {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
457 my ($self, $arg) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
458
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
459 if (defined($arg)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
460 $self->{'url'} = $arg ;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
461 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
462
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
463 return $self->{'url'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
464 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
465
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
466
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
467 =head2 get_common_classification
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
468
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
469 Arg [1] : -none-
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
470 Example : my $common_classification = $method_link_species_set->
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
471 get_common_classification();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
472 Description: This method fetches the taxonimic classifications for all the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
473 species included in this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
474 Bio::EnsEMBL::Compara::MethodLinkSpeciesSet object and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
475 returns the common part of them.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
476 Returntype : array of strings
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
477 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
478 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
479
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
480 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
481
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
482 sub get_common_classification {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
483 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
484 my $common_classification;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
485
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
486 my $species_set = $self->species_set();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
487
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
488 foreach my $this_genome_db (@$species_set) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
489 my @classification = split(" ", $this_genome_db->taxon->classification);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
490 if (!defined($common_classification)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
491 @$common_classification = @classification;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
492 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
493 my $new_common_classification = [];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
494 for (my $i = 0; $i <@classification; $i++) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
495 for (my $j = 0; $j<@$common_classification; $j++) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
496 if ($classification[$i] eq $common_classification->[$j]) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
497 push(@$new_common_classification, splice(@$common_classification, $j, 1));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
498 last;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
499 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
500 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
501 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
502 $common_classification = $new_common_classification;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
503 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
504 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
505
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
506 return $common_classification;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
507 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
508
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
509
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
510 =head2 max_alignment_length
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
511
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
512 Arg [1] : (opt.) int $max_alignment_length
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
513 Example : my $max_alignment_length = $method_link_species_set->
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
514 max_alignment_length();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
515 Example : $method_link_species_set->max_alignment_length(1000);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
516 Description: get/set for attribute max_alignment_length
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
517 Returntype : integer
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
518 Exceptions :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
519 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
520
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
521 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
522
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
523 sub max_alignment_length {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
524 my $self = shift @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
525
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
526 if(@_) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
527 $self->add_tag('max_align', shift @_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
528 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
529
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
530 return $self->get_value_for_tag('max_align') || $DEFAULT_MAX_ALIGNMENT;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
531 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
532
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
533
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
534 =head2 toString
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
535
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
536 Args : (none)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
537 Example : print $mlss->toString()."\n";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
538 Description: returns a stringified representation of the method_link_species_set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
539 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
540
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
541 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
542
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
543 sub toString {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
544 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
545
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
546 return ref($self).": dbID=".($self->dbID || '?').
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
547 ", name='".$self->name.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
548 "', source='".$self->source.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
549 "', url='".$self->url.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
550 "', max_alignment_length=".($self->max_alignment_length || '?').
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
551 ", {".$self->method->toString."} x {".$self->species_set_obj->toString."}";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
552 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
553
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
554
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
555 1;