0

学校のプロジェクトの 1 つに 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 ファイルを削除し、上記のコマンドを使用してコマンド ラインで (つまり、python CGI ではなく) BLAT を実行すると、プログラムの実行に問題はなく、正しい結果で新しい 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

私は何を間違えましたか?

4

0 に答える 0