问题标签 [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 回答
1496 浏览

python - 在规则中使用配置数据的语法

是否有地方完全描述了蛇形规则中配置数据的使用?

在 yaml 文件的用户指南中有一个示例:

然后,它在这样的规则中使用:

上面的内容似乎将 {sample} 替换为“data/samples/A.fastq”,而不是像显然那样替换为“A”(和“B”等)。

在输出规则中使用配置数据的正确方法是什么,例如帮助形成输出文件名?此表格不起作用:

如果我在 yaml 文件中定义复杂的结构化数据,我正在寻找语法指导——如何在蛇规则中使用它?什么时候使用 Python 语法,什么时候使用 SnakeMake 语法?

yaml 和 JSON 配置文件受到严格限制,因为它们不能使用文件中前面定义的值来定义新值,对吧?这是设置配置参数时经常要做的事情。

使用配置文件有什么好处?为什么不直接使用 include: 一个包含 python 文件来定义参数呢?

一个有用的东西是参考手册,它彻底描述了 SnakeMake 的细节。当前的网站有点分散,需要一段时间才能找到您记得以前在其中某处看到的东西。

0 投票
2 回答
6460 浏览

snakemake - snakemake 通配符或扩展命令

我想要一个规则来执行正常和肿瘤之间的重新排列。主要问题是我不知道如何解决这个问题。是通配符还是扩展我的问题的答案?

这是我的样品清单:

所以规则需要是这样的

如何在条件下对所有键执行此操作?(我想有更多的一对)

我试过这段代码:

名称“通配符”未定义

??

0 投票
0 回答
239 浏览

output - 输出中的蛇形访问配置

使用snakemake,我有兴趣通过与一组目标重叠来拆分bam文件。然后每个输出文件将被命名为{sample}_{target}.bam. 目标集由每个样本的床文件定义。我想使用以下规则设置来做到这一点:

在我的示例中,“get_targets”是一个从床文件中提取名称列的函数。

问:在设置规则输出时,我尝试了许多不同的方法来访问通配符可访问的路径,但我还没有让它工作。当前是否存在以这种方式动态访问配置文件的方法?

谢谢你的帮助!

0 投票
2 回答
8934 浏览

shell - 使用 shell() 执行多个 shell 命令的推荐方法

在snakemake中,使用shell()函数执行多条命令的推荐方式是什么?

0 投票
1 回答
87 浏览

snakemake - 如何访问snakemake 脚本名称?

有没有办法访问正在使用snakemake 运行的蛇文件的名称?它似乎可以通过解析 sys.argv 来访问,但我想知道是否有一个可用的变量包含这样的环境信息?

0 投票
0 回答
188 浏览

python - Snakemake:加载共享库时出错 - msub

在我们的 MOAB 集群上使用 Snakemake 通过 msub 提交作业时遇到问题。每次我使用 msub 运行测试作业时,作业都会失败并在日志文件中输出以下错误:

/opt/***/common/devel/python/3.5.0/bin/python3.5:加载共享库时出错:libpython3.5m.so.1.0:无法打开共享对象文件:没有这样的文件或目录

我正在使用的命令是

这个错误很奇怪,因为所需的库存在于 $LD_LIBRARY_PATH 中表示的路径中:

当直接在登录节点上运行相同的测试作业(不使用msub)时,作业也完美通过,表明Snakemake原则上能够运行。

您认为这是 Snakemake 的问题还是集群方面的问题?

干杯,祖普

0 投票
4 回答
2536 浏览

snakemake - snakemake 配置参数值可以是带有 { 的字符串吗} 要插值/扩展的值?

有没有办法在 .yaml 文件中定义一个蛇形配置字符串,以便它可以包含 {wildcard} 和 {param} 值,并且当在 shell 命令中使用该字符串时,{<name>} 值被替换为“<name>”的实际值?

例如,假设您想要一个配置字符串来定义要作为参数传递给程序的字符串的格式:

RG:“ID:{ID} 代表:{REP}”

上面的内容在 .yaml 文件中,ID 和 REP 是通配符,shell 命令会将展开的字符串作为参数传递给程序。

0 投票
1 回答
78 浏览

snakemake - snakemake 了解对齐命令的 yaml 解释

我对蛇形文件有这个规则。当我启动时,输入文件是从我的 yaml 文件中存在的所有输入中填充的。我希望为 bwa 的每个进程填充一个单位密钥。这里有规则和 Yaml 文件(不完整)和试运行结果。

而这个yaml文件配置:

当我尝试运行时,他 bwa 命令给出了这个结果

对于单元上的任何元素,报告所有输入文件......我在哪里犯了错误?

0 投票
0 回答
281 浏览

snakemake - Snakemake:动态+非动态输出

我有一个用例,其中规则生成任意数量的“检查点”文件和单个输出文件。例如,“example.input”会产生:

  • example_000.checkpoint
  • example_001.checkpoint
  • ...
  • example_093.checkpoint(此处为任意数字)
  • example.output(保证非动态输出)

检查点旨在用于从计算中的该点重新开始,但我对它们还有其他用途。但是,我只需要第一个(例如 example_000.checkpoint)和最后一个(例如 example_093.checkpoint)。如何构建一个规则,使我的输出定义为:

如果我定义了新的通配符,我会收到错误“并非所有规则示例的输出文件都包含相同的通配符”。如果我尝试使用动态输出,则会收到错误消息“具有动态输出的规则可能未定义任何非动态输出文件。”

提前感谢您的帮助!

0 投票
2 回答
1562 浏览

snakemake - 什么是蛇形元数据文件?我什么时候可以删除那些?

我注意到我的备份 rsync 脚本花费了相当长的时间从.snakemake/metadata文件夹中复制具有随机名称的内容。

这些文件是做什么用的?

在snakemake 运行完成后我可以安全地擦除它们吗,或者它们是snakemake 正确执行下一次运行所必需的?

更一般地说,是否有一些关于snakemake 在.snakemake文件夹中创建的文件的文档?