我需要你的帮助。
我做了一个将multifasta文件转换为fasta文件的perl脚本。 例如:
在multi-fasta文件中包含:
GI | 983431797 | REF | NZ_LN000000.1 | Nocardia farcinica基因组装配NCTC11134,染色体:1 CTGACTGGGAGTACGAAGGCCGCCTGCACAAGACAACGGGGCAGCGAACCTTCTTCTGCACCGGCACGGA
GI | 983431797 | REF | NZ_LN123456.1 | Nocardia farcinica基因组装配NCTC11134,染色体:2 CTGACTGGGAGTACGAAGGCCGCCTGCACAAGACAACGGGGCAGCGAACCTTCTTCTGCACCGGCACGGA
GI | 983431797 | REF | NZ_LN457532.1 | Nocardia farcinica基因组装配NCTC11134,染色体:3
CTGACTGGGAGTACGAAGGCCGCCTGCACAAGACAACGGGGCAGCGAACCTTCTTCTGCACCGGCACGGA
我的脚本执行此操作:
file1.fa
GI | 983431797 | REF | NZ_LN000000.1 | Nocardia farcinica基因组装配NCTC11134,染色体:1 CTGACTGGGAGTACGAAGGCCGCCTGCACAAGACAACGGGGCAGCGAACCTTCTTCTGCACCGGCACGGA
file2.fa
GI | 983431797 | REF | NZ_LN123456.1 | Nocardia farcinica基因组装配NCTC11134,染色体:2 CTGACTGGGAGTACGAAGGCCGCCTGCACAAGACAACGGGGCAGCGAACCTTCTTCTGCACCGGCACGGA
在不同的fasta文件中。
但我需要我的脚本生成一个包含multifasta文件中所有引用的文件。 例如:
fileReferences.txt: 裁判| NZ_LN000000.1 | Nocardia farcinica基因组装配NCTC11134,染色体:1 裁判| NZ_LN123456.1 | Nocardia farcinica基因组装配NCTC11134,染色体:2 裁判| 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 :(得分:0)
所以基本上,你想要*.fa
中的每个fileReferences.txt
文件的第一行?如果是这样,试试这个:
awk 'FNR==1' *.fa > fileReferences.txt