Snakemake, как установить qsub ppn на задачу? - PullRequest
0 голосов
/ 30 ноября 2018

Я запускаю Snakemake на нашем кластере qsub следующим образом:

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 для отдельной задачи?

С наилучшими пожеланиями,

Freek

1 Ответ

0 голосов
/ 01 декабря 2018

Здесь rule_X будет использовать 12 ppn в отличие от других правил, в которых по умолчанию установлено значение 8.

{
    "__default__" :
    {
        "cluster"   : "qsub",
        "jobs"      : 70 ,
        "nodes"     : 1,
        "ppn"       : 8
    },

    "rule_X" :
    {
        "ppn"       : 12
    },

}
...