问题描述
我正在创建一个Snakemake工作流程,它将包装一些tools in the nvidia clara parabricks pipelines。由于这些工具在GPU上运行,因此通常一次只能处理一个样本,否则GPU会耗尽内存。但是,Snakemake一次将所有样本推送到Parabricks-似乎没有意识到GPU内存限制。一种解决方案是告诉Snakemake一次处理一个样本,因此出现问题:
如何让Snakemake一次处理一个样品?
由于parabricks是一种许可产品(因此不一定可复制),因此我将展示我尝试运行的parabricks规则的示例(pbrun fastq2bam),以及使用开源软件进行复制的最小示例(fastqc),我们可以在
上进行操作我的高空跳伞规则-pbrun fastq2bam
Snakefile:
# Define samples from fastq dir using wildcards
SAMPLES,= glob_wildcards("../fastq/{sample}_1.filt.fastq.gz")
rule all:
input:
expand("{sample}_recalibrated.bam",sample = SAMPLES)
rule pbrun_fq2bam:
input:
R1 = "../fastq/{sample}_1.filt.fastq.gz",R2 = "../fastq/{sample}_2.filt.fastq.gz"
output:
bam = "{sample}_recalibrated.bam",recal = "{sample}_recal.txt"
shell:
"pbrun fq2bam --ref human_g1k_v37_decoy.fasta --in-fq {input.R1} {input.R2} --knownSites dbsnp_138.b37.vcf --out-bam {output.bam} --out-recal {output.recal}"
运行命令:
snakemake -j 32 --use-conda
../fastq/
目录中存在四个样本/外显子组时出错:
GPU-BWA mem
ProgressMeter Reads Base Pairs Aligned
cudaSafeCall() failed at ParaBricks/src/samGenerator.cu:782 : out of memory
cudaSafeCall() failed at ParaBricks/src/samGenerator.cu:782 : out of memory
cudaSafeCall() failed at ParaBricks/src/chainGenerator.cu:185 : out of memory
cudaSafeCall() failed at ParaBricks/src/chainGenerator.cu:185 : out of memory
cudaSafeCall() failed at ParaBricks/src/chainGenerator.cu:185 : out of memory
cudaSafeCall() failed at ParaBricks/src/chainGenerator.cu:183 : out of memory
cudaSafeCall() failed at ParaBricks/src/chainGenerator.cu:185 : out of memory
cudaSafeCall() failed at ParaBricks/src/chainGenerator.cu:183 : out of memory
最小示例-fastqc
获取数据:
mkdir ../fastq/
gsutil cp -r gs://genomics-public-data/gatk-examples/example1/NA19913/* ../fastq/
Snakefile:
SAMPLES,= glob_wildcards("../fastq/{sample}_1.filt.fastq.gz")
rule all:
input:
expand(["{sample}_1.filt_fastqc.html","{sample}_2.filt_fastqc.html"],sample = SAMPLES),expand(["{sample}_1.filt_fastqc.zip","{sample}_2.filt_fastqc.zip"],sample = SAMPLES)
rule fastqc:
input:
R1 = "../fastq/{sample}_1.filt.fastq.gz",R2 = "../fastq/{sample}_2.filt.fastq.gz"
output:
html = ["{sample}_1.filt_fastqc.html",zip = ["{sample}_1.filt_fastqc.zip","{sample}_2.filt_fastqc.zip"]
conda:
"fastqc.yaml"
shell:
"fastqc {input.R1} {input.R2} --outdir ."
fastqc.yaml:
channels:
- bioconda
- conda-forge
- defaults
dependencies:
- bioconda::fastqc =0.11.9
运行命令:
snakemake -j 32 --use-conda
在此先感谢任何指针!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)