【发布时间】:2018-02-08 17:31:40
【问题描述】:
如果命名不一致并且它们都在同一个文件夹中,我如何为snakemake中的规则配对输入数据? 例如,如果我想使用每对样本作为每个规则的输入:
- PT1 T5
- S6 T7
- S1 T20
在这个例子中,我想要有 3 对 PT1 & T5、S6 & T7、S1 & T20 所以首先,我想要创建 3 个文件夹:
- PT1vsT5
- S6vsT7
- S1vsT20
然后使用 manta 进行分析,并将结果相应地输出到这 3 个文件夹中。
在以下管道中,我希望 GERMLINE 样本是每行中的第一个元素(PT1、S6、S1),而 TUMOR 是第二个元素(T5、T7、T20)。
rule all:
input:
expand("/{samples_g}vs{samples_t}", samples_g = GERMLINE, samples_t = TUMOR),
expand("/{samples_g}vs{samples_t}/runWorkflow.py", samples_g = GERMLINE, samples_t = TUMOR),
# Create folders
rule folders:
output: "./{samples_g}vs{samples_t}"
shell: "mkdir {output}"
# Manta configuration
rule manta_config:
input:
g = BAMPATH + "/{samples_g}.bam",
t = BAMPATH + "/{samples_t}.bam"
output:
wf = "{samples_g}vs{samples_t}/runWorkflow.py"
params:
ref = IND,
out_dir = "{samples_g}vs{samples_t}/runWorkflow.py"
shell:
"python configManta.py --normalBam {input.g} --tumorBam {input.t} --referenceFasta {params.ref} --runDir {params.out_dir} "
我可以通过使用包含对的 .txt 作为输入然后使用循环来做到这一点吗?如果是这样,我该怎么做?不然怎么办?
【问题讨论】:
-
为了解决与文件命名不一致的问题,可以创建指向这些文件的符号链接,并具有一致的命名。这甚至可以在 snakemake 中完成,例如,在配置文件中提供原始文件名和链接名之间所需的对应关系。
-
在您的情况下,您也许可以只使用
zip(GERMLINE, TUMOR)“手动”创建文件列表,而不是使用expand。
标签: snakemake