2011-03-21 7 views
3

나는 DNA를 읽고 그 RNA를 찾는 프로젝트 (나는 Perl로 구현해야한다. RNA를 삼중 항으로 나누어 단백질의 동등한 단백질 이름을 얻으십시오. 나는 단계를 설명합니다 :DNA를 RNA로 만들고 Perl로 단백질을 얻는 방법

1) 다음 아미노산의 순서로 변환하는 유전 코드를 사용 RNA에 다음 DNA 텍스트로 변환

예 :

TCATAATACGTTTTGTATTCGCCAGCGCTTCGGTGT 

2) 속기 그 상대방의 대한 DNA는, 먼저 각 DNA 대체 (즉, G는 T에 대한 C, G에 대한 C, A에 대한 T 및 위해)

TCATAATACGTTTTGTATTCGCCAGCGCTTCGGTGT 
AGTATTATGCAAAACATAAGCGGTCGCGAAGCCACA 

이어서, 티민 (T) 염기는 Uraci가 기억 l (U). 따라서 우리의 순서가된다 : 유전자 코드를 사용

AGUAUUAUGCAAAACAUAAGCGGUCGCGAAGCCACA 

후 유전자 코드 테이블에 각 삼중 (코돈)를 보면 그

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

같다. 그래서 AGU 우리가 빼앗아으로 쓸 수, 또는 그냥 S. AUU 우리가 I.이 방법에 휴대용으로 쓰기 이소류신 (일드)가되는, 세린되고, 우리가 얻을 :

SIMQNISGREAT 

내가 줄 것이다 단백질 테이블 :

enter image description here

그래서 어떻게 펄에서 그 코드를 작성할 수 있습니다? 내 질문을 편집하고 내가 한 코드를 작성합니다.

+2

어쨌든, BioPerl을 보았습니까? 그 프로젝트는 생물학에 큰 유용성을 가지고 있습니다. – ekawas

답변

8

아래 스크립트를 시도해보십시오. STDIN (또는 매개 변수로 주어진 파일)에 입력을 받아들이고 행별로 읽습니다. 나는 또한 첨부 된 이미지에서 "STOP"이 멈춤 상태라는 것을 추정한다. 나는 그 사진에서 그걸 모두 읽었 으면 좋겠다.

#!/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