snakemake - Snakemake 扩展功能替代
问题描述
一段时间以来,我在生成具有多个输入和单个输出的工作流时遇到了一些困难,如下所示。下面的代码在某种程度上可以正常工作,但是当输入文件太多时,连接步骤总是会失败:
rule generate_text:
input:
"data/{name}.csv"
output:
"text_files/{name}.txt"
shell:
"somecommand {input} -o {output}"
rule concatenate_text :
input:
expand("text_files/{name}.txt", name=names)
output:
"summaries/summary.txt"
shell:
"cat {input} > {output}"
我做了一些挖掘,发现这归因于可以放在单个命令中的字符数的限制。我正在处理越来越多的输入,因此上述解决方案不可扩展。
有人可以为这个问题提出任何解决方案吗?我一直无法在网上找到任何东西。
理想情况下,该解决方案不会仅限于 cat 或其他 shell 命令,并且可以在可以使用 --use-conda 的情况下在规则结构中使用。我当前的修复涉及使用如下的 onsuccess 脚本,但这不允许使用 --use-conda 和特定于规则的 conda 环境。
关于 shell 命令的一件方便的事情是你可以给它提供snakemake 变量,但由于前面提到的 conda 问题,它对于我的目的来说不够灵活。
onsuccess:
shell("cat text_files/*.txt > summaries/summary.txt")
解决方案
推荐阅读
- react-async - react-async v. 8.0.0 - 使用带有 Typescript 和乐观更新的新 Promise 道具
- javascript - 当作为函数参数提供时,有没有办法在不引用对象的情况下访问对象属性?
- c# - System.IO.FileNotFoundException:在语言的搜索路径中找不到“文件'Test.py':。”
- java - 内容解析器返回不正确的文件名
- angular - 我如何从 bsDaterangepicker 获取格式示例( 2019-08-27 ),而不是 Angular 中的 Wed Aug 28 2019 16:02:24 GMT+0100 (UTC+01:00)
- mysql - 在 MySQL 中使用和创建函数
- react-hooks - 为什么我的 useFetch 函数被调用了两次?
- rust - 借来的数据不能存储在其关闭之外
- c++ - 如何在 Skylake 架构上最大化 sqrt-heavy-loop 的指令级并行性?
- xsl-fo - 如何生成一个ps文件双工属性只出现一次