このプログラムは、ヌクレオチド配列を取り、それをタンパク質配列に翻訳するように書かれています。しかし、プログラムはファイルからすべてのヌクレオチド配列を取得し、タンパク質配列に変換する必要があります。ヌクレオチド配列を含むファイルは次のようになります。
TAGAGATAGATTAGATAG
CTGATAGATAGTAAGATGATAGTA
GATAGTAGATAGTAG
プログラムは 1 行で入力を受け取ります。プログラムは、複数行のシーケンスから構成されるファイルを読み取る必要があります。たとえば、複数のシーケンスがあり、すべてのシーケンス>
が 1 つのファイルで始まります。問題は、プログラムが入力を 1 行で受け取ることです。
プログラムは次のとおりです。
%pro = (
'ATT' => 'I',
'ATC' => 'I',
'ATA' => 'I',
'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' => '*'
);
print "Enter the mRNA Sequence\n";
$seq = <>;
chomp($seq);
$p = '';
$ln = length($seq);
$j = $ln / 3;
for ($i = 0, $k = 0; $i < $ln, $k < $j; $k++) {
$fra[$k] = substr($seq, $i, 3);
$i = $i + 3;
}
for ($k = 0; $k < $j; $k++) {
if (exists($pro{$fra[$k]})) {
$p = $p . $pro{$fra[$k]};
} else {
$p = $p . x;
}
}
print "$p";