如何从Fasta文件中删除小重叠群?

时间:2019-11-28 19:35:19

标签: shell perl grep fasta

## removesmalls.pl
#!/usr/bin/perl
use strict;
use warnings;

my $minlen = shift or die "Error: `minlen` parameter not provided\n";
{
    local $/=">";
    while(<>) {
        chomp;
        next unless /\w/;
        s/>$//gs;
        my @chunk = split /\n/;
        my $header = shift @chunk;
        my $seqlen = length join "", @chunk;
        print ">$_" if($seqlen >= $minlen);
    }
    local $/="\n";
}

执行脚本如下:

perl removesmalls.pl 1000 contigs.fasta > contigs-1000.fasta

上面的脚本对我有用,但是有问题, 我有109个不同的fasta文件,它们具有不同的文件名。 我可以为单个文件运行脚本,但是我想一次为所有文件运行脚本,并且每个文件的结果文件应该分别不同。

文件名类似于SRR8224532.fasta,SRR8224533.fasta,SRR8224534.fasta等 在删除重叠群(即对我来说少于1000个)后,我想要结果文件,例如SRR8224532-out.fasta, SRR8224533-out.fasta,等等。

任何帮助或建议都会有所帮助。

0 个答案:

没有答案