ted*_*oal 1 wildcard-expansion parameter-expansion snakemake
有没有办法在.yaml文件中定义snakemake配置字符串,以便它可以包含{wildcard}和{param}值,并且当在shell命令中使用该字符串时,{<name>}值将替换为"<name>"的实际值?
例如,假设您希望配置字符串定义要作为参数传递给程序的字符串格式:
RG:"ID:{ID} REP:{REP}"
其中上面是.yaml文件,ID和REP是通配符,shell命令会将展开的字符串作为参数传递给程序.
让我试着简单回答一下这个问题:
在Snakemake中,您可以为params提供函数,这些函数将通配符作为参数.在这些函数中,您可以执行任何python代码,包括格式化语句来格式化您的配置值,例如
configfile: "config.yaml"
rule:
output:
"plots/myplot.{mywildcard}.pdf"
params:
myparam=lambda wildcards: config["mykey"].format(**wildcards)
shell:
...
Run Code Online (Sandbox Code Playgroud)
如您所见,您可以使用python unpacking运算符和str.format方法来替换配置文件中的值.这假定config["mykey"]产生一个包含与上面相同的通配符的字符串,例如"foo{mywildcard}bar".
| 归档时间: |
|
| 查看次数: |
1323 次 |
| 最近记录: |