#!c:/perl/bin/perl.exe -w
use lib 'C:\Program Files\Apache Group\Apache2\cgi-bin\MyModules';
use strict "vars";
use CGI;
use BlastQueries; # self created package for handling creation of blast db
use ParseBlastResults;
use CreateBlastDB;
use CGI::Carp qw( fatalsToBrowser);
use Data::Dumper;
use threads;
use ParseBlastResults;
use blastNResults;
BEGIN{
my $queryPath = "C:\\BlastQueries\\"; #path where all query files should be placed by user
my $dbFilePath = "C:\\BlastDBs\\";
my $tempQueryFile = $queryPath."_webQuery.txt"; #temporaily hold the query from webpage
my $blastall= "C:\\Genomes\\bin\\blastall.exe";
my $blastM0File = "blastNResultsM0.ffn";
my $blastM6File = "blastNResultsM6.ffn";
my $resultsFilePath = "C:\\Program Files\\Apache Group\\Apache2\\htdocs\\results.html";
my $resultsFile = "/results.html";
my %options;
my $resultantfile;
my $cgi = CGI->new;
my @params = $cgi->param;
# print $cgi->header;
my $folder = '';
my ($view, $wait, $runBlast, $running) = 0;
my $iteration = 1;
$iteration = $cgi->param('iteration');
$iteration ++ if ($iteration == 1);
foreach (@params){
if($_ =~/^view/){
$folder = $cgi->param($_) if $cgi->param($_);
$runBlast = 0;
$running = 0;
$view = 1;
$wait = 0;
last;
}elsif($_ eq 'wait'){
$runBlast = 0;
$running = 0;
$wait = 1;
last;
}
}
if($wait){ #still waiting for html file to be done
# print $cgi->start_html(-title=>"Nucleotide Blast Results",
# -script=>{-language=>'JAVASCRIPT', -src=>'/Javascripts/blastNResultsPre.js'},
# -style=>{-src=>'/StyleSheets/style.css'});
# print $cgi->start_form( -name=>'checkBlast', -action=>"/cgi-bin/BlastQuery/blastNResultsPre.cgi"),"\n";
# print $cgi->hidden(-name=>'wait', -value=>1);
my $display = BlastQueries::checkHTMLFile($resultsFilePath);
# print "display 2 : $display
";
if($display){
# print $cgi->start_html(-title=>"Nucleotide Blast Results",
# -script=>{-language=>'JAVASCRIPT', -src=>'/Javascripts/blastNResultsPre.js'},
# -style=>{-src=>'/StyleSheets/style.css'});
print $cgi->redirect( -URL => $resultsFile);
# print "FINISHED!
";
}else{ #finished and now can see file
print $cgi->header;
print $cgi->start_html(-title=>"Nucleotide Blast Results",
-script=>{-language=>'JAVASCRIPT', -src=>'/Javascripts/blastNResultsPre.js'},
-style=>{-src=>'/StyleSheets/style.css'});
print $cgi->start_form( -name=>'checkBlast', -action=>"/cgi-bin/BlastQuery/blastNResultsPre.cgi"),"\n";
print $cgi->hidden(-name=>'wait', -value=>1);
# $iteration ++;
print $cgi->hidden(-name=>'iteration', -value=>"$iteration");
print "Still creating display file. Please wait.
";
print "This page has been refreshed $iteration times
";
print $cgi->end_form();
}
print $cgi->end_form()
}elsif($view){
$queryPath = $queryPath.$folder.'\\';
# blastNResults::generateHTMLFile($resultsFilePath, $blastM0File, $blastM6File, $queryPath);
my $thr = threads->new(\&blastNResults::generateHTMLFile, $resultsFilePath, $blastM0File,$blastM6File, $queryPath);
sleep(4);
$thr->detach;
print $cgi->header;
print $cgi->start_html(-title=>"Nucleotide Blast Results",
-script=>{-language=>'JAVASCRIPT', -src=>'/Javascripts/blastNResultsPre.js'},
-style=>{-src=>'/StyleSheets/style.css'}); #this is the window title
print $cgi->h1("Nucleotide Blast Results: \n");
print $cgi->start_form( -name=>'checkBlast', -action=>"/cgi-bin/BlastQuery/blastNResultsPre.cgi"),"\n";
print $cgi->hidden(-name=>'wait', -value=>1);
print $cgi->hidden(-name=>'iteration', -value=>'1');
print "Creating display file. Please wait.
";
print $cgi->end_form();
# my $thr = threads->new(\&blastNResults::generateHTMLFile, $resultsFilePath, $blastM0File,$blastM6File, $queryPath);
# $thr->detach;
}
}