diff --git a/modules/Bio/EnsEMBL/DBSQL/SliceAdaptor.pm b/modules/Bio/EnsEMBL/DBSQL/SliceAdaptor.pm index 359932d7f33e29499728b47cf99b36ca1dcb9780..c41cf40179fc824258b4c7d272915de27fd9778d 100644 --- a/modules/Bio/EnsEMBL/DBSQL/SliceAdaptor.pm +++ b/modules/Bio/EnsEMBL/DBSQL/SliceAdaptor.pm @@ -471,20 +471,21 @@ sub fetch_by_toplevel_location { my $number_seps_regex = qr/\s+|,|_/; if(my ($seq_region_name, $start, $end) = $location =~ $regex) { - if(defined $start && $start < 1) { - warning "Start was less than 1 (${start}) which is not allowed. Resetting to 1" if ! $no_warnings; - $start = 1; + if(defined $start) { + if($start < 1) { + warning "Start was less than 1 (${start}) which is not allowed. Resetting to 1" if ! $no_warnings; + $start = 1; + } + $start =~ s/$number_seps_regex//g; #cleanup any nomenclature like 1_000 or 1 000 or 1,000 } - if(defined $end && $end < 1) { - throw "Cannot request negative or 0 end indexes through this interface. Given $end but expected something greater than 0"; + if(defined $end) { + if($end < 1) { + throw "Cannot request negative or 0 end indexes through this interface. Given $end but expected something greater than 0"; + } + $end =~ s/$number_seps_regex//g; #cleanup any nomenclature like 1_000 or 1 000 or 1,000 } my $coord_system_name = 'toplevel'; - - #cleanup any nomenclature like 1_000 or 1 000 or 1,000 - $start =~ s/$number_seps_regex//g; - $end =~ s/$number_seps_regex//g; - my $slice = $self->fetch_by_region($coord_system_name, $seq_region_name, $start, $end, undef, undef, 0); return unless $slice;