我正在开发一个读取 DNA 并找到其 RNA 的项目(我必须用 Perl 实现它,但我不擅长)。将该 RNA 分成三联体以获得其等效的蛋白质名称。我将解释步骤:
1)将以下DNA转录为RNA,然后使用遗传密码将其翻译为氨基酸序列
Example:
TCATAATACGTTTTGTATTCGCCAGCGCTTCGGTGT
2) 要转录 DNA,首先将每个 DNA 替换为对应的 DNA(即,G 替换 C,C 替换 G,T 替换 A,A 替换 T):
TCATAATACGTTTTGTATTCGCCAGCGCTTCGGTGT
AGTATTATGCAAAACATAAGCGGTCGCGAAGCCACA
接下来,请记住胸腺嘧啶 (T) 碱基会变成尿嘧啶 (U)。因此我们的序列变成:
AGUAUUAUGCAAAACAUAAGCGGUCGCGAAGCCACA
使用遗传密码就是这样
AGU AUU AUG CAA AAC AUA AGC GGU CGC GAA GCC ACA
然后在遗传密码表中查找每个三联体(密码子)。所以AGU变成丝氨酸,我们可以写成Ser,或者
S.AUU变成异亮氨酸(Ile),我们写成I。这样下去,我们得到:
SIMQNISGREAT
我给出蛋白质表:
那么如何用 Perl 编写该代码呢?我将编辑我的问题并编写我所做的代码。
尝试下面的脚本,它接受 STDIN(或作为参数给出的文件中)的输入并按行读取它。我还认为,所附图像中的“停止”是某种停止状态。希望我能从那张照片中读懂一切。
#!/usr/bin/perl
use strict;
use warnings;
my %proteins = qw/
UUU F UUC F UUA L UUG L UCU S UCC S UCA S UCG S UAU Y UAC Y UGU C UGC C UGG W
CUU L CUC L CUA L CUG L CCU P CCC P CCA P CCG P CAU H CAC H CAA Q CAG Q CGU R CGC R CGA R CGG R
AUU I AUC I AUA I AUG M ACU T ACC T ACA T ACG T AAU N AAC N AAA K AAG K AGU S AGC S AGA R AGG R
GUU V GUC V GUA V GUG V GCU A GCC A GCA A GCG A GAU D GAC D GAA E GAG E GGU G GGC G GGA G GGG G
/;
LINE: while (<>) {
chomp;
y/GCTA/CGAU/; # translate (point 1&2 mixed)
foreach my $protein (/(...)/g) {
if (defined $proteins{$protein}) {
print $proteins{$protein};
}
else {
print "Whoops, stop state?\n";
next LINE;
}
}
print "\n"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)