当我在google生命科学执行者上运行snakemake时,我运行的内容如下:
snakemake --google-lifesciences --default-remote-prefix my_bucket_name --preemption-default 10 --use-conda现在,my_bucket_name将被添加到所有输入和输出路径中。
但出于某些原因,我需要在Snakefile代码中重新创建完整的路径,因此我希望能够访问代码中传递给--default-remote-prefix的任何内容。
有办法这样做吗?
发布于 2021-05-11 08:31:19
我希望能够访问代码中传递给默认远程前缀的任何内容。
您可以使用工作流程对象如下:
print(workflow.default_remote_prefix) # Will print my_bucket_name in your example
rule all:
input: ...我不能100%确定workflow对象是否应该被用户使用,或者它是否是私有的,如果是的话,它可能会在没有警告的情况下被更改。但是我认为没关系,我一直使用workflow.basedir来获取蛇文件所在的目录。
或者,您可以解析sys.argv列表,但我认为这更麻烦。
另一种选择:
bucket_name=foo
snakemake --default-remote-prefix $bucket_name --config bucket_name=$bucket_name ...然后在代码中使用config["bucket_name"]获取值foo。但我还是更喜欢workflow解决方案。
https://stackoverflow.com/questions/67476025
复制相似问题