From 7f5d7a5a69512d849f2f1fd6620cc33a32cff9a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20Kusalananda=20K=C3=A4h=C3=A4ri?=
 <ak4@sanger.ac.uk>
Date: Wed, 15 Sep 2010 14:43:00 +0000
Subject: [PATCH] In slice(): Do not transfer supporting features that does not
 have an attached slice.

---
 modules/Bio/EnsEMBL/Exon.pm | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/modules/Bio/EnsEMBL/Exon.pm b/modules/Bio/EnsEMBL/Exon.pm
index 7d03eb2019..2181223b15 100755
--- a/modules/Bio/EnsEMBL/Exon.pm
+++ b/modules/Bio/EnsEMBL/Exon.pm
@@ -791,7 +791,7 @@ sub slice {
 
   if ( defined($slice) ) {
     # If a new slice was provided, flush the internal sequence cache and
-    # transcer all supporting evidence to the new slice.
+    # transfer all supporting evidence to the new slice.
 
     delete $self->{'_seq_cache'};
 
@@ -799,7 +799,17 @@ sub slice {
       my @new_features;
 
       for my $old_feature ( @{ $self->{'_supporting_evidence'} } ) {
-        my $new_feature = $old_feature->transfer($slice);
+
+        my $new_feature;
+
+        if ( defined( $old_feature->slice() ) ) {
+          $new_feature = $old_feature->transfer($slice);
+        } else {
+          # If the old feature does not have a slice, assume transfer is
+          # not necessary.
+          $new_feature = $old_feature;
+        }
+
         push( @new_features, $new_feature );
       }
 
-- 
GitLab