[Bioperl-l] LocalBlast.pm running under Apache
bmoore at genetics.utah.edu
Wed Dec 14 00:06:07 EST 2005
I'm working on an application to implement a local blast server with a
web interface. In this case wwwblast from NCBI won't do because I need
more control over the output, so I'm using Bio::Tool::Run::LocalBlast
and Bio::SearchIO::Writer::HTMLResultWriter to run the blast and
generate the HTML report, and a CGI script to parse the initial form and
post the results. I mocked up the script first without CGI, and it
works perfectly. I drop that into a CGI script, and I get no results.
I do get output so I know that the blast executable is running. I can
dump the Seq object, and the LocalBlast object to the browser and see
that the sequence is there, and that the parameters passed to blastall
are correct. I know that the database path is correct, because in the
output I see:
1,544,970 sequences; 188,483,908 total letters
which is correct.
The output is well formed, it just says "***** No hits found ******".
The exact same search with the same sequence runs fine in a non-CGI
script, and finds many hits, but within the CGI script it finds no hits.
The CGI script is actually built within the framework of a larger
CGI::Application system, so I can't claim that the script running under
CGI is identical to my non-CGI version, but the subroutine that does the
work under CGI::Application is essentially identical to it's non-CGI
counterpart. I'm left to conclude that the only real difference is that
one runs as bmoore, and the other as apache. I tried to su to apache so
I could run the non-CGI version as apache, but even as root and with
httpd stopped I get 'This account is currently not available'. I can't
imagine why blastall would care who's running the script as long as the
database, matrix files, and input is available. I'm running out of
ideas on debugging this one. Any thoughts?
Department of Human Genetics
University of Utah
Salt Lake City, UT 84112
More information about the Bioperl-l