Bio::Translator - Translate DNA sequences
use Bio::Translator; my $translator = new Bio::Translator(); my $translator = new Bio::Translator(11); my $translator = new Bio::Translator( 12, 'id' ); my $translator = new Bio::Translator( 'Yeast Mitochondrial', 'name' ); my $translator = new Bio::Translator( 'mito', 'name' ); my $translator = custom Bio::Translator( \$custom_table ); my $translator = custom Bio::Translator( \$custom_table, 1 ); $translator->translate( \$seq ); $translator->translate( \$seq, { strand => 1 } ); $translator->translate( \$seq, { strand => -1 } );
Bio::Translator tries to be a robust translator object featuring translation tables based off the the ones provided by NCBI. Key features include the ability to handle degenerate nucleotides and to translate to ambiguous amino acids.
Bio::Translator
First, create a new translator object using one of the included tables or a custom one (see Bio::Translator::Table for table formats), and then passing your DNA sequences to your translator object.
Bio::Translator::Table
The translator uses interbase coordinates. See below for the difference between interbase coordinates and traditional numbering methods:
Traditional 1 2 3 4 A C G T ... Interbase 0 1 2 3 4
Conversion methods between the two methods can depend upon what you are trying to do, but the simple way to do this is:
strand = 3' end <=> 5' end # that's the spaceship operator! lower = min( 5' end, 3' end ) - 1 upper = max( 5' end, 3' end )
Parameter validation uses Params::Validate which introduces overhead but can be disabled. See the Params::Validate documentation for more information.
Params::Validate
my $translator = new Bio::Translator(); my $translator = new Bio::Translator( $id ); my $translator = new Bio::Translator( $id, \%params );
Create a translator with a translation table provided by $id. Please see Bio::Translator::Table for the full list of options.
my $translator = $translator->custom( $table_ref ); my $translator = $translator->custom( $table_ref, \%params );
Create a translator with a custom translation table. Please see Bio::Translator::Table for the full list of options.
$pep_ref = $translator->translate( $seq_ref, \%params );
The basic function of this module. Translate the specified region of the sequence (passed as $seq_ref) and return a reference to the translated string. The parameters are:
strand: [+-]?1; default = 1 lower: integer between 0 and seq_length; default = 0 upper: integer between 0 and seq_length; default = seq_length start: boolean offset: [012]
Translator uses interbase coordinates. "lower" and "upper" are optional parameters such that:
0 <= lower <= upper <= seq_length
Translator will croak if those conditions are not satisfied.
"start" sets whether or not to try translating the first codon as a start codon. By default, translator will try to do this. "offset" allows you to specify an offset in addition to the lower and upper abounds and have Translator figure out the correct bound to offset from.
To translate the following:
0 1 2 3 4 5 6 7 8 9 C G C G C A G G A ----------> $pep_ref = $translator->translate( \$sequence, { strand => 1, lower => 1, upper => 7 } ); 0 1 2 3 4 5 6 7 8 9 C G C G C A G G A <---------- $pep_ref = $translator->translate( \$sequence, { strand => -1, lower => 2, upper => 8 } );
Examples:
my $pep_ref = $translator->translate( \'acttgacgt' ); my $pep_ref = $translator->translate( \'acttgacgt', { strand => -1 } ); my $pep_ref = $translator->translate( \'acttgacgt', { strand => -1, lower => 2, upper => 5 } ); my $pep_ref = $translator->translate( \'acttgacgt', { strand => 1, lower => 0, upper => 8, start => 0 } );
$pep_ref = $translator->translate_lus( $seq_ref, $range, \%params );
my $residue = $translator->translate_codon( $codon ); my $residue = $translator->translate_codon( $codon, \%params );
Translate a codon. Return 'X' or '-' if it isn't in the codon table. Handles degenerate nucleotides, so if all possible codons for an ambiguity map to the same residue, return that residue.
Example:
$residue = $translator->translate_codon('atg'); $residue = $translator->translate_codon( 'tty', { strand => -1 } ); $residue = $translator->translate_codon( 'cat', { start => 1 } );
Kevin Galinsky, kgalinsky plus cpan at gmail dot com
kgalinsky plus cpan at gmail dot com
Please report any bugs or feature requests to bug-bio-translator at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Bio-Translator. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
bug-bio-translator at rt.cpan.org
You can find documentation for this module with the perldoc command.
perldoc Bio::Translator
You can also look for information at:
AnnoCPAN: Annotated CPAN documentation
http://annocpan.org/dist/Bio-Translator
CPAN Ratings
http://cpanratings.perl.org/d/Bio-Translator
RT: CPAN's request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Bio-Translator
Search CPAN
http://search.cpan.org/dist/Bio-Translator
JCVI/Paolo Amedeo
Copyright 2008-2009 J. Craig Venter Institute, 2011 Kevin Galinsky.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Bio::Translator, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Bio::Translator
CPAN shell
perl -MCPAN -e shell install Bio::Translator
For more information on module installation, please visit the detailed CPAN module installation guide.