我找不到这个可能很简单的问题的解决方案:
我有这个蛇文件,它首先产生以下文件:
data / sample1_P1.txt
data / sample1_P2.txt
data / sample2_P1.txt
data / sample2_P2.txt
在下一步中,它只是将文件连接到一个文件concatenated/concatenated.txt
。
这是最小的,可复制的示例:
pairs = {"P1" : "P1", "P2" : "P2"}
samples = {
"sample1": "sample1",
"sample2": "sample2"
}
rule all:
input: "concatenated/concatenated.txt"
rule get_txt_files:
output:
"data/{sample}_{pair}.txt"
shell:
"""
echo 1 > {output}
"""
rule concatenate:
input:
expand("data/{sample}_{pair}.txt", sample=samples, \
pair=pairs)
output:
"concatenated/concatenated.txt"
shell:
"cat {input} > {output};"
我的问题很简单:如何修改规则concatenate
,以便将具有相同样本名称的文件连接起来?
所需的输出将是:
concatenated / sample1.txt
concatenated / sample2.txt
任何帮助将不胜感激。
rule concatenate:
input:
expand("data/{{sample}}_{pair}.txt", pair=pairs)
output:
"concatenated/{sample}.txt"
shell:
"cat {input} > {output};"