Snakemake根据字典输入和输出

2024-05-02

我正在尝试重命名 Snakemake 管道中的一些文件。 假设我有三个文件:"FileA.txt", "FileB.txt", "FileC.txt"我希望根据字典重新命名它们dict = {"A": "0", "B": "1", "C": "2"} to get "RenamedFile0.txt", "RenamedFile1.txt", and "RenamedFile2.txt"。如何为此编写一条规则?

这就是我的管道的样子(我尝试过使用一个函数但不起作用)

SAMPLES = ["A", "B", "C"]
RENAMED_SAMPLES = ["0", "1", "2"]

rename = {"0": "A", "1": "B", "2": "C"}

def mapFile(wildcards):
    file = "results/EditedFile" + str(rename[wildcards]) + ".txt"
    return(file)

rule all:
    input:
        "results/Combined.txt"

rule cut:
    input:
        "data/File{sample}.txt"
    output:
        "results/EditedFile{sample}.txt"
    shell:
        "cut -f1 {input} > {output}"

rule rename:
    input:
        mapFile
    output:
        "results/RenamedFile{renamedSample}.txt"
    shell:
        "cp {input} {output}"


rule combine:
    input:
        expand("results/RenamedFile{renamedSample}.txt", renamedSample = RENAMED_SAMPLES)
    output:
        "results/Combined.txt"
    shell:
        "cat {input} > {output}"

我收到以下错误:

KeyError: ['2']
Wildcards:
renamedSample=2

谢谢!!!


运行自定义扩展时,应指定通配符的名称:

def mapFile(wildcards):
    file = "results/EditedFile" + rename[wildcards.renamedSample] + ".txt"
    return(file)

在这种特定情况下,还可以将逻辑集成到规则本身中:

rule rename:
    input:
        lambda wildcards: f"results/EditedFile{rename[wildcards.renamedSample]}.txt"
    output:
        "results/RenamedFile{renamedSample}.txt"
    shell:
        "cp {input} {output}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Snakemake根据字典输入和输出 的相关文章

随机推荐

  • 使用accumulate计算数组double[]平均值的函数

    它一定是最常见的函数 每个人在某处都有代码片段 但我实际上花了不少于 1 5 小时在 SO 以及其他 C 网站上搜索它 但还没有找到解决方案 我想计算 a 的平均值double array 使用函数 我想将数组作为函数传递给参考 有数百万个
  • 使用node和multer将图像上传到heroku不起作用

    我正在尝试使用 Node 后端将图像文件上传到 Heroku 我可以使其工作 同样的过程在本地主机测试中工作得很好 但是在将我的项目部署到 Heroku 并测试它之后 过程和文件中出现错误不会上传 后端 let storage multer
  • python字符串包含双引号字符

    我的输入字符串由字符组成 包括双引号和单引号 和 B SS JU PQ AD DDSFD ABD E J 但是 当我从文本文件打开上述输入并打印它时 第三行中的双引号 被打印为 xe2 x80 x9d 我的目标是进行简单的字符计数 B 2
  • 如何避免在 Excel 中垂直合并单元格?

    我厌倦了合并单元格 它们就是行不通 因此 当我只需要文本在多列中居中时 我找到了一种避免水平合并单元格的方法 那是 Range A1 C1 HorizontalAlignment xlCenterAcrossSelection 它就像一个魅
  • MvxListView 可检查列表项

    我想让 CustomChoiceList 与 MvvmCross 一起使用 但很难让示例正常工作 ListItem 不会被选中 事实上 该示例使用自定义 LinearLayout 来扩展 LinearLayout 并实现 ICheckabl
  • tf.data.Dataset 迭代器返回 Tensor("IteratorGetNext:1", shape=(None, 16), dtype=int32) 但无法获取张量的值

    我正在尝试编写一个自定义模型 其中我正在编写一个自定义train step功能 我正在从自定义数据生成器创建 tf data Dataset 例如 tds tf data Dataset from generator tdg iter ar
  • 如何加速Python循环

    我查看了几个网站上的一些讨论 但没有一个给我解决方案 这段代码运行时间超过5秒 for i in xrange 100000000 pass 我正在研究整数优化问题 我必须使用O n log n 算法编辑 O n 4 算法 其中n代表矩阵的
  • 定位分离的 DOM 树内存泄漏

    我在诊断主要使用 Knockout 构建的非常大的单页 Web 应用程序中的分离 DOM 树内存泄漏时遇到问题 我已经调整了应用程序以附加一个假人FooBar对象特定的 HTML 按钮元素 当用户移动到应用程序的不同 页面 时 该元素应该被
  • 如何让 VSCode 显示 strictNullChecks Typescript 错误

    当我使用以下内容构建项目时tsconfig json 由于最近添加而出现错误strictNullChecks true version 2 3 4 compilerOptions allowSyntheticDefaultImports f
  • 正则表达式中 (*) 和 .* 有什么区别? [复制]

    这个问题在这里已经有答案了 是任意字符零次或多次 我试图找到以元音开头的单词 我用了 aeiou 它给了我所有以元音开头的单词 当我这样做时给出相同的结果 aeiou 现在我正在寻找以元音结尾的单词 我做到了 aeiou 它没有给出任何结果
  • ActionContext.getContext().getParameters() 在 StrutsJUnit4TestCase 期间返回 null

    我正在通过 Maven 运行 JUnit 测试 其中正在测试进行以下调用的 struts 操作 java 方法 Gets this from the org apache struts2 util TokenHelper class in
  • 如何创建序列密钥来保护应用程序

    我有一个创建序列密钥的应用程序 如下所示 Take customername Sign customername using privatekey and sha dsa algorithm 然后可以通过使用公钥解码并检查客户名称匹配来检查
  • 即使退出命令后,Shell 脚本仍继续运行

    我的shell脚本如下所示 bin bash Make sure only root can run our script EUID ne 0 echo This script must be run as root 1 gt 2 exit
  • 如何从 T-SQL 中的“/”分隔字符串中获取几乎最后一个子字符串?

    如果我有一个由用 字符分隔的其他字符串 xxx xxx xxx xxxx 组成的字符串 如何使用 t sql 获取最后一个和几乎最后一个 最后一个之前的 部分 它可能应该是 charindex 和 right 的某种组合 declare s
  • 生成最终存档时出错:无法获取调试签名密钥

    我无法在 mac 10 7 上使用 Eclipse 构建和运行我的 android 项目 我收到的错误是 生成最终存档时出错 无法获取调试签名密钥 更改 android 目录中的权限没有成功 尝试生成另一个项目 按照设置 SDK 的指南 甚
  • Swift / Cocoa 中的 windowNibName 错误?

    好吧 这将教会我用一年半的时间来定下 Swift 编程 显然事情已经改变了 在我过去的程序中 我的 MainWindowController 里面的这个非常高兴 class MainWindowController NSWindowCont
  • 如何在Android中将外部jar文件包含到aar文件中

    我想开发一个解决方案 允许我在 Android 项目的 aar 文件中生成的 SDK 中使用外部 jar 库 我有什么输入 SDK de xx sdk xxx android v1 0 0 外部库 libs xxxx v1 0 0 我在调查
  • 如何在Python中检查元组是否包含元素?

    我试图找到可用的方法 但找不到 没有contains 我应该使用index 我只想知道该项目是否存在 不需要它的索引 You use in if element in thetuple whatever you want to do
  • Java 到 ruby​​ AES/ECB/PKCS5Padding 加密

    我有一个使用第三方支付门户的在线电子商务网站 支付门户一直运行良好 直到第三方支付门户要求每个人开始使用带有其他支付参数的哈希密钥 现在的问题是第三方支付门户只提供了一页文档来实现哈希密钥 这是提供的文档 加密演算法 为了减少数据传输和发布
  • Snakemake根据字典输入和输出

    我正在尝试重命名 Snakemake 管道中的一些文件 假设我有三个文件 FileA txt FileB txt FileC txt 我希望根据字典重新命名它们dict A 0 B 1 C 2 to get RenamedFile0 txt