概要
snakemakeのワークフローの書き方でちょっとハマったのでメモ。
バイオインフォマティクスで使われている塩基配列データの保存形式に、FASTA形式というものがあります。これを保存するときは拡張子に.fasta
を使うことが多いのですが、.fa
とする場合もあります。
Pythonベースのパイプライン作成ツールsnakemakeのワークフローを書くときに、このような表記ゆれに両方対応させる書き方を以下にメモしておきます。
Snakefileの書き方
bwa index
を実行するサンプルです。
以下のように書くと、正規表現でどちらの表記の入力ファイルでも対応できます。
rule sort:
input:
"{sample}.{ext,(fasta|fa)}"
output:
"{sample}.{ext}.bwt"
shell:
"bwa index {input}"
実行
snakemake hoge.fasta.bwt
or
snakemake hoge.fa.bwt
追記
こう書いたけど、結局configで渡しちゃったほうが楽な気がする。。