我不明白如何使用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