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

"Fields, Christopher J" <[email protected]>
Newsgroups gmane.comp.lang.perl.bio.general
Message-ID <[email protected]>
No, but I can work on cherry-picking over relevant commits to the v1.6x branch (which has Bio::Root modules).  That’s where the 1.6x releases are made from, not ‘master’.

chris

> On Mar 18, 2015, at 7:17 PM, Mark A. Jensen <[email protected]> wrote:
> 
> 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
> 
> _______________________________________________
> Bioperl-l mailing list
> [email protected]
> http://mailman.open-bio.org/mailman/listinfo/bioperl-l


_______________________________________________
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.