#!/usr/bin/perl
use Bio::Tools::Run::RemoteBlast;
use strict;
my $form_info;
my @pairs;
my $pair;
my $field_name;
my $value;
my %FORM;
my $request_method;

if ($request_method eq "POST")
{
	my $form_info = <STDIN>;
}
else
{
	$form_info = $ENV{'QUERY_STRING'};
}
my @pairs = split(/&/, $form_info);
foreach my $pair (@pairs)
{
	($field_name, $value) = split(/=/,$pair);
	$value =~ tr/+/ /;
	$value =~ s/%(..)/pack("C", hex($1))/eg;
	$FORM{$field_name} = $value;
}
my $db;
#my $seq=$FORM{seq};
#my $gap=$FORM{gap};
#my $matrix=$FORM{matrix};
#my $entrez=$FORM{entrez};
#my $e_val =$FORM{eval};
#my $word =$FORM{word};
#my $hit =$FORM{hit};

my $seq='sequence.fasta';#$ARGV[0];
my $prog='blastn';
my $genetic="";
my $gap="";#$ARGV[1];
my $matrix="";#$ARGV[2];
my $entrez="";
my $e_val ='1e-10';#$ARGV[3];
my $word =28;#$ARGV[4];
my $hit =10;#$ARGV[5];
my @params = ( '-prog' => $prog,
	       '-data' => $db,
               '-expect' => $e_val,
               '-readmethod' => 'SearchIO' );
my $factory = Bio::Tools::Run::RemoteBlast->new(@params);
$Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} = $entrez if($entrez ne "");
$Bio::Tools::Run::RemoteBlast::HEADER{'DB_GENETIC_CODE'} = $genetic if($genetic ne "");
$Bio::Tools::Run::RemoteBlast::HEADER{'HITLIST_SIZE'}= $hit;
$Bio::Tools::Run::RemoteBlast::HEADER{'MATRIX_NAME'}= $matrix if ($matrix ne "");
$Bio::Tools::Run::RemoteBlast::HEADER{'GAPCOSTS'}= $gap if ($gap ne "");
$Bio::Tools::Run::RemoteBlast::HEADER{'WORD_SIZE'}= $word;
#$Bio::Tools::Run::RemoteBlast::RETRIEVALHEADER{'FORMAT_TYPE'}='HTML';
#$Bio::Tools::Run::RemoteBlast::RETRIEVALHEADER{'RESULTS_FILE'}='yes';
my $str = Bio::SeqIO->new(-file=>$seq , '-format' => 'fasta' );
while (my $input = $str->next_seq())
{
	my $r = $factory->submit_blast($input);
	while ( my @rids = $factory->each_rid )
	{
		foreach my $rid ( @rids )
		{
			my $rc = $factory->retrieve_blast($rid);
	      		if( !ref($rc) )
			{
        			if( $rc < 0 )
				{
          				$factory->remove_rid($rid);
	        		}
      			}
			else
			{
        			my $result = $rc->next_result();
	        		my $filename = "result.blast";
        			$factory->save_output($filename);
        			$factory->remove_rid($rid);
			}
		}
	}
}
open FILE, "result.blast";
my @arr=<FILE>;
close FILE;
print "Content-type:text/html\r\n\r\n";
print "<html>";
print "<head>";
print "<title>Result</title>";
print "</head>";
print "<body>";
print "<textarea rows=50 cols=150>@arr";
print"</textarea>";
print "</body>";
print "</html>";

