annotate variant_effect_predictor/Bio/LiveSeq/Range.pm @ 2:a5976b2dce6f

changing defualt values for ensembl database
author mahtabm
date Thu, 11 Apr 2013 17:15:42 +1000
parents 1f6dce3d34e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 # $Id: Range.pm,v 1.7 2001/06/18 08:27:53 heikki Exp $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 # bioperl module for Bio::LiveSeq::Range
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 # Cared for by Joseph Insana <insana@ebi.ac.uk> <jinsana@gmx.net>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 # Copyright Joseph Insana
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 # You may distribute this module under the same terms as perl itself
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 # POD documentation - main docs before the code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15 Bio::LiveSeq::Range - Range abstract class for LiveSeq
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 # documentation needed
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 This is used as parent for exon and intron classes.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 =head1 AUTHOR - Joseph A.L. Insana
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 Email: Insana@ebi.ac.uk, jinsana@gmx.net
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 Address:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 EMBL Outstation, European Bioinformatics Institute
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 Wellcome Trust Genome Campus, Hinxton
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 Cambs. CB10 1SD, United Kingdom
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 =head1 APPENDIX
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 The rest of the documentation details each of the object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 methods. Internal methods are usually preceded with a _
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 # Let the code begin...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 package Bio::LiveSeq::Range;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 $VERSION=1.6;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 # Version history:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 # Mon Mar 20 22:21:44 GMT 2000 v 1.0 begun
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 # Tue Mar 21 00:50:05 GMT 2000 v 1.1 new() added
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 # Tue Mar 21 02:44:45 GMT 2000 v 1.2 private start(), more checks in new()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 # Thu Mar 23 19:06:03 GMT 2000 v 1.3 follows() replaces is_downstream
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 # Wed Apr 12 16:35:12 BST 2000 v 1.4 added valid()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 # Mon Jun 26 15:25:14 BST 2000 v 1.44 ranges with start=end are now accepted / valid() removed because inherited now from SeqI
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 # Tue Jun 27 14:06:06 BST 2000 v 1.5 croak changed to carp and return(-1) in new() function
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 # Wed Mar 28 16:47:36 BST 2001 v 1.6 carp -> warn,throw (coded methods in SeqI)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 use vars qw($VERSION @ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 use Bio::LiveSeq::SeqI 3.2; # uses SeqI, inherits from it
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 @ISA=qw(Bio::LiveSeq::SeqI);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 Title : new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 Usage : $range1 = Bio::LiveSeq::Range->new(-seq => $obj_ref,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 -start => $beginlabel,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 -end => $endlabel, -strand => 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 Function: generates a new Bio::LiveSeq::Range
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 Returns : reference to a new object of class Range
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 Errorcode -1
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 Args : two labels, an obj_ref and an integer
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 strand 1=forward strand, strand -1=reverse strand
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 if strand not specified, it defaults to 1
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 the -seq argument must point to the underlying DNA LiveSeq object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 my ($thing, %args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 my $class = ref($thing) || $thing;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 my ($obj,%range);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 my ($seq,$start,$end,$strand)=($args{-seq},$args{-start},$args{-end},$args{-strand});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 $obj = \%range;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 $obj = bless $obj, $class;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 unless ($seq->valid($start)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 $obj->warn("$class not initialised because start label not valid");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 return (-1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 unless ($seq->valid($end)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 $obj->warn("$class not initialised because end label not valid");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 return (-1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 unless (defined $strand) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 $strand = 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 if (($strand != 1)&&($strand != -1)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 $obj->warn("$class not initialised because strand identifier not valid. Use 1 (forward strand) or -1 (reverse strand).");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 return (-1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 if ($start eq $end) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 $obj->warn("$class reports: start and end label are the same....");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 unless ($seq->follows($start,$end,$strand)==1) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 $obj->warn("Fatal: end label $end doesn't follow start label $start for strand $strand!");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 return (-1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 #if ($strand == 1) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 # unless ($seq->is_downstream($start,$end)==1) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 # croak "Fatal: end label not downstream of start label for forward strand!";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 # }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 #} else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 # unless ($seq->is_upstream($start,$end)==1) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 # croak "Fatal: end label not upstream of start label for reverse strand!";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 # }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 #}
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 $obj->{'seq'}=$seq;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 $obj->{'start'}=$start;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 $obj->{'end'}=$end;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 $obj->{'strand'}=$strand;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 return $obj;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 =head2 valid
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 Title : valid
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 Usage : $boolean = $obj->valid($label)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 Function: tests if a label exists AND is part of the object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 Returns : boolean
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 Args : label
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 1;