次の例では、出力ファイルは入力ファイルと同じ場所に作成されます。出力セクションにワイルドカード値のbasenameを取得する方法があるので、入力ファイルのベース名を使用して出力ファイルに名前を付けることはできますが、別の場所に書き込むことはできますか?snakemake出力ルールでワイルドカード値のベース名を取得するにはどうすればよいですか?
答えて
SnakeMakeでこれを行うには、Pythonのlambda
機能を使用する方法があります。最初に、あなたは、キーと、このような値としてパスを持つファイルとしてファイルの名前を持つファイルの辞書を
を作成する必要があります。
files = {'filesA' : 'path/to/fileA.ext', 'filesB' : 'path/to/fileB.ext'}
をこの辞書はsnakefileまたはにすることができ構成ファイル。ここでは、2つのルールを持っているコード、all
と呼ばれる最初のもので
rule all :
input :
#If you want to create in a different directory use this,
#but it has to be like output from rule one.
#expand('{directory}{filename}{extension}',
#directory = 'path/to/newdir',
#filename = config['dictname'].keys(),
#extension = '.out')
#Otherwise
expand('{filename}{extension}',
filename = config['dictname'].keys(),
extension = '.out')
rule one:
input: lambda wildcards: config['dictname'][wildcards.input]
output: "{input}" + ".out"
message: "Executing one using {input}"
shell: "touch {input}.out"
:私は、設定ファイルにそれを置くと、このconfig['dict_name']
ようにそれを呼び出すことが示唆だから今のはlambda
機能を使用してルールを書いてみましょう実行されます。したがって、snakemake
を起動すると、expand
機能によって作成されたリストに対応するファイルのリストを取得したいことがあります。
Snakemakeはルールがそのファイルのリストを生成するかどうかを調べます。そうでない場合、ディレクトリ内でそれらを検索します。あなたはexpand
ディレクトリ、ファイル名、接尾辞、接頭辞、拡張子であなたが望むすべてのものを指定することができます見ることができるように、...この例では
は、Snakemakeはキーの辞書と拡張.out
のファイル名を持ついくつかのファイルを持って望んでいます。ルールone
はそれらを生成するための完全なルールです。
ルールone
は、次のように動作します。辞書の各キーについて、ルールが実行されます。入力セクションのラムダ関数がこの役割を果たします。 レコードの場合、ワイルドカードは任意の名前で呼び出すことができます。input
は単なる例です。あなたは変数で、このようなラムダ関数の内容を置くことができ、よりエレガント的には
:
_input_One = lambda wildcards: config['dictname'][wildcards.input]
次に、このようなルール1つの入力、書き込み:詳細については
input: _input_One
をご確認ください。 https://snakemake.readthedocs.io/en/stable/
ヒューゴ
- 1. タグ名(例:divなど)の値をパラメータ名で取得するにはどうすればよいですか?
- 2. html日付入力値から月名を取得するにはどうすればよいですか?
- 3. 配列から値を取得するにはどうすればよいですか?私は出力 - 次
- 4. エンティティフレームワークの出力値ストアの値を取得するにはどうすればいいですか?
- 5. ワイルドカード制約を入力するSnakemake
- 6. 値を入力した後にセルの値を取得するにはどうすればよいですか?
- 7. IntervalIndexで値を取得するにはどうすればよいですか?
- 8. jsで使用するテキストボックスの値/入力を取得するにはどうすればよいですか?
- 9. 私のモバイルからconsole.log出力をモバイルデバイスで取得するにはどうすればよいですか?
- 10. データセット(キー値ペア)から名前と値を取得するにはどうすればよいですか?
- 11. DynamicControlの値を取得するにはどうすればよいですか?
- 12. snakemakeスクリプト名はどのようにアクセスされますか?
- 13. Androidでasynctaskを通じてHashmapの出力を取得するにはどうすればよいですか?
- 14. デベロッパーツールでGoogle Chromeのネットワークパネルの出力を取得するにはどうすればよいですか? VB
- 15. 特定の名前の列挙型で値を取得するにはどうすればよいですか?
- 16. 複数の入力フィールドで複数の値を取得するにはどうすればよいですか?
- 17. EclipseコンソールでMavenから詳細な出力を取得するにはどうすればよいですか?
- 18. Perl CGIプログラムでprintfで色付き出力を取得するにはどうすればよいですか?
- 19. 出力にランダムに生成する文字を取得するにはどうすればよいですか?
- 20. Pythonでマルチプロセッシングの出力を取得するにはどうすればよいですか?
- 21. Kerasでトレーニング精度の出力を取得するにはどうすればよいですか?
- 22. WindowsでMavenとSBTのカラー出力を取得するにはどうすればよいですか?
- 23. rubyでwgetの出力を取得するにはどうすればよいですか?
- 24. ユーザーから入力した値で予測を取得するにはどうすればよいですか?
- 25. botoでEC2インスタンスタグ "名前"の値を取得するにはどうすればよいですか?
- 26. 入力値と出力値でマップを表示するにはどうすればよいですか?
- 27. このJSONオブジェクトからアーティスト名の値を取得するにはどうすればよいですか?
- 28. YiiでactiveTextFieldの入力値を取得するにはどうすればよいですか?
- 29. FTLテンプレートで数値の力を取得するにはどうすればよいですか?
- 30. アレイが機能するストアドプロシージャの出力パラメータを取得するにはどうすればよいですか?
私は試しました辞書の方法とそれは完全に動作します。 – Veera
ありがとうございます。ファイル名の数が2だけでなく200になる場合、どうすればいいですか?それで、それぞれを一つ一つ書くことは不可能ですか? – bapors