Skip Menu |

This queue is for tickets about the bioperl CPAN distribution.

Report information
The Basics
Id: 36480
Status: resolved
Priority: 0/
Queue: bioperl

People
Owner: Nobody in particular
Requestors: Cedric.Cabau [...] tours.inra.fr
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Bug in Bio::Search::SearchUtils.pm
Date: Thu, 5 Jun 2008 18:00:34 +0200
To: <bug-bioperl [...] rt.cpan.org>
From: Cédric Cabau <Cedric.Cabau [...] tours.inra.fr>
BioPerl version: bioperl-1.5.2_102 Module: Bio::Search::SearchUtils.pm OS: CentOS Linux version 2.6.18-53.1.14.el5 (gcc version 4.1.2 20070626 (Red Hat 4.1.2-14)) Perl: v5.8.8 built for x86_64-linux-thread-multi Bug description: Methods tile_hsps looks (among other things) if alignment is ambiguous. Inside loop foreach $hsp ( $sbjct->hsps() ) { at line 177, methods $qoverlap = &_adjust_contigs() (line 200) and $soverlap = &_adjust_contigs() (line 206) are used to know if current HSP overlap previous ones on query and on subject. The problem is that in this loop, only the result of the last comparison which means the last HSP with previous ones is kept in variables $qoverlap and $soverlap. After the loop, we found (line 299): if($qoverlap) { if($soverlap) { $sbjct->ambiguous_aln('qs'); } else { $sbjct->ambiguous_aln('q'); } } elsif($soverlap) { $sbjct->ambiguous_aln('s'); } Only the result of the last comparison is stored in $sbjct and method ambiguous_aln from module Bio::Search::Hit::GenericHit will return wrong value if the alignment presents overlapping HSPs but last HSP not overlap with previous ones. To solve this bug, I just modify in line 200: $qoverlap = &_adjust_contigs('query', $hsp, $qstart, $qstop, \@qcontigs, $max_overlap, $frame, $qstrand); by $qoverlap += &_adjust_contigs('query', $hsp, $qstart, $qstop, \@qcontigs, $max_overlap, $frame, $qstrand); and in line 206: $soverlap = &_adjust_contigs('sbjct', $hsp, $sstart, $sstop, \@scontigs, $max_overlap, $frame, $sstrand); by $soverlap += &_adjust_contigs('sbjct', $hsp, $sstart, $sstop, \@scontigs, $max_overlap, $frame, $sstrand); to keep trace of overlaps in the whole HSPs screening process. Regards, Cedric -- +---------------------------------------------------------------+ | Cédric Cabau INRA - SIGENAE - URA | | Tel : 02.47.42.75.42 Fax : 02.47.42.77.78 | | http://www.sigenae.org INRA - UR 83 - 37380 Nouzilly | +---------------------------------------------------------------+

Message body is not shown because it is too large.

This has been committed to svn and passed tests. Thanks for the fix!
This has been committed to svn and passed tests. Thanks for the fix!