我需要你的帮助。
我编写了一个perl脚本,该脚本将多线程文件转换为fasta文件。例如:
在多fasta文件中包含:
法氏囊诺卡氏菌( gi|983431797|ref|NZ_LN000000.1| gi|983431797|ref|NZ_LN000000.1| farcinica gi|983431797|ref|NZ_LN000000.1| NCTC11134,染色体:1) 法氏囊诺卡氏菌( gi|983431797|ref|NZ_LN123456.1| gi|983431797|ref|NZ_LN123456.1| farcinica gi|983431797|ref|NZ_LN123456.1| NCTC11134,染色体:2) 法氏囊诺卡氏菌( gi|983431797|ref|NZ_LN457532.1| Nocardia NCTC11134,染色体:3)
我的剧本是这样的:
file1.fa
法氏囊诺卡氏菌( gi|983431797|ref|NZ_LN000000.1| gi|983431797|ref|NZ_LN000000.1| farcinica gi|983431797|ref|NZ_LN000000.1| NCTC11134,染色体:1)
file2.fa
法氏囊诺卡氏菌( gi|983431797|ref|NZ_LN123456.1| gi|983431797|ref|NZ_LN123456.1| farcinica gi|983431797|ref|NZ_LN123456.1| NCTC11134,染色体:2)
在不同的fasta文件中。
但是,我需要我的脚本来生成一个文件,其中包含了多快捷键文件中的所有引用。例如:
fileReferences.txt:法氏囊诺卡氏菌基因组组装NCTC11134,染色体:1 ref|NZ_LN123456.1| ref|NZ_LN123456.1| farcinica基因组组装NCTC11134,2染色体:2 ref|NZ_LN457532.1| ref|NZ_LN123456.1| farcinica基因组组装NCTC11134,3染色体
你明白吗?
对不起,我是perl语言的新手,经过大量的研究,我完成了第一个脚本,但我无法完成它。所以如果有人能帮我,我会很感激的。请原谅我的英语。^^
我的剧本:
#!/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);发布于 2016-05-09 20:15:13
因此,基本上,您希望每个*.fa文件的第一行在一个fileReferences.txt中?如果是这样,请尝试如下:
awk 'FNR==1' *.fa > fileReferences.txthttps://stackoverflow.com/questions/37124005
复制相似问题