From 2efd152a8e5d301e2c0d3c77e7df13dc48031647 Mon Sep 17 00:00:00 2001
From: Andrew Yates <ayates@ebi.ac.uk>
Date: Thu, 15 Mar 2012 17:17:22 +0000
Subject: [PATCH] Only do cleanup if we had a number

---
 modules/Bio/EnsEMBL/DBSQL/SliceAdaptor.pm | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/modules/Bio/EnsEMBL/DBSQL/SliceAdaptor.pm b/modules/Bio/EnsEMBL/DBSQL/SliceAdaptor.pm
index 359932d7f3..c41cf40179 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;
     
-- 
GitLab