#!/usr/bin/perl
# usage : perl sm_compute_GC.pl <FASTA file> <output file>
use strict;
use warnings;

my $s = $/;
$/ = "\n>";
my %h = ();
open (IN, "<$ARGV[0]");
open (OUT, ">$ARGV[1]");
print OUT sprintf("%s\t%s\n", "Sequence name", "GC content");
while ( my $line=<IN>) {
    chomp $line;
    my @F = split(/\n/, $line);
    my $name = $F[0];
    $name =~ s/^>*//;
    my $seq = join("", @F[1..$#F]);
    my $gc = 0;
    while( $seq =~ /[gc]/ig ) {
        $gc++;
    }
    $h{$name} = $gc/length($seq);
    print OUT sprintf("%s\t%.3f\n", $name, ($gc/length($seq)));
}
close( IN );
close( OUT );
$/ = $s;

