0

FASTA ファイル内の「N」の数を数えようとしています。これは次のとおりです。

>Header
AGGTTGGNNNTNNGNNTNGN
>Header2
AGNNNNNNNGNNGNNGNNGN

最後に、「N」の数のカウントを取得したいのですが、各ヘッダーは読み取りであるため、ヒストグラムを作成したいので、最終的に次のような出力を行います。

# of N's   # of Reads

0            300
1            240

等...

したがって、「N」の数が 0 のシーケンスまたはリードが 300 あります。

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";
 }
4

1 に答える 1