编写此程序以获取核苷酸序列并将其翻译成蛋白质序列。但是程序必须从一个文件中获取所有的核苷酸序列并翻译成蛋白质序列。包含核苷酸序列的文件如下所示:
TAGAGATAGATTAGATAG
CTGATAGATAGTAAGATGATAGTA
GATAGTAGATAGTAG
该程序在一行中接受输入。程序应该读取由多行序列组成的文件,例如有多个序列,并且所有序列都>
以一个文件开头。问题是程序在一行中接受输入。
这是程序:
%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";