#snakemake
#snakemake
Вопрос:
У меня есть ref.fasta
файл, содержащий строительные леса. Чтобы распараллелить процесс вызова варианта, я сгруппировал каркасы по хромосомам и создал config.yaml
файл, как показано ниже:
samples:
chr1A: scaffold26096,scaffold40476
chr1B: scaffold11969,scaffold83281,scaffold43483
chr1D: scaffold4701,scaffold102360
И сценарий, как показано ниже.
configfile: "config.yaml"
rule all:
input:
expand("scaffolds/{sample}.vcf", sample=config["samples"])
rule gatk:
input:
"/path/to/ref.fasta",
"/path/to/bam.list",
lambda wildcards: config["samples"][wildcards.sample]
output:
outf ="scaffolds/{sample}.vcf"
shell:
"""
/Tools/gatk/gatk --java-options "-Xmx16g -XX:ParallelGCThreads=10" HaplotypeCaller -L {input[2]} -R {input[0]} -I {input[1]} -O {output.outf}
"""
Я хотел бы получить результаты как chr1A.vcf
, chr1B.vcf
и chr1D.vcf
.
Это выдает ошибку:
Missing input files for rule gatk:
scaffold4701,scaffold102360
Что не так?
Ответ №1:
Я думаю, что ваш файл yaml не содержит данных, которые, по вашему мнению, есть. Я думаю, вы хотите, чтобы каждая хромосома содержала список каркасов, например:
samples:
chr1A:
- scaffold26096
- scaffold40476
chr1B:
- scaffold11969
- scaffold83281
- scaffold43483
chr1D:
- scaffold4701
- scaffold102360
(Я не проверял остальную часть вашего кода)
Комментарии:
1. Спасибо, я не знал, что config.yaml должен быть структурирован таким образом. Он по-прежнему выдает мне ту же ошибку.
2. Так что, вероятно, это выдает мне ошибки, потому что каркасы не являются файлами, по именам последовательностей в файле ref.fasta?