[Bioperl-l] Bio:Seq->translate with orf=1; behavior change between 1.5 and 1.6

Wilson, Colin (CC) CCWilson at dow.com
Wed Mar 4 00:13:56 UTC 2015


I've got an older application that I'm migrating from BioPerl 1.5 to 1.6.923, and it didn't pass testing due to a change in the behavior of Bio:Seq::translate between 1.5 and 1.6

Per  the bioperl documentation Seq->translate(-orf=> 1) should return the first orf in a sequence.   It appears to be returning the orf upstream of the first stop codon, so an internal out of frame orf is found instead of a full length orf.

Here's my test code.   It passes in 1.5, fails in 1.6.  Is there a switch or different parameter to get the old behavior?  Is this a bug or intentional change in translate?  
------------
use strict;
use Bio::Seq;

my ($bs, $prot, $orf0, $orf1, $orf) ;
$bs = Bio::Seq->new( -seq           => "ATGAATGTAAATAA",
		   -display_id       => "TestSequence",
		   -alphabet         => 'dna' );
                   
$orf0 = $bs->translate(-frame=>0);
$orf1 = $bs->translate(-frame=>1);

# should output MNVN orf that starts in frame 0, not M* orf that starts in frame 1
$orf = $bs->translate(-orf=>1, -start=> 'atg');
if ($orf0->seq eq $orf->seq) {
        print "PASS";
}
else {
    print $orf0->seq . " != " . $orf->seq . "\n";
}





More information about the Bioperl-l mailing list