#!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; } }