diff --git a/modules/Bio/EnsEMBL/Transcript.pm b/modules/Bio/EnsEMBL/Transcript.pm index bc758351385452fd6bd3850ffd5ea7c4873a1cbd..d7f4bfa238285fb034866b6f39718e476de17516 100755 --- a/modules/Bio/EnsEMBL/Transcript.pm +++ b/modules/Bio/EnsEMBL/Transcript.pm @@ -1231,17 +1231,17 @@ sub add_Exon { if ( @{$ea} ) { if ( $exon->strand() == 1 ) { - if ( ( $exon->start() > $ea->[$#$ea]->end() ) - && ( $exon->end() > $ea->[$#$ea]->end() ) ) - { + if ( $exon->start() > $ea->[$#$ea]->end() ) { push( @{$ea}, $exon ); $was_added = 1; } else { # insert it at correct place for ( my $i = 0; $i <= $#$ea; $i++ ) { - if ( ( $exon->start() < $ea->[$i]->start() ) - && ( $exon->end() < $ea->[$i]->start() ) ) - { + if ( $exon->start() < $ea->[$i]->start() ) { + if ( $exon->end() >= $ea->[$i]->start() ) { + # Overlap + last; + } splice( @{$ea}, $i, 0, $exon ); $was_added = 1; last; @@ -1251,17 +1251,17 @@ sub add_Exon { } else { - if ( ( $exon->start() < $ea->[$#$ea]->start() ) - && ( $exon->end() < $ea->[$#$ea]->start() ) ) - { + if ( $exon->end() < $ea->[$#$ea]->start() ) { push( @{$ea}, $exon ); $was_added = 1; } else { # insert it at correct place for ( my $i = 0; $i <= $#$ea; $i++ ) { - if ( ( $exon->start() > $ea->[$i]->end() ) - && ( $exon->end() > $ea->[$i]->end() ) ) - { + if ( $exon->end() > $ea->[$i]->end() ) { + if ( $exon->start() <= $ea->[$i]->end() ) { + # Overlap + last; + } splice( @{$ea}, $i, 0, $exon ); $was_added = 1; last;