所以我试图将一条互补的 DNA 链翻译成它各自的氨基酸。到目前为止,我有这个代码:
#!/usr/bin/perl
open (INFILE, "sumaira2.out");
open (OUTFILE3, ">>sumaira3.out");
%aacode = (
TTT => "F", TTC => "F", TTA => "L", TTG => "L",
TCT => "S", TCC => "S", TCA => "S", TCG => "S",
TAT => "Y", TAC => "Y", TAA => "STOP", TAG => "STOP",
TGT => "C", TGC => "C", TGA => "STOP", TGG => "W",
CTT => "L", CTC => "L", CTA => "L", CTG => "L",
CCT => "P", CCC => "P", CCA => "P", CCG => "P",
CAT => "H", CAC => "H", CAA => "Q", CAG => "Q",
CGT => "R", CGC => "R", CGA => "R", CGG => "R",
ATT => "I", ATC => "I", ATA => "I", ATG => "M",
ACT => "T", ACC => "T", ACA => "T", ACG => "T",
AAT => "N", AAC => "N", AAA => "K", AAG => "K",
AGT => "S", AGC => "S", AGA => "R", AGG => "R",
GTT => "V", GTC => "V", GTA => "V", GTG => "V",
GCT => "A", GCC => "A", GCA => "A", GCG => "A",
GAT => "D", GAC => "D", GAA => "E", GAG => "E",
GGT => "G", GGC => "G", GGA => "G", GGG => "G",
); # this is the hash table for the amino acids
while ($line=<INFILE>){
$codon = $codon.$line;
@array = split "",$codon;
} # splits all the characters in the text
for ($count = 0; $count<scalar@array; $count= $count + 3) {
$codon = $codon.$array[$count].$array[$count+1].$array[$count+2];
$aminoacid = $aacode{$codon};
} # tells how to read the codon and execute the hash table
$protein = $protein.$aminoacid; #catenate the string
print OUTFILE3 $protein;
我的 infile 已经有反向互补 DNA,我只是想翻译它。出于某种原因,我的输出中没有任何内容。我不知道出了什么问题,因为终端也没有给我任何错误。任何帮助将不胜感激。
这是我要翻译的文件示例:
TCGTCGCCTCCCCAACCTAGGTAGTCCGTTGCTGCCCGACGACGGCCGGTAGTCGCCT GCGTCCCTCCTGAAAGGCGTTGGCCGGCAAGCTACGCCGTGGCTACCGGAAGCGCGTCCCCATCAC GCGGTCCTAACTGAACGCGACGGGATGGAGAGTGATCACTCCCCGCCGTCGCGTAGTTCGCCACTC
并且它继续运行 17 行。