Cluster computing 奇点蛇

Cluster computing 奇点蛇,cluster-computing,snakemake,Cluster Computing,Snakemake,我试图在我的蛇形游戏规则中使用奇点。在本地运行Snakemake管道时,这与预期一样有效。然而,当我尝试使用sbatch提交到我的计算集群时,我遇到了错误。我想知道您是否对如何将本地管道转换为可以在集群上工作的管道有任何建议。提前谢谢你 导致错误的规则使用Singularity调用具有DeepVariant的变体: # Call variants with DeepVariant. rule deepvariant_call: input: ref_path='/labs/jand

我试图在我的蛇形游戏规则中使用奇点。在本地运行Snakemake管道时,这与预期一样有效。然而,当我尝试使用sbatch提交到我的计算集群时,我遇到了错误。我想知道您是否对如何将本地管道转换为可以在集群上工作的管道有任何建议。提前谢谢你

导致错误的规则使用Singularity调用具有DeepVariant的变体:


# Call variants with DeepVariant.
rule deepvariant_call:
  input:
    ref_path='/labs/jandr/walter/varcal/data/refs/{ref}.fa',
    bam='results/{samp}/bams/{samp}_{mapper}_{ref}.rmdup.bam'
  params:
    nshards='1',
    version='0.7.0'
  threads: 8
  output:
    vcf='results/{samp}/vars/{samp}_{mapper}_{ref}_deep.g.vcf.gz'
  shell:
    'singularity exec --bind /srv/gsfs0 --bind /labs/jandr/walter/ /home/kwalter/.singularity/shub/deepvariant-docker-deepvariant:0.7.0.simg \
    /labs/jandr/walter/tb/test/scripts/call_deepvariant.sh {input.ref_path} {input.bam} {params.nshards} {params.version} {output.vcf} '
#
# Error in rule deepvariant_call:
#     jobid: 17
#     output: results/T1-XX-2017-1068_S51/vars/T1-XX-2017-1068_S51_bowtie2_H37Rv_deep.g.vcf.gz
#     shell:
#         singularity exec --bind /srv/gsfs0 --bind /labs/jandr/walter/ /home/kwalter/.singularity/shub/deepvariant-docker-deepvariant:0.7.0.simg;     /labs/jandr/walter/tb/test/scripts/call_deepvariant.sh /labs/jandr/walter/varcal/data/refs/H37Rv.fa results/T1-XX-2017-1068_S51/bams/T1-XX-2017-1068_S51_bowtie2_H37Rv.rmdup.bam 1 0.7.0 results/T1-XX-2017-1068_S51/vars/T1-XX-2017-1068_S51_bowtie2_H37Rv_deep.g.vcf.gz 
#         (one of the commands exited with non-zero exit code; note that snakemake uses bash strict mode!)

我将作业提交到集群,包括以下内容:

snakemake -j 128 --cluster-config cluster.json --cluster "sbatch -A {cluster.account} --mem={cluster.mem} -t {cluster.time} -c {threads}"


从错误消息的解析命令中可以看出,分号将两行
shell:
分隔,而不是空格,此错误是由于
shell:
中的字符串格式造成的

您可以使用三重引号格式:

  shell:
    '''
    singularity exec --bind /srv/gsfs0 --bind /labs/jandr/walter/ /home/kwalter/.singularity/shub/deepvariant-docker-deepvariant:0.7.0.simg \
    /labs/jandr/walter/tb/test/scripts/call_deepvariant.sh {input.ref_path} {input.bam} {params.nshards} {params.version} {output.vcf} 
    '''
或者,单引号内的每一行:

  shell:
    'singularity exec --bind /srv/gsfs0 --bind /labs/jandr/walter/ /home/kwalter/.singularity/shub/deepvariant-docker-deepvariant:0.7.0.simg \'
    '/labs/jandr/walter/tb/test/scripts/call_deepvariant.sh {input.ref_path} {input.bam} {params.nshards} {params.version} {output.vcf}' 

太好了,谢谢!这很有效。我真的很感激。