snakemake在SGE上使用多个通配符提交作业的问题

卡米尔·加隆(Kamil S Jaron)

之前,我在LSF集群上使用了snakemake,一切正常。但是,最近我迁移到SGE群集,当我尝试使用多个通配符运行作业时,遇到一个非常奇怪的错误。

当我尝试根据此规则提交工作时

rule download_reads :
    threads : 1
    output : "data/{sp}/raw_reads/{accesion}_1.fastq.gz"
    shell : "scripts/download_reads.sh {wildcards.sp} {wildcards.accesion} data/{wildcards.sp}/raw_reads/{wildcards.accesion}"

我收到以下错误(snakemake_clust.sh详情如下)

./snakemake_clust.sh data/Ecol1/raw_reads/SRA123456_1.fastq.gz                                          
Building DAG of jobs...
Using shell: /bin/bash
Provided cluster nodes: 10
Job counts:
        count   jobs
        1       download_reads
        1

[Thu Jul 30 12:08:57 2020]
rule download_reads:
    output: data/Ecol1/raw_reads/SRA123456_1.fastq.gz
    jobid: 0
    wildcards: sp=Ecol1, accesion=SRA123456

scripts/download_reads.sh Ecol1 SRA123456 data/Ecol1/raw_reads/SRA123456
Unable to run job: ERROR! two files are specified for the same host
ERROR! two files are specified for the same host
Exiting.
Error submitting jobscript (exit code 1):

Shutting down, this might take some time.

当我用sp常量替换通配符时,它可以按预期工作:

rule download_reads :
        threads : 1
        output : "data/Ecol1/raw_reads/{accesion}_1.fastq.gz"
        shell : "scripts/download_reads.sh Ecol1 {wildcards.accesion} data/Ecol1/raw_reads/{wildcards.accesion}"

即我明白

Submitted job 1 with external jobid 'Your job 50731 ("download_reads") has been submitted'.

我不知道为什么会有这个问题,我确定我之前在基于LSF的群集上使用了完全相同的规则,没有任何问题。

一些细节

snakemake提交脚本如下所示

#!/usr/bin/env bash                                                                                                                                                                
                                                                                                                                                                                   
mkdir -p logs                                                                                                                                                                      
                                                                                                                                                                                   
snakemake $@ -p --jobs 10 --latency-wait 120 --cluster "qsub \                                                                                                                     
    -N {rule} \                                                                                                                                                                    
    -pe smp64 \                                                                                                                                                                    
    {threads} \                                                                                                                                                                    
    -cwd \                                                                                                                                                                         
    -b y \                                                                                                                                                                         
    -o \"logs/{rule}.{wildcards}.out\" \                                                                                                                                           
    -e \"logs/{rule}.{wildcards}.err\""   

-b y使命令按原样执行,-cwd将计算节点上的工作目录更改为提交作业的工作目录。我希望其他标志/规格清楚。

另外,我知道--drmaa标志,但是我认为群集配置不正确。--cluster到现在为止是一个更强大的解决方案。

-编辑1-

当我在本地执行完全相同的snakefile(在fronend上,不带--cluster标志)时,脚本将按预期执行。这似乎是snakemake和调度程序交互的问题。

达里奥伯
-o \"logs/{rule}.{wildcards}.out\" \                                                                                                                                           
-e \"logs/{rule}.{wildcards}.err\""   

这是一个随机的猜测...在将多个通配符替换成之前,它们是由空格连接的logs/{rule}.{wildcards}.err因此,尽管您使用双引号,但SGE会将结果字符串视为两个文件,并引发错误。如果改为使用单引号怎么办?喜欢:

-o 'logs/{rule}.{wildcards}.out' \                                                                                                                                           
-e 'logs/{rule}.{wildcards}.err'

或者,您可以在规则中连接通配符,然后在命令行上使用结果。例如:

rule one:
    params:
        wc= lambda wc: '_'.join(wc)
    output: ...

然后使用:

-o 'logs/{rule}.{params.wc}.out' \                                                                                                                                           
-e 'logs/{rule}.{params.wc}.err'

(第二个解决方案,如果可行,虽然有点烂)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SGE / UGE / etc ..向多个内核提交OpenMP作业的标准化方法?

来自分类Dev

向PBS /扭矩提交SGE作业

来自分类Dev

SGE提交的作业状态未从“ qw”更改

来自分类Dev

向PBS /扭矩提交SGE作业

来自分类Dev

Rocks群集(SGE调度程序)上的MPI作业未在多个节点上运行

来自分类Dev

snakemake作业提交的顺序方式

来自分类Dev

在SGE上未正确设置作业环境

来自分类Dev

如何提交调用我的python脚本的SGE作业

来自分类Dev

具有多个输入的SGE阵列作业

来自分类Dev

如何使用Torque在多个队列上提交作业?

来自分类Dev

使用python提交作业

来自分类Dev

在Windows上使用Hadoop 2.6.0提交作业时出错

来自分类Dev

在Windows上使用Hadoop 2.6.0提交作业时出错

来自分类Dev

在集群上提交作业的代码

来自分类Dev

Linux上的R会话-提交多个指向同一会话的批处理作业

来自分类Dev

如何使用qsub Univa 8.1.7在多个节点上安排作业?

来自分类Dev

在YARN问题上提交Flink作业

来自分类Dev

使用keytab提交oozie作业

来自分类Dev

使用--conf提交作业无效

来自分类Dev

循环执行命令以提交多个作业

来自分类Dev

确保StarCluster / SunGridEngine(SGE)上每个节点一项作业

来自分类Dev

如何使用不同的配置文件运行多个管道运行-.snakemake目录上的锁定问题

来自分类Dev

如何使用Elastic MapReduce API一步将多个作业提交给Hadoop?

来自分类Dev

如何使用Elastic MapReduce API一步将多个作业提交给Hadoop?

来自分类Dev

使用 qsub 提交可执行文件 + 输入文件以创建多个作业

来自分类Dev

snakemake在python函数中使用通配符输入/输出

来自分类Dev

管理在多个div上使用IntersectionObserver的问题

来自分类Dev

lsf群集上的mpi作业提交

来自分类Dev

使用多个通配符进行过滤

Related 相关文章

  1. 1

    SGE / UGE / etc ..向多个内核提交OpenMP作业的标准化方法?

  2. 2

    向PBS /扭矩提交SGE作业

  3. 3

    SGE提交的作业状态未从“ qw”更改

  4. 4

    向PBS /扭矩提交SGE作业

  5. 5

    Rocks群集(SGE调度程序)上的MPI作业未在多个节点上运行

  6. 6

    snakemake作业提交的顺序方式

  7. 7

    在SGE上未正确设置作业环境

  8. 8

    如何提交调用我的python脚本的SGE作业

  9. 9

    具有多个输入的SGE阵列作业

  10. 10

    如何使用Torque在多个队列上提交作业?

  11. 11

    使用python提交作业

  12. 12

    在Windows上使用Hadoop 2.6.0提交作业时出错

  13. 13

    在Windows上使用Hadoop 2.6.0提交作业时出错

  14. 14

    在集群上提交作业的代码

  15. 15

    Linux上的R会话-提交多个指向同一会话的批处理作业

  16. 16

    如何使用qsub Univa 8.1.7在多个节点上安排作业?

  17. 17

    在YARN问题上提交Flink作业

  18. 18

    使用keytab提交oozie作业

  19. 19

    使用--conf提交作业无效

  20. 20

    循环执行命令以提交多个作业

  21. 21

    确保StarCluster / SunGridEngine(SGE)上每个节点一项作业

  22. 22

    如何使用不同的配置文件运行多个管道运行-.snakemake目录上的锁定问题

  23. 23

    如何使用Elastic MapReduce API一步将多个作业提交给Hadoop?

  24. 24

    如何使用Elastic MapReduce API一步将多个作业提交给Hadoop?

  25. 25

    使用 qsub 提交可执行文件 + 输入文件以创建多个作业

  26. 26

    snakemake在python函数中使用通配符输入/输出

  27. 27

    管理在多个div上使用IntersectionObserver的问题

  28. 28

    lsf群集上的mpi作业提交

  29. 29

    使用多个通配符进行过滤

热门标签

归档