我正在尝试计算 FASTA 文件中“N”的数量,即:
>Header
AGGTTGGNNNTNNGNNTNGN
>Header2
AGNNNNNNNGNNGNNGNNGN
所以最后我想得到'N'的数量并且每个标题都是一个读取所以我想制作一个直方图所以我最后会输出这样的东西:
# of N's # of Reads
0 300
1 240
ETC...
所以有 300 个序列或读取有 0 个“N”
use strict;
use warnings;
my $file = shift;
my $output_file = shift;
my $line;
my $sequence;
my $length;
my $char_N_count = 0;
my @array;
my $count = 0;
if (!defined ($output_file)) {
die "USAGE: Input FASTA file\n";
}
open (IFH, "$file") or die "Cannot open input file$!\n";
open (OFH, ">$output_file") or die "Cannot open output file $!\n";
while($line = <IFH>) {
chomp $line;
next if $line =~ /^>/;
$sequence = $line;
@array = split ('', $sequence);
foreach my $element (@array) {
if ($element eq 'N') {
$char_N_count++;
}
}
print "$char_N_count\n";
}