把cDNA翻译成蛋白质
2021-05-11 本文已影响0人
余绕
open FA, "$ARGV[0]";
$/=">"; #以>进行全局分割
<FA>;
while(<FA>){
chomp;
next,if($_=~/^$/); #忽略空行
my($ID,$seq)=split /\n/, $_,2;
$seq=~s/\n//g;
#print"$seq\n";
$protein='';
for($i=0;$i<=length($seq);$i+=3){
$condon=substr($seq,$i,3);
$Aminoacid=CDS_to_protein($condon); #这里不能直接.=需要先获得氨基酸,在进行连接,但是好像前面计算分子量时候用+=可以,很奇怪
$protein.=$Aminoacid;
}
print">$ID\n$protein\n";
}
sub CDS_to_protein{
%Codon=(
"CTT"=>"L",
"CTC"=>"L",
"CTA"=>"L",
"CTG"=>"L",
"TTA"=>"L",
"TTG"=>"L",
"GTT"=>"V",
"GTC"=>"V",
"GTA"=>"V",
"GTG"=>"V",
"TTT"=>"F",
"TTC"=>"F",
"ATG"=>"M",
"TGT"=>"C",
"TGC"=>"C",
"GCT"=>"A",
"GCC"=>"A",
"GCA"=>"A",
"GCG"=>"A",
"GGT"=>"G",
"GGC"=>"G",
"GGA"=>"G",
"GGG"=>"G",
"CCT"=>"P",
"CCC"=>"P",
"CCA"=>"P",
"CCG"=>"P",
"ACT"=>"T",
"ACC"=>"T",
"ACA"=>"T",
"ACG"=>"T",
"TCT"=>"S",
"TCC"=>"S",
"TCA"=>"S",
"TCG"=>"S",
"AGT"=>"S",
"AGC"=>"S",
"TAT"=>"Y",
"TAC"=>"Y",
"TGG"=>"W",
"CAA"=>"Q",
"CAG"=>"Q",
"AAT"=>"N",
"AAC"=>"N",
"CAT"=>"H",
"CAC"=>"H",
"GAA"=>"E",
"GAG"=>"E",
"GAT"=>"D",
"GAC"=>"D",
"AAA"=>"K",
"AAG"=>"K",
"CGT"=>"R",
"CGC"=>"R",
"CGA"=>"R",
"CGG"=>"R",
"AGA"=>"R",
"AGG"=>"R",
"TAA"=>"*",
"TAG"=>"*",
"TGA"=>"*",
);
$condon=shift @_;
$AA=$Codon{$condon};
return $AA;
}
输入数据:
image.png
输出数据:
image.png