私はこの行を持っています
samtools view -h file | awk '$3=="chr$a" || /^@/' | samtools view -S - -b -o output
-Sと-bの間のダッシュは、それがSTDINからのものであることをプログラムに示すことになっています。コマンドラインのperlスクリプトから実行できますが、シェルスクリプトに移動しようとすると、データを出力せずにファイルが作成されます。任意のアイデアをいただければ幸いです。
まだ読んでいない場合は、samtoolsFAQをご覧ください。これには、パイプラインでやりたいことと同じようなことをするための例があります。
samtoolsを使用してからしばらく経ちましたが、次のようにコマンドを記述しました。
samtools view -h file | awk '$3=="chr$a" || /^@/' | samtools view -S -b - > output.bam
また、コマンドをシェルスクリプトに移動したとのことですが。シェルスクリプトは他に何かをしていますか?それでもうまくいかない場合は、投稿して確認します。
シェルスクリプトでは、一重引用符内の$aは展開されません。
for a in {1..22} do
samtools view -h AD3.sorted.bam | awk '$3=="chr$a" || /^@/' | samtools view -S - -b -o chr$a.bam
done