#!/usr/local/bin/perl -w
#
# fasta2coils  - Generate coils2 reports from fasta files
#
# Author: Leonardo Marino-Ramirez <marino@tofu.tamu.edu>
# 
# Please cite the author in any work or product based on this material.
#          
           

use strict;
use Getopt::Std;
use File::Basename;

use vars qw($opt_d $dirname $coils2 $html4coils2 $file @fasta_files $fasta
	    $opt_h
	    );

## Check command line
my $prog = basename($0);

getopt('hd');

if ($opt_h) {
    usage($prog); exit();
} if ($opt_d) {
$dirname = "$opt_d";
$coils2 = '/usr/local/bin/coils2';
$html4coils2 = '/usr/local/bin/html4coils2';
} else {
    usage($prog); exit();
}

## Get a working directory containing proteins in fasta format
if (opendir (DIR, $dirname)) {
   while  ($file = readdir(DIR)) {
       ## blast reports must contain the .br suffix
        push (@fasta_files, "$file") if ($file =~ /\.aa$/);
   }
}
   closedir(DIR);

## Generate a param file for each fasta file
foreach $fasta (@fasta_files) {
    my   $line1 = "$fasta";
    my   $line2 = "coils2.$fasta";
    my   $line3 = "2";
    my   $line4 = "N";
    my   $line5 = "p";
    open (FILE, "> ./params.$fasta") or die $!;
    print FILE "$line1\n$line2\n$line3\n$line4\n$line5\n";
    close (FILE);
}

## Generate html output
foreach $fasta (@fasta_files) {
    system "$coils2 \< params.$fasta \&\& $html4coils2 -i coils2.$fasta \> coils2.$fasta.html";
}

## Clean param files

foreach $fasta (@fasta_files) {
    unlink "params.$fasta";
}

## Normal end
exit(0);

## Usage display
sub usage {
  my $p = shift;
  print STDERR <<USAGE
usage: $p [options] <file>

options [default]:
    -h           Usage display.
    -d           Directory containing fasta files (*.aa).
USAGE
}