annotate variant_effect_predictor/Bio/Variation/SNP.pm @ 0:2bc9b66ada89 draft default tip

Uploaded
author mahtabm
date Thu, 11 Apr 2013 06:29:17 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1 # $Id: SNP.pm,v 1.9 2002/10/22 07:38:49 lapp Exp $
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
2 # bioperl module for Bio::Variation::SNP
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
3 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
4 # Copyright Allen Day <allenday@ucla.edu>, Stan Nelson <snelson@ucla.edu>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
5 # Human Genetics, UCLA Medical School, University of California, Los Angeles
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
6
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
7 =head1 NAME
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
8
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
9 Bio::Variation::SNP - submitted SNP
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
10
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
11 =head1 SYNOPSIS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
12
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
13 $SNP = Bio::Variation::SNP->new ();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
14
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
15 =head1 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
16
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
17 Inherits from Bio::Variation::SeqDiff and Bio::Variation::Allele, with
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
18 additional methods that are (db)SNP specific (ie, refSNP/subSNP IDs, batch
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
19 IDs, validation methods).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
20
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
21 =head1 FEEDBACK
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
22
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
23 =head2 Mailing Lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25 User feedback is an integral part of the evolution of this and other
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26 Bioperl modules. Send your comments and suggestions preferably to the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27 Bioperl mailing lists Your participation is much appreciated.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29 bioperl-l@bioperl.org - General discussion
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30 http://bio.perl.org/MailList.html - About the mailing lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32 =head2 Reporting Bugs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34 report bugs to the Bioperl bug tracking system to help us keep track
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35 the bugs and their resolution. Bug reports can be submitted via
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36 email or the web:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38 bioperl-bugs@bio.perl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39 http://bugzilla.bioperl.org/
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41 =head1 AUTHOR
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43 Allen Day E<lt>allenday@ucla.eduE<gt>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45 =head1 APPENDIX
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47 The rest of the documentation details each of the object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48 methods. Internal methods are usually preceded with a _
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52 # Let the code begin...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54 package Bio::Variation::SNP;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55 my $VERSION=1.0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
58 use vars qw($VERSION @ISA $AUTOLOAD);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
59 use Bio::Root::Root;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60 use Bio::Variation::SeqDiff;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61 use Bio::Variation::Allele;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63 @ISA = qw( Bio::Variation::SeqDiff Bio::Variation::Allele);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
64
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
65 =head2 get/set-able methods
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
66
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
67 Usage : $is = $snp->method()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
68 Function: for getting/setting attributes
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69 Returns : a value. probably a scalar.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70 Args : if you're trying to set an attribute, pass in the new value.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72 Methods:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73 --------
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74 id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75 type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76 observed
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77 seq_5
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78 seq_3
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79 ncbi_build
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80 ncbi_chr_hits
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81 ncbi_ctg_hits
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82 ncbi_seq_loc
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83 ucsc_build
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84 ucsc_chr_hits
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85 ucsc_ctg_hits
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86 heterozygous
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87 heterozygous_SE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88 validated
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89 genotype
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90 handle
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 batch_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92 method
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93 locus_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94 symbol
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95 mrna
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96 protein
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97 functional_class
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103 my %OK_AUTOLOAD = (
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104 id => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105 type => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106 observed => [],
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107 seq_5 => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108 seq_3 => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109 ncbi_build => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110 ncbi_chr_hits => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111 ncbi_ctg_hits => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112 ncbi_seq_loc => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113 ucsc_build => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114 ucsc_chr_hits => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115 ucsc_ctg_hits => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116 heterozygous => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117 heterozygous_SE => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118 validated => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119 genotype => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120 handle => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121 batch_id => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122 method => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123 locus_id => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124 symbol => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125 mrna => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126 protein => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127 functional_class => '',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130 sub AUTOLOAD {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132 my $param = $AUTOLOAD;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133 $param =~ s/.*:://;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134 $self->throw(__PACKAGE__." doesn't implement $param") unless defined $OK_AUTOLOAD{$param};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136 if( ref $OK_AUTOLOAD{$param} eq 'ARRAY' ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137 push @{$self->{$param}}, shift if @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138 return $self->{$param}->[scalar(@{$self->{$param}}) - 1];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140 $self->{$param} = shift if @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141 return $self->{$param};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
145
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
146 #foreach my $slot (keys %RWSLOT){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
147 # no strict "refs"; #add class methods to package
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
148 # *$slot = sub {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
149 # shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
150 # $RWSLOT{$slot} = shift if @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
151 # return $RWSLOT{$slot};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
152 # };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
153 #}
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
154
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
155
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
156 =head2 is_subsnp
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
157
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
158 Title : is_subsnp
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
159 Usage : $is = $snp->is_subsnp()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
160 Function: returns 1 if $snp is a subSNP
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
161 Returns : 1 or undef
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
162 Args : NONE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
163
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
164 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
165
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
166 sub is_subsnp {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
167 return shift->{is_subsnp};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
168 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
169
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
170 =head2 subsnp
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
171
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
172 Title : subsnp
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
173 Usage : $subsnp = $snp->subsnp()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
174 Function: returns the currently active subSNP of $snp
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
175 Returns : Bio::Variation::SNP
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
176 Args : NONE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
177
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
178 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
179
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
180 sub subsnp {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
181 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
182 return $self->{subsnps}->[ scalar($self->each_subsnp) - 1 ];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
183 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
184
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
185 =head2 add_subsnp
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
186
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
187 Title : add_subsnp
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
188 Usage : $subsnp = $snp->add_subsnp()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
189 Function: pushes the previous value returned by subsnp() onto a stack, accessible with each_subsnp().
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
190 sets return value of subsnp() to a new Bio::Variation::SNP object, and returns that object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
191 Returns : Bio::Varitiation::SNP
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
192 Args : NONE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
193
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
194 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
195
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
196 sub add_subsnp {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
197 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
198 $self->throw("add_subsnp(): cannot add sunSNP to subSNP, only refSNP") if $self->is_subsnp;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
199
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
200 my $subsnp = Bio::Variation::SNP->new;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
201 push @{$self->{subsnps}}, $subsnp;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
202 $self->subsnp->{is_subsnp} = 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
203 return $self->subsnp;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
204 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
205
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
206 =head2 each_subsnp
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
207
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
208 Title : each_subsnp
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
209 Usage : @subsnps = $snp->each_subsnp()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
210 Function: returns a list of the subSNPs of a refSNP
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
211 Returns : list
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
212 Args : NONE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
213
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
214 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
215
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
216 sub each_subsnp {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
217 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
218 $self->throw("each_subsnp(): cannot be called on a subSNP") if $self->is_subsnp;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
219 return @{$self->{subsnps}};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
220 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
221
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
222 1;