首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >snakemake输入函数出现奇怪的结果

snakemake输入函数出现奇怪的结果
EN

Stack Overflow用户
提问于 2018-02-10 04:36:06
回答 1查看 114关注 0票数 0

我有个规则。我试着使用case vs control。

代码语言:javascript
复制
CASE1,CONTROL1
CASE2,CONTROL2
CASE3,CONTROL3

rule macs2:
    input:   get_files
    output: "ALIGN/result/macs2/{case}_vs_{control}/",
            "ALIGN/result/macs2/{case}_vs_{control}/{case}_peaks.xls",
            "ALIGN/result/macs2/{case}_vs_{control}/{case}_summits.bed"
    log: "log/{case}_vs_{control}.macs2"
    threads: 2
    conda:
        "envs/macs.yaml"
    message: "macs2 comparison"
    params:
        size="hs",
        name="{case}"
    shell:
          """
             macs2 callpeak -t {input[0]} -c {input[1]} -f BAM -g hs -n {params.name}  --nomodel -B -q 0.01 --outdir {output[0]} -m 3 50 -g {params.size} --extsize 147 2>{log}
          """

所以这就是函数:

代码语言:javascript
复制
def get_files(wildcards):
   case = wildcards.case
   control = aCondition[case][0]
   return ["ALIGN/result/{}_filter_dup.bam".format(case), "ALIGN/result/{}_filter_dup.bam".format(control)]

如果我有这个规则的话。我有一个样本与所有输入的所有比较。

代码语言:javascript
复制
expand("ALIGN/result/macs2/{case}_vs_{control}/",case=CASE,control=CONTROL),

示例:

代码语言:javascript
复制
CASE1,CONTROL2
CASE1,CONTROL3
CASE1,CONTROL1
...

我希望只有

代码语言:javascript
复制
CASE1,CONTROL1
CASE2,CONTROL2
CASE3,CONTROL3

一般来说:当我在规则上使用输入函数时,如何编写规则all?

EN

回答 1

Stack Overflow用户

发布于 2018-03-13 01:43:43

我不知道你在问什么。你有没有试着制定一条规则,要求你提供你感兴趣的输出文件?

代码语言:javascript
复制
rule all:
    input: 
        expand(
            "ALIGN/result/macs2/{case}_vs_{control}/{case}_peaks.xls",
            case=["case1", "case2", "case3"],
            control=["control1", "control2", "control3"]
        )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48713720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档