擅长:python、mysql、java
<p>也许你把事情弄得太复杂了。Bowtie2(对齐器)输入索引文件的前缀,它将自己查找实际的索引文件。因此,我不会将索引文件列为任何规则的输出。只需使用一个标志文件来指示索引已经完成。例如:</p>
<pre><code>rule all:
input:
expand('{sample}.sam', sample= ['A', 'B', 'C']),
rule bowtie_build:
input:
fa= 'genome.fa',
output:
touch('index.done'), # Flag file
params:
index_prefix= 'genome',
shell:
r"""
bowtie2-build {input.fa} {params.index_prefix}
"""
rule bowtie_align:
input:
idx= 'index.done',
fq1= '{sample}.R1.fastq.gz',
output:
sam= '{sample}.sam',
params:
index_prefix= 'genome'
shell:
r"""
bowtie2 -x {params.index_prefix} -U {input.fq1} -S {output.sam}
"""
</code></pre>