Я не вижу, как использовать правило Snakemake для удаления выходного файла Snakemake, который стал бесполезным.Snakemake: удалить выходной файл
В конкретных терминах у меня есть правило bwa_mem_sam
, которое создает файл с именем {sample}.sam
. У меня есть это другое правило, bwa_mem_bam
, которое создает файл с именем {sample.bam}
.
Имеет ли два файла одну и ту же информацию в разных форматах, я бы хотел удалить первый из них, которые не могут это сделать.
Любая помощь будет очень оценена. Бен.
rule bwa_mem_map:
input:
sam="{sample}.sam",
bam="{sample}.bam"
shell:
"rm {input.sam}"
# Convert SAM to BAM.
rule bwa_mem_map_bam:
input:
rules.sam_to_bam.output
# Use bwa mem to map reads on a reference genome.
rule bwa_mem_map_sam:
input:
reference=reference_genome(),
index=reference_genome_index(),
fastq=lambda wildcards: config["units"][SAMPLE_TO_UNIT[wildcards.sample]],
output:
"mapping/{sample}.sam"
threads: 12
log:
"mapping/{sample}.log"
shell:
"{BWA} mem -t {threads} {input.reference} {input.fastq} > {output} 2> {log} "\
"|| (rc=$?; cat {log}; exit $rc;)"
rule sam_to_bam:
input:
"{prefix}.sam"
output:
"{prefix}.bam"
threads: 8
shell:
"{SAMTOOLS} view --threads {threads} -b {input} > {output}"
Спасибо за ваш ответ. Я подумал об этом, но я думаю, что он менее гибкий в контексте построения полной библиотеки. В основном я считаю, что каждое правило должно быть минимальным и что аддитивные правила должны быть реализованы для добавления дополнительных функций. Таким образом, в этом случае я думаю, что можно использовать вывод SAM, поэтому я хочу сохранить возможность запросить SAM, и если пользователь попросил BAM, тогда SAM будет удален. – blaurent
@blaurent, пожалуйста. Вы можете отметить как принятый, если он решит вашу проблему! –
Извините, что наши сообщения перекрыты. – blaurent