我有一些代码,我正在合并到一个蛇形管道。我还希望能够独立于Snakemake运行代码,所以我想编写灵活的代码。我有一个可以被Snakemake读取的配置文件,还有一个备用的配置文件,如果代码在Snakemake之外运行,它将被解析。在
我在我的蛇形文件中的一条规则中有以下结构:
rule some_rule:
input:
input_file
output:
output_file
script:
runfile.py
然后在runfile.py
中,我测试脚本是否在Snakemake中运行,如下所示:
这很好,只是我在一个虚拟环境中工作,我想要使用的Python版本与Snakemake默认使用的版本不同。 因此,我不得不对规则进行如下调整:
rule some_rule:
input:
input_file
output:
output_file
shell:
/path/to/python runfile.py
但是现在因为我使用的是shell
而不是script
,我无法访问python文件中的global
参数“snakemake”。在
所以我的问题是
(i)我可以指定一个Python版本并且仍然使用script
?在
或者
(ii)我可以使用shell
但仍然访问脚本中的“snakemake”对象,该对象将允许我测试脚本是否正在snakemake管道中运行?在
您可以使用Conda—它既可以提供对执行上下文的细粒度控制,又可以提高管道的可重复性。见Documentation。在
首先,您需要一个环境定义YAML文件。例如
envs/py37.yml
在该文件中添加您需要的任何其他要求。那你的规则是
蛇形文件
^{pr2}$最后,您现在需要在启动此作业时使用附加标志
use-conda
,例如外壳
相关问题 更多 >
编程相关推荐