如何解决访问 Snakefile 中的 --default-remote-prefix
当我在 google 生命科学执行器上运行 snakemake 时,我会运行类似的东西:
snakemake --google-lifesciences --default-remote-prefix my_bucket_name --preemption-default 10 --use-conda
现在,my_bucket_name
将被添加到所有输入和输出路径中。
但是由于原因我需要在 Snakefile 代码中重新创建完整路径,因此我希望能够访问代码中传递给 --default-remote-prefix
的任何内容
有没有办法做到这一点?
解决方法
我希望能够访问代码中传递给 --default-remote-prefix 的任何内容
您可以像这样使用 workflow 对象:
print(workflow.default_remote_prefix) # Will print my_bucket_name in your example
rule all:
input: ...
我不能 100% 确定 workflow
对象是否应该由用户使用,或者它是否对 snakemake 私有,如果是这样,将来可能会在没有警告的情况下进行更改。不过我觉得还可以,我一直用workflow.basedir
来获取Snakefile所在的目录。
或者,您可以解析 sys.argv
列表,但我认为这更麻烦。
另一种选择:
bucket_name=foo
snakemake --default-remote-prefix $bucket_name --config bucket_name=$bucket_name ...
然后在代码中使用 config["bucket_name"]
来获取值 foo
。但我还是更喜欢 workflow
解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。