From bfdb73b8e844e2cb3a8c3150cc3e9ef71f6bd5e5 Mon Sep 17 00:00:00 2001 From: Patrick Meidl <pm2@sanger.ac.uk> Date: Fri, 14 Sep 2007 15:16:13 +0000 Subject: [PATCH] catch division by zero exception --- modules/Bio/EnsEMBL/IdMapping/SyntenyRegion.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/Bio/EnsEMBL/IdMapping/SyntenyRegion.pm b/modules/Bio/EnsEMBL/IdMapping/SyntenyRegion.pm index e019b4f9e2..dbf5bfe668 100644 --- a/modules/Bio/EnsEMBL/IdMapping/SyntenyRegion.pm +++ b/modules/Bio/EnsEMBL/IdMapping/SyntenyRegion.pm @@ -136,6 +136,12 @@ sub merge { $target_dist = $self->target_end - $sr->target_end; } + # prevent division by zero error + if ($source_dist == 0 or $target_dist == 0) { + warn("WARNING: source_dist ($source_dist) and/or target_dist ($target_dist) is zero.\n"); + return 0; + } + # calculate a distance score my $dist = $source_dist - $target_dist; $dist = -$dist if ($dist < 0); @@ -151,7 +157,7 @@ sub merge { my $new_score = $dist_score * ($sr->score + $self->score)/2; if ($new_score > 1) { - warn("Bad merge score: $new_score\n"); + warn("WARNING: Bad merge score: $new_score\n"); } # extend SyntenyRegion to cover both sources and targets, set merged score -- GitLab