annotate variant_effect_predictor/Bio/EnsEMBL/DBSQL/ProxySNPAdaptor.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::DBSQL::ProxySNPAdaptor
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 Designed as an abstraction over the database specific SNPAdaptors. This
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 is written right now to serve as a replacement for a core SNPadaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 which doesn''t even exist yet and probably never will since SNPs are
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 taken from external databases. In the future some sort of DBRegistry may
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 remove the need for this class.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 package Bio::EnsEMBL::DBSQL::ProxySNPAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 use Bio::EnsEMBL::DBSQL::BaseAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 use Bio::EnsEMBL::Utils::Exception qw(throw);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 use vars ('@ISA', '$AUTOLOAD');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 @ISA = qw(Bio::EnsEMBL::DBSQL::BaseAdaptor);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 =head2 fetch_attributes_only
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 Arg [1] : int refsnp_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 Arg [2] : (optional) string source
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 Example : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 Description: Retrieves a snp objcet from the SNP database but does not
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 populate the location information. This is necessary given
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 the current state of the snp database because location
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 information has to be retrieved differently for different
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 species!
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 Returntype : Bio::EnsEMBL::SNP
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 Caller : snpview
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 sub fetch_attributes_only{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 my ( $self, @args ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 my $lite_db = Bio::EnsEMBL::Registry->get_db($self->db(),'lite');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 my $snp_db = Bio::EnsEMBL::Registry->get_db($self->db(),'SNP');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 if( defined $snp_db ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 my $snp_adaptor = $snp_db->get_SNPAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 return $snp_adaptor->fetch_attributes_only( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 if( defined $lite_db ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 my $snp_adaptor = $lite_db->get_SNPAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 return $snp_adaptor->fetch_attributes_only( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 =head2 AUTOLOAD
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 Arg [1] : list of arbitrary values @args
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 a list of arguments to pass to the request method
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 Example : -
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 Description: AUTOLOAD method should not be called directly. It is called
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 implicitly when a method requested from this class cannot be
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 found. This method first tries to execute the requested method
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 in the primary adaptor. If the method cannot be found then
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 it searches the other attached databases for equivalent adaptors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 and tries then one at a time.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 Returntype : arbitrary
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 Exceptions : thrown if the requested method cannot be found on the primary
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 adaptor or on any of the attached databases.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 Caller : called implicitly by perl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 sub AUTOLOAD {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 #determine the method which was called
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 my $method = $AUTOLOAD;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 #strip out fully qualified method name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 $method =~ s/.*:://;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 my $lite_db = Bio::EnsEMBL::Registry->get_db($self->db(),'lite');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 my $snp_db = Bio::EnsEMBL::Registry->get_db($self->db(),'SNP');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 if( defined $lite_db ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 my $snp_adaptor = $lite_db->get_SNPAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 if($snp_adaptor->can($method)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 return $snp_adaptor->$method(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 if( defined $snp_db ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 my $snp_adaptor = $snp_db->get_SNPAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 if($snp_adaptor->can($method)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 return $snp_adaptor->$method(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 throw("The requested method $method could not be found in lite or snp" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 sub DESTROY {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 __END__