annotate variant_effect_predictor/Bio/EnsEMBL/CoordSystem.pm @ 3:d30fa12e4cc5 default tip

Merge heads 2:a5976b2dce6f and 1:09613ce8151e which were created as a result of a recently fixed bug.
author devteam <devteam@galaxyproject.org>
date Mon, 13 Jan 2014 10:38:30 -0500
parents 1f6dce3d34e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 Bio::EnsEMBL::CoordSystem
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 my $db = Bio::EnsEMBL::DBSQL::DBAdaptor->new(...);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 my $csa = $db->get_CoordSystemAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 # Get all coord systems in the database:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 foreach my $cs ( @{ $csa->fetch_all() } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 my $str = join ':', $cs->name(), $cs->version(), $cs->dbID();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 print "$str\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 This is a simple object which contains a few coordinate system attributes:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 name, internal identifier, version. A coordinate system is uniquely defined
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 by its name and version. A version of a coordinate system applies to all
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 sequences within a coordinate system. This should not be confused with
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 individual sequence versions.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 Take for example the Human assembly. The version 'NCBI33' applies to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 to all chromosomes in the NCBI33 assembly (that is the entire 'chromosome'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 coordinate system). The 'clone' coordinate system in the same database would
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 have no version however. Although the clone sequences have their own sequence
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 versions, there is no version which applies to the entire set of clones.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 Coordinate system objects are immutable. Their name and version, and other
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 attributes may not be altered after they are created.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 package Bio::EnsEMBL::CoordSystem;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 use Bio::EnsEMBL::Storable;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 use Bio::EnsEMBL::Utils::Exception qw(throw);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 @ISA = qw(Bio::EnsEMBL::Storable);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 Arg [..] : List of named arguments:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 -NAME - The name of the coordinate system
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 -VERSION - (optional) The version of the coordinate system.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 Note that if the version passed in is undefined,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 it will be set to the empty string in the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 resulting CoordSystem object.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 -RANK - The rank of the coordinate system. The highest
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 level coordinate system should have rank 1, the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 second highest rank 2 and so on. An example of
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 a high level coordinate system is 'chromosome' an
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 example of a lower level coordinate system is
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 'clone'.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 -TOP_LEVEL - (optional) Sets whether this is a top-level coord
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 system. Default = 0. This should only be set to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 true if you are creating an artificial toplevel
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 coordsystem by the name of 'toplevel'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 -SEQUENCE_LEVEL - (optional) Sets whether this is a sequence
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 level coordinate system. Default = 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 -DEFAULT - (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 Whether this is the default version of the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 coordinate systems of this name. Default = 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 -DBID - (optional) The internal identifier of this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 coordinate system
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 -ADAPTOR - (optional) The adaptor which provides database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 interaction for this object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 Example : $cs = Bio::EnsEMBL::CoordSystem->new(-NAME => 'chromosome',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 -VERSION => 'NCBI33',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 -RANK => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 -DBID => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 -ADAPTOR => adaptor,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 -DEFAULT => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 -SEQUENCE_LEVEL => 0);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 Description: Creates a new CoordSystem object representing a coordinate
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 system.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 Returntype : Bio::EnsEMBL::CoordSystem
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 my $caller = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 my $class = ref($caller) || $caller;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 my $self = $class->SUPER::new(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 my ( $name, $version, $top_level, $sequence_level, $default, $rank ) =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 rearrange( [ 'NAME', 'VERSION',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 'TOP_LEVEL', 'SEQUENCE_LEVEL',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 'DEFAULT', 'RANK' ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 @_ );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 $version = '' if ( !defined($version) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 $top_level = ($top_level) ? 1 : 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 $sequence_level = ($sequence_level) ? 1 : 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 $default = ($default) ? 1 : 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 $rank ||= 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 if ( $top_level == 1 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 if ( $rank != 0 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 throw('RANK argument must be 0 if TOP_LEVEL is 1');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 if ( defined($name) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 if ( $name ne 'toplevel' ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 throw('The NAME argument must be "toplevel" if TOP_LEVEL is 1');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 $name = 'toplevel';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 if ( $sequence_level == 1 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 throw("SEQUENCE_LEVEL argument must be 0 if TOP_LEVEL is 1");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 $default = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 if ( $rank == 0 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 throw("RANK argument must be non-zero unless TOP_LEVEL is 1");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 if ( !defined($name) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 throw('The NAME argument is required');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 } elsif ( $name eq 'toplevel' ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 throw( "Cannot name coord system 'toplevel' "
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 . "unless TOP_LEVEL is 1" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 if ( $rank !~ /^\d+$/ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 throw('The RANK argument must be a positive integer');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 $self->{'version'} = $version;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 $self->{'name'} = $name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 $self->{'top_level'} = $top_level;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 $self->{'sequence_level'} = $sequence_level;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 $self->{'default'} = $default;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 $self->{'rank'} = $rank;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 } ## end sub new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 =head2 name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 Arg [1] : (optional) string $name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 Example : print $coord_system->name();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 Description: Getter for the name of this coordinate system
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 sub name {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 return $self->{'name'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 =head2 version
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 Example : print $coord->version();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 Description: Getter for the version of this coordinate system. This
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 will return an empty string if no version is defined for this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 coordinate system.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 sub version {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 return $self->{'version'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 =head2 species
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 Example : print $coord->species();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 Description: Shortcut method to get the species this CoordSystem refers to.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 sub species {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 return $self->adaptor->db->species;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 =head2 equals
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 Arg [1] : Bio::EnsEMBL::CoordSystem $cs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 The coord system to compare to for equality.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 Example : if($coord_sys->equals($other_coord_sys)) { ... }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 Description: Compares 2 coordinate systems and returns true if they are
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 equivalent. The definition of equivalent is sharing the same
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 name and version.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 sub equals {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 my $cs = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 if(!$cs || !ref($cs) || !$cs->isa('Bio::EnsEMBL::CoordSystem')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 if ($cs->isa('Bio::EnsEMBL::ExternalData::DAS::CoordSystem')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 return $cs->equals($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 throw('Argument must be a CoordSystem');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 if($self->{'version'} eq $cs->version() && $self->{'name'} eq $cs->name()) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 return 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 =head2 is_top_level
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285 Example : if($coord_sys->is_top_level()) { ... }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 Description: Returns true if this is the toplevel pseudo coordinate system.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287 The toplevel coordinate system is not a real coordinate system
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 which is stored in the database, but it is a placeholder that
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289 can be used to request transformations or retrievals to/from
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 the highest defined coordinate system in a given region.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291 Returntype : 1 or 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 sub is_top_level {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300 return $self->{'top_level'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 =head2 is_sequence_level
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307 Example : if($coord_sys->is_sequence_level()) { ... }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 Description: Returns true if this is a sequence level coordinate system
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309 Returntype : 1 or 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316 sub is_sequence_level {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 return $self->{'sequence_level'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322 =head2 is_default
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325 Example : if($coord_sys->is_default()) { ... }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 Description: Returns true if this coordinate system is the default
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 version of the coordinate system of this name.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 Returntype : 1 or 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335 sub is_default {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 return $self->{'default'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 =head2 rank
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345 Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 Example : if($cs1->rank() < $cs2->rank()) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347 print $cs1->name(), " is a higher level coord system than",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 $cs2->name(), "\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 Description: Returns the rank of this coordinate system. A lower number
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 is a higher coordinate system. The highest level coordinate
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352 system has a rank of 1 (e.g. 'chromosome'). The toplevel
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353 pseudo coordinate system has a rank of 0.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354 Returntype : int
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361 sub rank {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363 return $self->{'rank'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366 1;