2011-03-21 96 views
3

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

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

实施例:

TCATAATACGTTTTGTATTCGCCAGCGCTTCGGTGT 

2)转录的DNA,第一替换各DNA为它的对应物(即,G为C,C为G,T为A和A为T):

TCATAATACGTTTTGTATTCGCCAGCGCTTCGGTGT 
AGTATTATGCAAAACATAAGCGGTCGCGAAGCCACA 

接着,请记住,胸腺嘧啶(T)碱基成为Uraci l(U)。因此,我们的顺序变为:

AGUAUUAUGCAAAACAUAAGCGGUCGCGAAGCCACA 

使用遗传密码就是这样

AGU AUU AUG CAA AAC AUA AGC GGU CGC GAA GCC ACA 

再看看每个三联(密码)了遗传密码的表格。所以AGU变成丝氨酸,我们可以为丝氨酸写或 只是S. AUU变成异亮氨酸(ILE),这是我们写成I.这样进行的,我们得到:

SIMQNISGREAT 

我会给蛋白质表:

enter image description here

因此,如何能我写在Perl代码?我将编辑我的问题并编写我所做的代码。

+2

听起来像功课......反正,你见过BioPerl吗?该项目对生物学有很大的用处。 – ekawas 2011-03-21 20:03:30

回答

8

尝试下面的脚本,它接受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" 
} 
+0

接受你的答案并投票决定是否有好的答案。但是我想知道,我们可以做更少的代码,我的意思是从命令行运行并使用更少的代码行是可能的? – kamaci 2011-03-22 21:20:19

相关问题