Emboss Cons 用于获得许多文件的一致序列,而不仅仅是一个
Emboss Cons for getting consensus sequence for many files, not just one
我安装并配置了 emboss,并且可以运行 简单的命令行参数来获得一个先前对齐的 multifasta 文件的共识:
% 缺点
从多重比对创建一致序列
输入(对齐)序列集:dna.msf
输出序列[dna.fasta]:aligned.cons
这非常适合一次处理一个文件,但我有数百个文件要处理。
我已经开始编写一个带有 foreach 循环的 perl 脚本来尝试对每个文件进行处理,但我想我需要在脚本之外才能执行 运行 这些命令。关于如何 运行 命令行友好程序的任何线索,用于从先前对齐的 multifasta 文件中连续获取多个文件的 fasta 格式的单个共识序列?我不必使用浮雕 - 我可以使用其他程序。
到目前为止,这是我的代码:
#!/usr/bin/perl
use warnings;
use strict;
my $dir = ("/Users/roblogan/Documents/Clustered_Barcodes_Aligned");
my @ArrayofFiles = glob "$dir/*"; #put all files in the directory into an array
#print join("\n", @ArrayofFiles), "\n"; #diagnostic print
foreach my $file (@ArrayofFiles){
print 'cons', "\n";
print "/Users/roblogan/Documents/Clustered_Barcodes_Aligned/Clustered_Barcode_Number_*.*.Sequences.txt.out", "\n";
print "*.*.Consensus.txt", "\n";
}
EMBOSS 缺点有两个强制限定符:
-sequence(提供输入序列)
-outseq(用于输出)。
因此您需要将以上内容提供给字段 .
现在将您的代码稍微更改为 运行 多程序:
my $count=1;
foreach my $file (@ArrayofFiles){
$output_path= "/Users/roblogan/Documents/Clustered_Barcodes_Aligned/";
my $output_file = $output_path. "out$count";# please change here to get your desired output filename
my $command = "cons -sequence '$file' -outseq '$output_file' ";
system($command);
$count ++;
}
希望以上代码对您有用。
我安装并配置了 emboss,并且可以运行 简单的命令行参数来获得一个先前对齐的 multifasta 文件的共识:
% 缺点
从多重比对创建一致序列
输入(对齐)序列集:dna.msf
输出序列[dna.fasta]:aligned.cons
这非常适合一次处理一个文件,但我有数百个文件要处理。 我已经开始编写一个带有 foreach 循环的 perl 脚本来尝试对每个文件进行处理,但我想我需要在脚本之外才能执行 运行 这些命令。关于如何 运行 命令行友好程序的任何线索,用于从先前对齐的 multifasta 文件中连续获取多个文件的 fasta 格式的单个共识序列?我不必使用浮雕 - 我可以使用其他程序。 到目前为止,这是我的代码:
#!/usr/bin/perl
use warnings;
use strict;
my $dir = ("/Users/roblogan/Documents/Clustered_Barcodes_Aligned");
my @ArrayofFiles = glob "$dir/*"; #put all files in the directory into an array
#print join("\n", @ArrayofFiles), "\n"; #diagnostic print
foreach my $file (@ArrayofFiles){
print 'cons', "\n";
print "/Users/roblogan/Documents/Clustered_Barcodes_Aligned/Clustered_Barcode_Number_*.*.Sequences.txt.out", "\n";
print "*.*.Consensus.txt", "\n";
}
EMBOSS 缺点有两个强制限定符:
-sequence(提供输入序列)
-outseq(用于输出)。
因此您需要将以上内容提供给字段 .
现在将您的代码稍微更改为 运行 多程序:
my $count=1;
foreach my $file (@ArrayofFiles){
$output_path= "/Users/roblogan/Documents/Clustered_Barcodes_Aligned/";
my $output_file = $output_path. "out$count";# please change here to get your desired output filename
my $command = "cons -sequence '$file' -outseq '$output_file' ";
system($command);
$count ++;
}
希望以上代码对您有用。