annotate variant_effect_predictor/Bio/Factory/FTLocationFactory.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: FTLocationFactory.pm,v 1.9.2.4 2003/09/14 19:15:39 jason Exp $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 # BioPerl module for Bio::Factory::FTLocationFactory
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 # Cared for by Hilmar Lapp <hlapp at gmx.net>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 # Copyright Hilmar Lapp
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 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12 # (c) Hilmar Lapp, hlapp at gnf.org, 2002.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 # (c) GNF, Genomics Institute of the Novartis Research Foundation, 2002.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15 # You may distribute this module under the same terms as perl itself.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 # Refer to the Perl Artistic License (see the license accompanying this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 # software package, or see http://www.perl.com/language/misc/Artistic.html)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18 # for the terms under which you may use, modify, and redistribute this module.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 # THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22 # MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 # POD documentation - main docs before the code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 Bio::Factory::FTLocationFactory - A FeatureTable Location Parser
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 # parse a string into a location object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 $loc = Bio::Factory::FTLocationFactory->from_string("join(100..200, 400..500");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 Implementation of string-encoded location parsing for the Genbank feature table
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 encoding of locations.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 =head1 FEEDBACK
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 =head2 Mailing Lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 User feedback is an integral part of the evolution of this and other
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 Bioperl modules. Send your comments and suggestions preferably to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 the Bioperl mailing list. Your participation is much appreciated.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 bioperl-l@bioperl.org - General discussion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 http://bioperl.org/MailList.shtml - About the mailing lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 =head2 Reporting Bugs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 Report bugs to the Bioperl bug tracking system to help us keep track
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 of the bugs and their resolution. Bug reports can be submitted via
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 email or the web:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 bioperl-bugs@bioperl.org
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 http://bugzilla.bioperl.org/
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 =head1 AUTHOR - Hilmar Lapp
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 Email hlapp at gmx.net
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 =head1 CONTRIBUTORS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 Additional contributors names and emails here
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 =head1 APPENDIX
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 The rest of the documentation details each of the object methods.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 Internal methods are usually preceded with a _
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 # Let the code begin...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 package Bio::Factory::FTLocationFactory;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 # Object preamble - inherits from Bio::Root::Root
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 use Bio::Root::Root;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 use Bio::Factory::LocationFactoryI;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 use Bio::Location::Simple;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 use Bio::Location::Split;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 use Bio::Location::Fuzzy;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 @ISA = qw(Bio::Root::Root Bio::Factory::LocationFactoryI);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 Title : new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 Usage : my $obj = new Bio::Factory::FTLocationFactory();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 Function: Builds a new Bio::Factory::FTLocationFactory object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 Returns : an instance of Bio::Factory::FTLocationFactory
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 Args :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 =head2 from_string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 Title : from_string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 Usage : $loc = $locfactory->from_string("100..200");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 Function: Parses the given string and returns a Bio::LocationI implementing
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 object representing the location encoded by the string.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 This implementation parses the Genbank feature table
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 encoding of locations.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 Returns : A Bio::LocationI implementing object.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 Args : A string.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 sub from_string{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 # the third parameter is purely optional and indicates a recursive
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 # call if set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 my ($self,$locstr,$is_rec) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 my $loc;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 # there is no place in FT-formatted location strings where whitespace
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 # carries meaning, so strip it off entirely upfront
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 $locstr =~ s/\s+//g if ! $is_rec;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 # does it contain an operator?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 if($locstr =~ /^([A-Za-z]+)\((.*)\)$/) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 # yes:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 my $op = $1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 my $oparg = $2;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 if($op eq "complement") {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 # parse the argument recursively, then set the strand to -1
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 $loc = $self->from_string($oparg, 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 $loc->strand(-1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 } elsif(($op eq "join") || ($op eq "order") || ($op eq "bond")) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 # This is a split location. Split into components and parse each
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 # one recursively, then gather into a SplitLocationI instance.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 # Note: The following code will /not/ work with nested
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 # joins (you want to have grammar-based parsing for that).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 $loc = Bio::Location::Split->new(-verbose => $self->verbose,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 -splittype => $op);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 foreach my $substr (split(/,/, $oparg)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 $loc->add_sub_Location($self->from_string($substr, 1));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 $self->throw("operator \"$op\" unrecognized by parser");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 # no operator, parse away
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 $loc = $self->_parse_location($locstr);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 return $loc;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 =head2 _parse_location
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 Title : _parse_location
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 Usage : $loc = $locfactory->_parse_location( $loc_string)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 Function: Parses the given location string and returns a location object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 with start() and end() and strand() set appropriately.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 Note that this method is private.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 Returns : A Bio::LocationI implementing object or undef on failure
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 Args : location string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 sub _parse_location {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 my ($self, $locstr) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 my ($loc, $seqid);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 $self->debug( "Location parse, processing $locstr\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 # 'remote' location?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 if($locstr =~ /^(\S+):(.*)$/) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 # yes; memorize remote ID and strip from location string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 $seqid = $1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 $locstr = $2;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 # split into start and end
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 my ($start, $end) = split(/\.\./, $locstr);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 # remove enclosing parentheses if any; note that because of parentheses
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 # possibly surrounding the entire location the parentheses around start
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 # and/or may be asymmetrical
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 $start =~ s/^\(+//;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 $start =~ s/\)+$//;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 $end =~ s/^\(+// if $end;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 $end =~ s/\)+$// if $end;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 # Is this a simple (exact) or a fuzzy location? Simples have exact start
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 # and end, or is between two adjacent bases. Everything else is fuzzy.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 my $loctype = ".."; # exact with start and end as default
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 my $locclass = "Bio::Location::Simple";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 if(! defined($end)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 if($locstr =~ /(\d+)([\.\^])(\d+)/) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 $start = $1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 $end = $3;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 $loctype = $2;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 $locclass = "Bio::Location::Fuzzy"
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 unless (abs($end - $start) <= 1) && ($loctype eq "^");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 $end = $start;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 if ( ($start =~ /[\>\<\?\.\^]/) || ($end =~ /[\>\<\?\.\^]/) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 $locclass = 'Bio::Location::Fuzzy';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 # instantiate location and initialize
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 $loc = $locclass->new(-verbose => $self->verbose,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 -start => $start,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 -end => $end,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 -strand => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 -location_type => $loctype);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 # set remote ID if remote location
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 if($seqid) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 $loc->is_remote(1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 $loc->seq_id($seqid);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 # done (hopefully)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 return $loc;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 1;