编写该程序以获取核苷酸序列并将其翻译成蛋白质序列。但该程序必须从文件中获取所有核苷酸序列并转化为蛋白质序列。包含核苷酸序列的文件如下所示:
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";
答案 0 :(得分:0)
open $fh, "r", "myFileName";
while ($seq = <fh>) {
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";
}