2017-08-10 6 views
0

不要な空のファイルhelpA、helpB、helpCを作成せずに、次にhelpAllルールを実行して削除する方法はありますか?タッチファイルなしでSnakemakeルールをチェーンする方法はありますか?

rule helpA: 
    output: touch("helpA") 
    shell: "echo 'help on subject <A>'" 

rule helpB: 
    output: touch("helpB") 
    shell: "echo 'help on subject <B>'" 

rule helpC: 
    output: touch("helpC") 
    shell: "echo 'help on subject <C>'" 

rule helpAll: 
    input: "helpA","helpB","helpC" 
    shell: "rm {input} 

素敵なソリューションは、次の種類のルールの依存関係になりますが、これは有効なsnakecodeではありません。

rule helpAll: 
    input: rules.helpA,rules.helpB,rules.helpC 

か:

rule helpAll: 
    depends_on_rule: helpA,helpB,helpC 

答えて

0

私はそのsnakemakeを考えていませんディスクにファイルを作成せずに正常に動作します。

ただし、テンポラリーを使用すると、ファイルが自動的に削除されます。ドキュメントから、より詳細には:

Snakemakeは、彼らが は一度かかるジョブが実行された削除されたように、一時的として出力ファイルをマークすることができます。

reference

+1

あなたも、それらを組み合わせることができます 'TEMP(タッチ( "ファイル"))'。 –

+0

解決策のように聞こえます!ありがとう。 – tedtoal

関連する問題