用Perl实现DNA到RNA的转换和蛋白质的获取 [英] DNA to RNA and Getting Proteins with Perl

查看:17
本文介绍了用Perl实现DNA到RNA的转换和蛋白质的获取的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在做一个项目(我必须用Perl实现它,但我不擅长它),它可以读取DNA并找到它的RNA。把这些RNA分成三元组,就可以得到与之相同的蛋白质名称。我将解释这些步骤:

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

示例:

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?
";
            next LINE;
        }
    }
    print "
"
}

这篇关于用Perl实现DNA到RNA的转换和蛋白质的获取的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆