perl - 从 DNA 到 RNA 并使用 Perl 获取蛋白质

标签 perl project dna-sequence protein-database

我正在研究一个读取 DNA 并找到其 RNA 的项目(我必须在 Perl 中实现它,但我不擅长它)。将该 RNA 分成三联体,以获得它的等效蛋白质名称。我将解释步骤:

1) 将以下 DNA 转录为 RNA,然后使用遗传密码将其翻译成氨基酸序列

例子:

TCATAATACGTTTTGTATTCGCCAGCGCTTCGGTGT

2) 要转录 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 变成了 Serine,我们可以写成 Ser,或者 只是 S. AUU 变成了异亮氨酸(Ile),我们写成 I。这样继续下去,我们得到:

SIMQNISGREAT

我会给出蛋白质表:

enter image description here

那么我怎样才能在 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"
}

关于perl - 从 DNA 到 RNA 并使用 Perl 获取蛋白质,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5382442/

相关文章:

perl - 没有在 perl 类中定义 DESTROY 方法是否有内存泄漏的风险?

android - 无法打开项目项目文件的长度超过 100 个字符的限制

C++ ifstream 不读取\n?

r - 如何找到密码子的特定频率?

perl - 菱形算子在解析和裸词中的语法混淆

mysql - PERL::DBI 在列表中获取用户数据库

json - 如何从文件中传输 JSON?

java - Eclipse - 覆盖从其他源文件夹自动生成的源

r - 在具有多行的 data.frame 中识别部分匹配的字符串(DNA 序列)所需的解决方案

python - 如何使用python编程将一组DNA序列转换成蛋白质序列?