Re: Bio:Seq->translate with orf=1; beha vior change between 1.5 and 1.6

"Mark A. Jensen" <[email protected]>
Newsgroups gmane.comp.lang.perl.bio.general
Message-ID <[email protected]>
Hi Colin,
This is now fixed (I hope) at 
https://github.com/bioperl/bioperl-live/commit/9fb341c333b6b532308ebb4f2feef5a90382aab7. 
Added a couple of tests to t/Seq/PrimarySeq.t to make sure. If you look 
at the commit, it's pretty easy to patch Bio/PrimarySeqI.pm by hand (not 
ideal...but...sigh)
(CJF - is it worth patching the 1.6.924 tag?)
MAJ

On 2015-03-16 23:08, Mark A. Jensen wrote:
> Colin - This looks like a bug; the pod states
>
>  "if you want translate() to find the first initiation
>   codon and return the corresponding protein:
>
>   $protein_seq_obj = $cds_seq_obj->translate(-orf => 1);"
>
> but the orf-finding routine appears to stop at the first 
> _termination_
> codon (which is at bp 8 - TAA) and kicks out the "orf" M*.
>
> I have created https://github.com/bioperl/bioperl-live/issues/105.
>
> (Good test sequence, BTW)
>
> MAJ
>
>
>
> On 2015-03-03 20:13, Wilson, Colin (CC) wrote:
>> 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";
>> }
>>
>>
>>
>> _______________________________________________
>> Bioperl-l mailing list
>> [email protected]
>> http://mailman.open-bio.org/mailman/listinfo/bioperl-l
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.