У меня есть Snakefile следующим образом:
SAMPLES, = glob_wildcards("data/{sample}_R1.fq.gz")
rule all:
input:
expand("samtools_sorted_out/{sample}.raw.snps.indels.g.vcf", sample=SAMPLES),
expand("samtools_sorted_out/combined_gvcf")
rule combine_gvcf:
input: "samtools_sorted_out/{sample}.raw.snps.indels.g.vcf"
output:directory("samtools_sorted_out/combined_gvcf")
params: gvcf_file_list="gvcf_files.list",
gatk4="/storage/anaconda3/envs/exome/share/gatk4-4.1.0.0-0/gatk-package-4.1.0.0-local.jar"
shell:"""
java -DGATK_STACKTRACE_ON_USER_EXCEPTION=true \
-jar {params.gatk4} GenomicsDBImport \
-V {params.gvcf_file_list} \
--genomicsdb-workspace-path {output}
"""
Когда я тестировал его с пробным прогоном, я получил ошибку:
RuleException in line 335 of /data/yifangt/exomecapture/Snakefile:
Wildcards in input, params, log or benchmark file of rule combine_gvcf cannot be determined from output files:
'sample'
Есть два места, где мне нужна помощь:
- {output} - это папка, которая будет создана частью оболочки;
- Папка {output} была жестко запрограммирована вручную в соответствии с требованиями командной строки (а содержимое заранее неизвестно).
Проблема, похоже, в том, что {output} без расширения по сравнению с {input}, который делает.
Как мне справиться с этой ситуацией? Большое спасибо!