Snakemake 如何为每个任务设置 qsub ppn?
Snakemake how to set qsub ppn per task?
我像这样在我们的 qsub 集群上启动 Snakemake:
snakemake -s Snakefile.snakefile --cluster-config cluster.json --cluster "qsub -l nodes={cluster.nodes}:ppn={cluster.ppn}" --jobs 70
cluster.json 看起来像这样:
{
"__default__" :
{
"cluster" : "qsub",
"jobs" : 70 ,
"nodes" : 1,
"ppn" : 8
},
}
对于某些规则,我将线程数设置为 8,但对于某些规则,我将其设置为 1(例如某些 RSeQC 模块,例如此规则:
rule bam_stat:
input:
rseqc_input_bam
output:
os.path.join(rseqc_dir, '{sample}.bam_stat.txt')
threads: 1
shell:
'''
#!/bin/bash
# Enter the Python 2 conda environment where rseqc is installed
source activate rseqc
bam_stat.py -i {input} > {output}
'''
现在,如果我查看我的集群排队系统,它会告诉我该作业仍保留 8 个核心,就像使用 --nodes=1,ppn=8
提交一样
如何设置每个任务的 ppn?
最崇高的问候,
弗里克
此处,rule_X
将使用 12 ppn,这与使用默认设置 8 的其他规则不同。
{
"__default__" :
{
"cluster" : "qsub",
"jobs" : 70 ,
"nodes" : 1,
"ppn" : 8
},
"rule_X" :
{
"ppn" : 12
},
}
我像这样在我们的 qsub 集群上启动 Snakemake:
snakemake -s Snakefile.snakefile --cluster-config cluster.json --cluster "qsub -l nodes={cluster.nodes}:ppn={cluster.ppn}" --jobs 70
cluster.json 看起来像这样:
{
"__default__" :
{
"cluster" : "qsub",
"jobs" : 70 ,
"nodes" : 1,
"ppn" : 8
},
}
对于某些规则,我将线程数设置为 8,但对于某些规则,我将其设置为 1(例如某些 RSeQC 模块,例如此规则:
rule bam_stat:
input:
rseqc_input_bam
output:
os.path.join(rseqc_dir, '{sample}.bam_stat.txt')
threads: 1
shell:
'''
#!/bin/bash
# Enter the Python 2 conda environment where rseqc is installed
source activate rseqc
bam_stat.py -i {input} > {output}
'''
现在,如果我查看我的集群排队系统,它会告诉我该作业仍保留 8 个核心,就像使用 --nodes=1,ppn=8
提交一样如何设置每个任务的 ppn?
最崇高的问候,
弗里克
此处,rule_X
将使用 12 ppn,这与使用默认设置 8 的其他规则不同。
{
"__default__" :
{
"cluster" : "qsub",
"jobs" : 70 ,
"nodes" : 1,
"ppn" : 8
},
"rule_X" :
{
"ppn" : 12
},
}