2012-08-06 5 views
1

내 멀티 FASTA 보관이 형식에와 다음 라인 연결합니다 :내 파일의 헤더 라인의 패턴을 검색 할 필요 펄

>miRNA65 dvex2345 
CGATGCTAGATGCTATGACAACGATGCCTCG-G 
>miRNA60 dvex1234 
T-TAA-ACTCATCATCATCATACTCATCATCATCATCAGCATATTAACAAG 
>miRNA65 dvex2345 
T-TAA-ACTTATCATCATCATACTCATCATCATCATCAGCATATTAACAAG 

나는 펄에 새로운 오전과 나는를 검색해야 '> lines'과 같고 다음 행을 연결하여 시퀀스에 결합합니다.

나는 위의 파일에 대해 다음과 같은 출력을 기대 해요 :

>miRNA60 dvex1234 
T-TAA-ACTCATCATCATCATACTCATCATCATCATCAGCATATTAACAAG 
>miRNA65 dvex2345 
T-TAA-ACTTATCATCATCATACTCATCATCATCATCAGCATATTAACAAG.CGATGCTAGATGCTATGACAACGATGCCTCG-G 

가장 좋은 방법은 무엇입니까이 끝내야?

답변

3
%hash; 
while (<DATA>) { 
     if (/^>(miRNA\d+)/) { 
       $hash{$1}[0] = $_; 
       chomp($n = <DATA>); 
       unshift @{$hash{$1}[1]}, $n; 
     } 
} 

for $k (sort keys %hash) { 
     print $hash{$k}[0], join(',', @{$hash{$k}[1]}), "\n"; 
} 
__DATA__ 
>miRNA65 dvex2345 
CGATGCTAGATGCTATGACAACGATGCCTCG-G 
>miRNA60 dvex1234 
T-TAA-ACTCATCATCATCATACTCATCATCATCATCAGCATATTAACAAG 
>miRNA65 dvex2345 
T-TAA-ACTTATCATCATCATACTCATCATCATCATCAGCATATTAACAAG 
+0

감사합니다. 훌륭한 솔루션. –