2011-03-21 66 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

相關問題