私は、スクリプトのためにpythonでsubprocess.call演算子を使用するのが面倒な問題に直面しています。 パイプラインプログラム(bowtie)を複数回実行してから、さまざまな方法で出力を使用する必要があります。そのために、私はsubprocess.callを使用しています。Pythonでsubprocess.callを使用しているマルチファイルstdin(bowtie用)
問題は、bowtieが入力ファイル2つとインデックスとテキストファイルを取り込み、それらの両方をstdinパラメータに割り当てることができないという問題です。
私はargsにインデックスへのパスも含めようとしましたが、もちろんbowtieはそれをインデックスとして認識せず、エラーを出します。 Sincerこのインデックスは常に同じですが、この問題を回避する方法はありますか?ここで
は私は(非常に生)に取り組んでいるコードの一部です:
inpath = "/media/2tbhd/workdata/nanocage_noadapt/zf/fasta/zf_ad_c_r2.fasta"
ind_path = "indexes/zf_gen_topl"
for elem in plist:
cmd = subprocess.call(["bowtie","-f","-v 3", "--best" "--suppress 6,7" "-p 6"], shell = True, stdin = inpath, ind_path)
コマンドラインから 'bowtie'をどのように起動しますか?私が知っているプログラミング言語でstdinに2つのファイルを割り当てることはできません... – mgilson
"もちろんbowtieはそれをインデックスとして認識せず、私にエラーを与えません" - それは特に何のエラーメッセージですか? –
あなたが望む方法でbowtieを呼び出すプレーンシェルコマンドを書き、それが動作するかどうか確認してください。それがうまくいけば、ここに貼り付けると、それをsubprocess.call関数に変換する方法を助けてくれます。それがうまくいかない場合、私はあなたがボウタイで間違っていたことを考え出すことができます。 – weronika