snakemake 在 snakemake 中用于多输入和单输出的多个参数。 ConbineGVCFs gatk问题
snakemake multiple parameters for multiple input and single output in snakemake. ConbineGVCFs gatk problem
我已经在gatk4 中为CombineGVCFs 写了一个规则。规则如下
all_gvcf = get_all_gvcf_list()
rule cohort:
input:
all_gvcf_list = all_gvcf,
ref="/data/refgenome/hg38.fa",
interval_list = prefix+"/bedfiles/hg38.interval_list",
params:
extra = "--variant",
output:
prefix+"/vcf/cohort.g.vcf",
shell:
"gatk CombineGVCFs -R {input.ref} {params.extra} {input.all_gvcf_list} -O {output} --tmp-dir=/data/tmp -L {input.interval_list}"
all_gvcf 是将要合并的所有 gvcf 文件的数据集。但问题是我需要在每次输入之前添加 --variant 参数。我现在得到的命令如下
gatk CombineGVCFs -R /data/refgenome/hg38.fa --variant /data/prjna644607/vcf/SRR12165216_HC.g.vcf /data/prjna644607/vcf/SRR12165217_HC.g.vcf /data/prjna644607/vcf/SRR12165218_HC.g.vcf /data/prjna644607/vcf/SRR12165219_HC.g.vcf -O /data/prjna644607/vcf/cohort.g.vcf --tmp-dir=/data/tmp -L /data/prjna644607/bedfiles/hg38.interval_list
我要实现的命令如下
gatk CombineGVCFs -R /data/refgenome/hg38.fa --variant /data/prjna644607/vcf/SRR12165216_HC.g.vcf --variant /data/prjna644607/vcf/SRR12165217_HC.g.vcf --variant /data/prjna644607/vcf/SRR12165218_HC.g.vcf --variant /data/prjna644607/vcf/SRR12165219_HC.g.vcf -O /data/prjna644607/vcf/cohort.g.vcf --tmp-dir=/data/tmp -L /data/prjna644607/bedfiles/hg38.interval_list
如何在每次输入前添加这个额外的“--variant”标签?我已将其添加到 get_all_gvcf_list() 函数中。但后来 snakmake 给我输入文件未找到的问题。
找到问题了。结果我可以写一个 lambda 函数如下
params:
extra=lambda wildcards, input: ' -V '.join(input.all_gvcf_list)
并在 {params.extra} 前添加“-V”。那解决了问题
我已经在gatk4 中为CombineGVCFs 写了一个规则。规则如下
all_gvcf = get_all_gvcf_list()
rule cohort:
input:
all_gvcf_list = all_gvcf,
ref="/data/refgenome/hg38.fa",
interval_list = prefix+"/bedfiles/hg38.interval_list",
params:
extra = "--variant",
output:
prefix+"/vcf/cohort.g.vcf",
shell:
"gatk CombineGVCFs -R {input.ref} {params.extra} {input.all_gvcf_list} -O {output} --tmp-dir=/data/tmp -L {input.interval_list}"
all_gvcf 是将要合并的所有 gvcf 文件的数据集。但问题是我需要在每次输入之前添加 --variant 参数。我现在得到的命令如下
gatk CombineGVCFs -R /data/refgenome/hg38.fa --variant /data/prjna644607/vcf/SRR12165216_HC.g.vcf /data/prjna644607/vcf/SRR12165217_HC.g.vcf /data/prjna644607/vcf/SRR12165218_HC.g.vcf /data/prjna644607/vcf/SRR12165219_HC.g.vcf -O /data/prjna644607/vcf/cohort.g.vcf --tmp-dir=/data/tmp -L /data/prjna644607/bedfiles/hg38.interval_list
我要实现的命令如下
gatk CombineGVCFs -R /data/refgenome/hg38.fa --variant /data/prjna644607/vcf/SRR12165216_HC.g.vcf --variant /data/prjna644607/vcf/SRR12165217_HC.g.vcf --variant /data/prjna644607/vcf/SRR12165218_HC.g.vcf --variant /data/prjna644607/vcf/SRR12165219_HC.g.vcf -O /data/prjna644607/vcf/cohort.g.vcf --tmp-dir=/data/tmp -L /data/prjna644607/bedfiles/hg38.interval_list
如何在每次输入前添加这个额外的“--variant”标签?我已将其添加到 get_all_gvcf_list() 函数中。但后来 snakmake 给我输入文件未找到的问题。
找到问题了。结果我可以写一个 lambda 函数如下
params:
extra=lambda wildcards, input: ' -V '.join(input.all_gvcf_list)
并在 {params.extra} 前添加“-V”。那解决了问题