我在gatk4中为CombineGVCF写了一条规则。规则如下
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文件的数据集。但问题是,我需要在每次输入之前添加--变量参数。我现在得到的命令如下所示
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给我的输入文件找不到问题。
发布于 2021-09-16 17:18:48
找到了问题所在。原来我可以像下面这样写一个lambda函数
params:
extra=lambda wildcards, input: ' -V '.join(input.all_gvcf_list)并在{params.extra}前添加'-V‘。这就解决了问题。
https://stackoverflow.com/questions/69209459
复制相似问题