[Bioperl-l] translate() oddities

Derek Gatherer d.gatherer at mrcvu.gla.ac.uk
Tue Apr 29 12:21:05 UTC 2008


Hi

I thought I'd better run this by the community before I embarrass 
myself on Bugzilla.  It seems like a clear bug to me.  I'm running 
Bioperl 1.5.0 on RedHat.

For a test input:

 >test
ATGATGATGATGATGTGA

the following code is fine.

while((my $seqobj = $seq_in->next_seq()))
{
     print "\n".$seqobj->display_id;
     my $len  = $seqobj->length();
     print " length: $len";
     my $frame1_obj = $seqobj->translate();
     my $f1_prot = $frame1_obj->seq();
     print "\n$f1_prot";
}

Output:

test length: 18
MMMMM*

But if I want to change the frame as specified in the BioPerl 
tutorial, by using:

my $frame1_obj = $seqobj->translate(frame => 1); # which should now 
give frame 2, I get:

test length: 18
MMMMM-frame

The frame is unchanged and the text "-frame" is tacked on the end of 
the output.  The same occurs with translate(frame => 2).

Any ideas?  Can something as fundamental as translate() really be 
bugged?  or am I guilty of some particularly heinous syntax error?

Cheers
Derek




More information about the Bioperl-l mailing list