问题标签 [snakemake]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4532 浏览

python-3.x - 在snakemake中使用多个参数

我刚刚开始使用snakemake,想知道在同一个文件上运行一组参数的“正确”方法是什么,以及这将如何用于规则链?

因此,例如,当我想要有多种归一化方法时,然后假设一个具有不同数量的 k 个集群的集群规则。执行此操作以运行所有组合的最佳方法是什么?

我开始这样做:

然后通过以下方式调用脚本:

snakemake --config normmethod=中位数

但这并不能真正扩展到工作流程后期的更多选项。例如,我将如何自动合并这些选项集?

0 投票
1 回答
556 浏览

python - Snakemake:通配符列表中通配符的随机顺序

我在函数中索引我的蛇形通配符时遇到问题。由于某种原因,变量在“通配符”列表中的存储顺序会有所不同。我使用该函数为我的一个规则生成输入文件的路径,并且随着正确值的位置发生变化,该规则仅在每几个查询中成功一次。如何控制或固定通配符在“通配符”列表中的位置?我添加了我的 Snakefile 的相关内容。

谢谢你,祖普

0 投票
0 回答
564 浏览

bioinformatics - 重用规则并避免使用snakemake的CyclicGraphException

我正在编写一个管道,其中参考基因组上的读取的第一个映射导致一个 sam 文件(规则map_on_genome),然后是一个排序和索引的 bam 文件(规则sam2indexedbam)。处理完这个 bam 文件(规则small_RNA_seq_annotate)后,我提取了一些我想用相同参数重新映射到同一个基因组上的读数。我还从第一次映射(规则)期间未映射的读数中修剪额外的核苷酸extract_nomap_siRNAs,并且我想尝试以类似方式再次映射生成的修剪读数。

理想情况下,rules map_on_genomeand因此将在这些规则的输出sam2indexedbam之前small_RNA_seq_annotate和之后再次使用。extract_nomap_siRNAs

在我尝试这样做时,我命名的通配符read_type应该可以帮助 snakemake 区分第一个映射和另一个映射,但显然我失败了,因为我最终得到以下错误:

实现我想要的目标的推荐方法是什么(即避免代码重复)?


例子

我试图在我的真实管道的简化版本中重现该错误。这是一个导致CyclicGraphException

解决方案

如果我将规则的输入更改为extract_nomap_siRNA硬编码文件路径而不是map_on_genome规则的输出,错误就会消失。

我想这种硬编码打破了循环依赖。

0 投票
3 回答
1651 浏览

python - Snakemake:在 expand() 中使用正则表达式

使用扩展功能时,我正在努力使用正则表达式。出于某种原因,通配符总是作为纯文本而不是执行的正则表达式导入。正则表达式是先作为通配符引入还是与扩展函数相关联都没有区别(请参阅 all_decompress 与 all_decompress2)。错误总是:

-

0 投票
3 回答
1876 浏览

wildcard - Snakemake:Snakemake 管道中的 MissingInputException

我正在尝试一个 SnakeMake 管道,但我遇到了一个我真的不明白的错误。

我有一个目录(raw_data),其中有输入文件:

此目录包含 2 个样本的 4 个文件。我为 SnakeMake 管道创建了一个配置 json 文件,名为config_snakemake_Optimal_mapping_BaL.json

最后是 SnakeMake 文件snakefile_bwa_samtools.py

我运行这个管道:

我有以下错误输出:

或取决于时刻:

样本出现在列表中时被正确检测到(第一行输出类型),我肯定在规则中弄乱了通配符bwa_mem_to_bam,但我真的不明白为什么..有什么线索吗?

0 投票
1 回答
1849 浏览

wildcard - 如何获取蛇形输出规则中通配符值的基本名称?

在以下示例中,将在与输入文件相同的位置创建输出文件。有没有办法在输出部分获取通配符值的基本名称,以便我可以使用输入文件的基本名称来命名输出文件但将其写入不同的位置?

0 投票
1 回答
427 浏览

logging - snakemake 规则的日志部分中定义的文件与输出部分中定义的文件是否有很大不同?

据我了解蛇规则部分的文档log,必须“手动”将内容发送到日志文件。在我看来,使用该output部分中定义的文件可以实现相同的结果。

这两种可能的方法之间的重要区别是什么?

该部分的真正用处是log什么?

0 投票
2 回答
647 浏览

perl - 如何将通配符参数传递给蛇文件中的 perl 脚本?

我尝试在能够运行自定义 perl 脚本的 Snakefile 中编写规则。有两个输入文件和一个输出文件。输入文件和输出文件中有通配符,因为我想为各种文件运行脚本。但是当我扩展以生成不同的输入和输出文件时,perl 脚本将所有可能的输入文件作为输入,而我希望它们一个一个地去。我应该怎么做才能让 perl 一个一个地“吃掉”输入文件?这是我的代码:

0 投票
3 回答
1103 浏览

snakemake - 在snakemake运行期间动态减少输入文件集

这更多是关于蛇形能力的技术问题。我想知道是否可以在snakemake 运行期间动态更改输入样本集。

我想这样做的原因如下:让我们假设一组示例相关联的 bam 文件。第一条规则确定每个样本的质量(基于 bam 文件),即涉及所有输入文件。然而,给定特定的标准,只有一部分样本被认为是有效的,应该进一步处理。所以下一步(例如基因计数或其他)应该只对批准的 bam 文件进行,如下面的最小示例所示:

在此示例中,规则 a 将使用有效示例名称列表扩展配置文件,即使我相信知道这是不可能的。

当然,直接的解决方案是有两个不同的输入:1.) 所有 bam 文件和 2.) 列出所有有效文件的文件。这将归结为在规则代码中进行样本选择。

但是,您是否看到了一种设置规则以实现第一个示例的行为的方法?

非常感谢,拉尔夫

0 投票
1 回答
346 浏览

python - snakemake 中的“run”块重置配置值?

例如,我有 python 脚本snakemake.py

Snakefile看起来像这样:

当我运行时python snakemake.py,我遇到了一个错误:

当我删除c.outfromrule all时,它运行得非常好。看起来run规则重置中的每个块都config传递给snakemake函数为空?这不是一种奇怪的行为吗?有什么解决方法吗?

我在最新的 OSX 上使用 snakemake 版本 3.11.2(从 anaconda 的 bioconda 频道安装)。

注意:当我运行 snakemake command line 时它​​运行良好snakemake -p --keep-target-files all --config a="aaaa" b="bbb" c="cccc"。所以这看起来像是 API 的一个问题。