2016-05-09 5 views
0

私はあなたの助けが必要です。ファイルのヘッダにある参照名とウイルス名で1つのfastaファイルを生成するにはどうすればよいですか?

私は、multifastaファイルをfastaファイルに変換するperlスクリプトを作成しました。例については :マルチFASTAファイルで

含まれています

GI | 983431797 | REF | NZ_LN000000.1 |ノカルジアfarcinicaゲノムアセンブリNCTC11134、染色体:1 CTGACTGGGAGTACGAAGGCCGCCTGCACAAGACAACGGGGCAGCGAACCTTCTTCTGCACCGGCACGGA

GI | 983431797 | REF | NZ_LN123456.1 |ノカルジアfarcinicaゲノムアセンブリNCTC11134、染色体:2 CTGACTGGGAGTACGAAGGCCGCCTGCACAAGACAACGGGGCAGCGAACCTTCTTCTGCACCGGCACGGA

GI | 983431797 | REF | NZ_LN457532.1 | | 983431797 | | REF | NZ_LN000000.1

file1.fa

GI:ノカルジアfarcinicaゲノムアセンブリNCTC11134は、染色体:3

CTGACTGGGAGTACGAAGGCCGCCTGCACAAGACAACGGGGCAGCGAACCTTCTTCTGCACCGGCACGGA

私のスクリプトは、この行いますノカルジアfarcinicaゲノムアセンブリNCTC11134、染色体:1 CTGACTGGGAGTACGAAGGCCGCCTGCACAAGACAACGGGGCAGCGAACCTTCTTCTGCACCGGCACGGA

file2.fa

GI | 983431797 | REF | NZ_LN123456.1 |ノカルジアfarcinicaゲノムアセンブリNCTC11134、染色体:異なるFASTAファイル内の2 CTGACTGGGAGTACGAAGGCCGCCTGCACAAGACAACGGGGCAGCGAACCTTCTTCTGCACCGGCACGGA

しかし、私はmultifastaファイルにあるすべての参照を含むファイルを生成するためにスクリプトが必要です。 例:

fileReferences.txt: ref | NZ_LN000000.1 | Nocardia farcinicaゲノムアセンブリNCTC11134、染色体:1 ref | NZ_LN123456.1 | Nocardia farcinicaゲノムアセンブリNCTC11134、染色体:2 ref | NZ_LN457532.1 | Nocardia farcinicaゲノムアセンブリNCTC11134、染色体:3

理解していますか?

私は申し訳ありませんが、私はPerl言語では新しく、多くの研究の後で最初のスクリプトを作成しましたが、完了できません。だから誰でも私を助けることができれば、私は感謝します。 P.S:私の英語を許してください。 ^^

マイスクリプト:

#!/usr/bin/env perl 

use strict; 

use warnings; 

use IO::File; 

my $usage = "\nUSAGE: perl $0 <Fasta>"."\n"; 

print $usage and exit unless($ARGV[0]); 

my $input = IO::File->new("$ARGV[0]"); 

my $output = ""; 


while(my $line = $input->getline) 

{ 

    chomp($line); 

    if($line =~ /^>/) 

    { 

     if($output ne "") 

     { 

       close ($output); 

     } 

     $line =~ s/^>//; 

     $output = IO::File->new("> $line.fa"); 

     print $output ">".$line."\n"; 

     } 

     else 

     { 

      print $output $line."\n"; 

     } 

    } 


close ($input); 

close ($output); 

答えて

0

だから基本的に、あなたはfileReferences.txt内のすべての*.faファイルの最初の行をしたいですか?もしそうなら、これを試してください:

awk 'FNR==1' *.fa > fileReferences.txt 
+0

しかし、私はスクリプト自体でこれを行う必要があります – benezinho

関連する問題