翻译序列练习perl
Posted a01说
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了翻译序列练习perl相关的知识,希望对你有一定的参考价值。
翻译序列
#use strict;
if (scalar @ARGV==0){
die "perl $0 <cds file> <pep>\n";
}
open IN, "<@ARGV[0]";
$/=">";<IN>;#设定>为分隔符,消耗掉空行。
while (<IN>){
chomp;
next if(/^\s+$/);#如果空行跳过
my($id,$dna)=(split /\n/,$_,2)[0,1];
$dna=~s/\n//g;#替换掉其它换行符
my $protein="";
for (my $i=0;$i<(length($dna)-2);$i+=3){
$protein.=&codon2aa(substr($dna,$i,3));
}
print "$id\n";
print "$protein\n";
}
close IN;
$/="\n";
sub codon2aa{
my($codon)=@_;
$codon=uc $codon; #转化成大写
my(%genetic_code) = (
'TCA' => 'S', # Serine
'TCC' => 'S', # Serine
'TCG' => 'S', # Serine
'TCT' => 'S', # Serine
'TTC' => 'F', # Phenylalanine
'TTT' => 'F', # Phenylalanine
'TTA' => 'L', # Leucine
'TTG' => 'L', # Leucine
'TAC' => 'Y', # Tyrosine
'TAT' => 'Y', # Tyrosine
'TAA' => '', # Stop
'TAG' => '', # Stop
'TGC' => 'C', # Cysteine
'TGT' => 'C', # Cysteine
'TGA' => '', # Stop
'TGG' => 'W', # Tryptophan
'CTA' => 'L', # Leucine
'CTC' => 'L', # Leucine
'CTG' => 'L', # Leucine
'CTT' => 'L', # Leucine
'CCA' => 'P', # Proline
'CCC' => 'P', # Proline
'CCG' => 'P', # Proline
'CCT' => 'P', # Proline
'CAC' => 'H', # Histidine
'CAT' => 'H', # Histidine
'CAA' => 'Q', # Glutamine
'CAG' => 'Q', # Glutamine
'CGA' => 'R', # Arginine
'CGC' => 'R', # Arginine
'CGG' => 'R', # Arginine
'CGT' => 'R', # Arginine
'ATA' => 'I', # Isoleucine
'ATC' => 'I', # Isoleucine
'ATT' => 'I', # Isoleucine
'ATG' => 'M', # Methionine
'ACA' => 'T', # Threonine
'ACC' => 'T', # Threonine
'ACG' => 'T', # Threonine
'ACT' => 'T', # Threonine
'AAC' => 'N', # Asparagine
'AAT' => 'N', # Asparagine
'AAA' => 'K', # Lysine
'AAG' => 'K', # Lysine
'AGC' => 'S', # Serine
'AGT' => 'S', # Serine
'AGA' => 'R', # Arginine
'AGG' => 'R', # Arginine
'GTA' => 'V', # Valine
'GTC' => 'V', # Valine
'GTG' => 'V', # Valine
'GTT' => 'V', # Valine
'GCA' => 'A', # Alanine
'GCC' => 'A', # Alanine
'GCG' => 'A', # Alanine
'GCT' => 'A', # Alanine
'GAC' => 'D', # Aspartic Acid
'GAT' => 'D', # Aspartic Acid
'GAA' => 'E', # Glutamic Acid
'GAG' => 'E', # Glutamic Acid
'GGA' => 'G', # Glycine
'GGC' => 'G', # Glycine
'GGG' => 'G', # Glycine
'GGT' => 'G', # Glycine
);
if (exists $genetic_code{$codon}){
return "$genetic_code{$codon}";
}else{
return "X";
}
}
以上是关于翻译序列练习perl的主要内容,如果未能解决你的问题,请参考以下文章