使用subprocess.run运行Snakemake

问题描述 投票:1回答:1

我正在尝试使用集群配置在python脚本中运行sankemake,其中myoutput/output.txt是我的输出结果之一:

cluster = """ "qsub -A {cluster.account}  -l walltime={cluster.time} -q {cluster.queue} -l nodes=1:ppn={cluster.nCPUs} -l mem={cluster.memory}" """  

subprocess.run(['snakemake',  '-p', "myoutput/output.txt", '-j 200', '--cluster-config', cluster_config, '--cluster', cluster])

我有此错误:

/bin/sh: qsub -A proj_A  -l walltime=72:00:00 -q analysis -l nodes=1:ppn=20,mem=30G: command not found

[我看到snakemake提交到了/bin/sh,其中qsub实际上在/usr/bin/qsub中。

任何想法如何解决它还是有更好的实现方法?

谢谢

python subprocess snakemake
1个回答
1
投票

因此,我认为我需要根据文档建议将双引号的群集传递给--cluster标志,所以我使用了。

cluster = """ "qsub -A {cluster.account}  -l walltime={cluster.time} -q {cluster.queue} -l nodes=1:ppn={cluster.nCPUs} -l mem={cluster.memory}" """  

但实际上,当我以这种方式使用时,会导致错误:

cluster = "qsub -A {cluster.account}  -l walltime={cluster.time} -q {cluster.queue} -l nodes=1:ppn={cluster.nCPUs} -l mem={cluster.memory}" 

它应该运行。

© www.soinside.com 2019 - 2024. All rights reserved.