把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
上一篇 下一篇

猜你喜欢

热点阅读