我正在为我的一个学校项目使用独立版本的 BLAT。独立版本通过我们的类服务器托管的 Web 服务器中的 python CGI 文件运行。当客户端 HTML 表单向服务器端的 python CGI 发送查询序列时,CGI 文件将查询序列写入工作目录中的文件。然后 CGI 使用 os.system() 和以下命令运行 BLAT 独立版本:
blat_standalone/blat/blat -stepSize=5 -repMatch=2253 -minScore=20 -minIdentity=0 GRCh38_chrom1.fna query.fa output.psl
blat_standalone 版本保存在工作目录中。我还确保工作目录(保存 python CGI 的目录)是世界可访问的(即目录的权限是 777)
但是,在运行 Web 应用程序后,我在目录中得到了一个“output.psl”文件,该文件是空的,并且还被写保护。当我删除 output.psl 文件并使用上述命令在命令行上运行 BLAT(即不通过 python CGI)时,我运行程序没有问题,并创建了一个新的 output.psl 文件,结果正确。当我将此 output.psl 文件(通过命令行创建并具有正确结果的文件)的权限更改为 774 并重新运行 Web 应用程序时,output.psl 文件被覆盖并再次变为空。
我还记录了该命令在python CGI中运行时的退出代码,为65280。
通过python cgi创建的output.psl文件的权限如下:
-rw-r--r-- 1 daemon apache 0 May 10 01:05 output.psl
我做错了什么?