擅长:python、mysql、java
<p>这种方法是用不同的扩展名重命名文件。如果不存在这样的文件,它将打印错误,但您可能会认为这是一个特性:</p>
<pre class="lang-py prettyprint-override"><code>rule bowtie2_build:
input:
"reference/"+config["reference_genome"]+".fa"
output:
expand("reference/"+config["reference_genome"]+"{suffix}", suffix=[".1.bt2", ".2.bt2", ".3.bt2", ".4.bt2", ".rev.1.bt2", ".rev.2.bt2"])
params:
output_prefix=config["reference_genome"],
file_name = "reference/"+config["reference_genome"],
shell:
"""
bowtie2-build {input} reference/{params.output_prefix}
mv -v {params.file_name}.1.bt21 {params.file_name}.1.bt2
mv -v {params.file_name}.2.bt21 {params.file_name}.2.bt2
mv -v {params.file_name}.3.bt21 {params.file_name}.3.bt2
# etc... it's also possible to put this in a bash loop
"""
</code></pre>
<p>在其他示例中,如果输入文件具有关于输出的信息,例如,如果从一开始就知道基因组序列大小,那么一个选项是生成两个规则<code>bowtie2_build</code>和<code>bowtie2_build_big</code>,这两个规则将指定不同的扩展名</p>