错误:"属性" m_numa_nodes"不是整数值。"在运行qsub snakemake时

时间:2017-04-12 15:00:38

标签: snakemake

我正在尝试运行一个带有群集提交的snakemake进行RNAseq分析。这是我的剧本:



#path to gff 
GFF = "RNASeq/data/ref_GRCh38.p2_top_level.gff3"

#sample names and classes
CTHP = 'CTHP1 CTHP2'.split()
CYP = 'CYP1 CYP2'.split()

samples = CTHP + CYP

rule all:
	input:
		'CTHP1/mapping_results/out_summary.gtf',
		'CTHP2/mapping_results/out_summary.gtf',
		'CYP2/mapping_results/out_summary.gtf',
		'CYP1/mapping_results/out_summary.gtf',
		
rule order_sam:
	input:
		'{samples}/mapping_results/mapped.sam'
	output:
		'{samples}/mapping_results/ordered.mapped.bam'
	threads: 12
	params: ppn="nodes=1:ppn=12"
	shell:
		'samtools view -Su {input} | samtools sort > {output}'

rule count_sam:
	input:
		bam='{samples}/mapping_results/ordered.mapped.bam'
	output:
		summary='{samples}/mapping_results/out_summary.gtf',
		abun='{samples}/mapping_results/abun_results.tab',
		cover='{samples}/mapping_results/coveraged.gtf'
	threads: 12
	params: ppn="nodes=1:ppn=12"
	shell:
		'stringtie -o {output.summary} -G {GFF} -C {output.cover} '
		'-A {output.abun} -p {threads} -l {samples} {input.bam}'




```

我想将每个rule提交到群集。所以,在工作目录的终端中,我这样做:

snakemake --cluster "qsub -V -l {params.ppn}" -j 6

但是,作业未提交,我收到以下错误: Unable to run job: attribute "m_numa_nodes" is not a integer value. Exiting. Error submitting jobscript (exit code 1): 我还尝试在运行snake文件时直接设置节点变量,如下所示:

snakemake --cluster "qsub -V -l nodes=1:ppn=16" -j 6 正如预期的那样,它给了我同样的错误。此时我不确定它是本地群集设置还是我在snake文件中没有做的事情。任何帮助都会很棒。

由于

2 个答案:

答案 0 :(得分:2)

该错误与Snakemake无关。我不是SGE / Univa专家,所以我无法真正帮助你,但m_numa_nodes是引擎的参数。 Snakemake没有以任何方式设置它,因此它必须是您的本地配置或您提供给qsub的参数之一。

答案 1 :(得分:0)

编辑:2017/04/12 - 抓住了Google网上论坛帖子中的一个错误。从“所有”规则中的最后一行输入中删除逗号。

**编辑:2017/04/13 - 被告知逗号不是问题**

Snakemake将它发送到集群只需要额外的参数。为了确定它是集群问题还是Snakemake问题,我建议运行一个dryrun,通过

snakemake -n

Dryrun不会提交任何工作,但会返回工作列表。如果是Snakemake问题或提交问题,这是一个强有力的指标。我总是在开发过程中执行dryruns,以确保我的Snakemake代码在我开始尝试将其提交到集群之前工作,因为集群提交可能是一堆完全不同的问题。

根据您的提交问题,我使用Snakemake中的“--drmaa”标志来处理我对群集的提交。我意识到这不是你要求的,但我真的很喜欢它的功能,我想我只是建议它作为你当前方法的强大替代品。 https://pypi.python.org/pypi/drmaahttps://anaconda.org/anaconda/drmaa

snakemake --jobs 10 --cluster-config input/config.json --drmaa "{cluster.clusterSpec}"

在config.json中,我的规则主要是提供这个参数集:

{
    "__default__": {
        "clusterSpec": "-V -S /bin/bash -o log/varScan -e log/varScan -l h_vmem=10G -pe ncpus 1"
    }
}

SGE群集参数 =“ - V -S / bin / bash -l h_vmem = 10G -pe ncpus 1”

DRMAA参数 =“ - o log / varScan -e log / varScan”

P.S。我认为您还必须发布您正在使用的操作系统(例如CentOS5)和您的群集类型(例如SGE)。