我正在使用 Genrich 开发一个 ATACseq 管道以与 Snakemake 一起运行。
事实上,Genrich 允许在同一步骤中调用多个重复中的峰,从而避免了额外的步骤(即 IDR)。
在 Snakemake 中,我找到了同时返回所有我想要的样本(即从一个条件复制)的方法,但是如果每个文件都被引用,Genrich 要求逗号分隔的文件作为输入或空格分隔的文件。
通常,输入返回一个以空格分隔的文件列表(即file1 file2 file3),由于我不知道如何使它返回逗号分隔的文件,所以我尝试引用它们。
理论上,在 Snakemake 5.8.0 版本之后,您可以参考{input:q}
规则的 shell 命令中的输入来返回引用的输入,如此处所述。
但是,在我的情况下,返回的输入没有被引用。
我创建了一个测试规则来查看输入是如何返回的:
rule genrich_merge_test:
input:
lambda w: expand("{condition}.sorted.bam", condition = SAMPLES.loc[SAMPLES["CONDITION"] == w.condition].NAME),
output:
"{condition}_peaks.narrowPeak",
shell:
"""
echo {input:q} > {output}
"""
存储在输出文件中的返回输入是:
rep1.sorted.bam rep2.sorted.bam
有人知道如何解决这个问题并返回引用的输入或返回逗号分隔的文件列表而不是空格分隔的文件吗?
谢谢你。