Snakemake管道运行规则1的一个实例以生成多个文件,然后每个文件运行规则2的一个实例

托普佐尔

我想使用snakemake运行第一个规则的一个实例,该实例接受一个输入文件并创建多个输出文件。然后,我想将每个输出文件作为第二条规则的输入。我只想运行第一个规则的一个实例,以避免不必要地重复此规则,因为只需要一个就可以创建输出。

这是一个过于简化的示例:

假设我有一个包含以下内容的输入文件samplenames.txt:

sample1
sample2

我想从该文件中获取文件名,并为每个文件创建一个具有相同名称的文件。然后,我想使用以下最终输出文件制作每个副本:

sample1_copy
sample2_copy

我的Snakefile包含以下内容:

SAMPLES = [1,2]

rule all:
    input:
        expand(
            "sample{sample}_copy",
            sample=SAMPLES
        )

rule fetch_filenames:
    input:
        "samplenames.txt"
    output:
        "sample{sample}"
    shell:
        "while IFS= read -r line; do touch $line; done < {input}"

rule copy_files:
    input:
        expand(
            "sample{sample}", 
            sample=SAMPLES
        )
    output:
        expand(
            "sample{sample}_copy", 
            sample=SAMPLES
        )
    shell:
        "touch {output}"

这项工作可以完成,但是仅需要一个规则时,就可以完成第一个规则的两个实例。当我在更复杂的工作流程中将其应用于更多文件时,会导致许多不必要的实例。有一种只运行第一个规则的实例的运行方式吗?

我为第一条规则尝试了以下方法:

rule fetch_filenames:
    input:
        "samplenames.txt"
    output:
        "sample1"
    shell:
        "while IFS= read -r line; do touch $line; done < {input}"

但是,这将导致以下错误:“缺少规则copy_files的输入文件:sample2”

我很伤心。任何帮助都会使我高兴。

达里奥伯

如果要fetch_filenames一次执行生成所有输出文件,则应在output指令中列出所有必需的输出文件例如:

rule fetch_filenames:
    input:
        "samplenames.txt"
    output:
        expand("sample{sample}", sample= SAMPLES),
    shell:
        ...

相反,如果要copy_files对每个输入/输出对执行一次,则删除扩展功能:

rule copy_files:
    input:
        "sample{sample}",
    output:
        "sample{sample}_copy",
    shell:
        ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Snakemake运行规则

来自分类Dev

Snakemake尝试运行规则,原因:缺少输出文件,但是文件是临时的

来自分类Dev

如何运行多个实例.java文件(将其中一个作为对象或方法运行)

来自分类Dev

Snakemake:在一个规则中的每个输入文件之前插入样本名称

来自分类Dev

Snakemake:在一个规则中的每个输入文件之前插入样本名称

来自分类Dev

一次运行Snakemake规则一个样本

来自分类Dev

htaccess-一个文件中包含多个规则

来自分类Dev

一个文件中有多个ht访问规则

来自分类Dev

如何运行一个对象的多个实例

来自分类Dev

赛普拉斯(Cypress):运行所有规格,但创建一个没有运行规格的循环

来自分类Dev

我应该如何创建一个 Dockerfile 以在一个实例中运行多个服务?

来自分类Dev

运行规格时出错:Poltergeist使用CSS选择器检测到另一个元素

来自分类Dev

在另一个SonarQube实例上恢复质量配置文件时,不会导入自定义规则

来自分类Dev

在多个文件上运行命令,并为每个输出指定一个唯一的名称

来自分类Dev

如何在一个EC2实例上运行多个应用程序?

来自分类Dev

批处理文件-如果仅运行一个实例,如何杀死该进程?

来自分类Dev

重新运行或继续执行规则

来自分类Dev

模型的每个实例都有另一个模型的一个或多个实例

来自分类Dev

Shell脚本:运行屏幕,打开多个屏幕,然后在每个屏幕中运行一个命令

来自分类Dev

Unicode的换行规则是否要求最后一个字符是强制性换行符?

来自分类Dev

使用一个文件运行多个命令

来自分类Dev

从一个文件运行多个 Python 脚本

来自分类Dev

iptables -A附加一个或多个规则

来自分类Dev

重命名多个文件,除去模式的一个实例之外的所有实例

来自分类Dev

将多个规则合并为一个规则

来自分类Dev

Python:运行代码,更改一些输入参数,然后运行另一个实例

来自分类Dev

Python:运行代码,更改一些输入参数,然后运行另一个实例

来自分类Dev

如何运行一个.jar文件

来自分类Dev

如何运行一个js文件?

Related 相关文章

  1. 1

    Snakemake运行规则

  2. 2

    Snakemake尝试运行规则,原因:缺少输出文件,但是文件是临时的

  3. 3

    如何运行多个实例.java文件(将其中一个作为对象或方法运行)

  4. 4

    Snakemake:在一个规则中的每个输入文件之前插入样本名称

  5. 5

    Snakemake:在一个规则中的每个输入文件之前插入样本名称

  6. 6

    一次运行Snakemake规则一个样本

  7. 7

    htaccess-一个文件中包含多个规则

  8. 8

    一个文件中有多个ht访问规则

  9. 9

    如何运行一个对象的多个实例

  10. 10

    赛普拉斯(Cypress):运行所有规格,但创建一个没有运行规格的循环

  11. 11

    我应该如何创建一个 Dockerfile 以在一个实例中运行多个服务?

  12. 12

    运行规格时出错:Poltergeist使用CSS选择器检测到另一个元素

  13. 13

    在另一个SonarQube实例上恢复质量配置文件时,不会导入自定义规则

  14. 14

    在多个文件上运行命令,并为每个输出指定一个唯一的名称

  15. 15

    如何在一个EC2实例上运行多个应用程序?

  16. 16

    批处理文件-如果仅运行一个实例,如何杀死该进程?

  17. 17

    重新运行或继续执行规则

  18. 18

    模型的每个实例都有另一个模型的一个或多个实例

  19. 19

    Shell脚本:运行屏幕,打开多个屏幕,然后在每个屏幕中运行一个命令

  20. 20

    Unicode的换行规则是否要求最后一个字符是强制性换行符?

  21. 21

    使用一个文件运行多个命令

  22. 22

    从一个文件运行多个 Python 脚本

  23. 23

    iptables -A附加一个或多个规则

  24. 24

    重命名多个文件,除去模式的一个实例之外的所有实例

  25. 25

    将多个规则合并为一个规则

  26. 26

    Python:运行代码,更改一些输入参数,然后运行另一个实例

  27. 27

    Python:运行代码,更改一些输入参数,然后运行另一个实例

  28. 28

    如何运行一个.jar文件

  29. 29

    如何运行一个js文件?

热门标签

归档