问题标签 [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 投票
4 回答
1016 浏览

python - 蛇制作的emacs模式?

snakemake 是一个类似于 python 的 make 替代品,它更适合于工作流而不是编译。它非常好,但也很新,我似乎无法在 Emacs 中找到它的模式。我只想要一些非常简单的东西:对基本模式进行非常轻微的修改,所以我在阅读 emacs 手册时,我在 init.el 中开始了以下内容:

像 make 一样,snakemake 对缩进很严格(实际的制表符“\t”字符,而不是当键入 TAB 时 emacs 的默认行为方式)。当我键入“Cq TAB”时,它会在缓冲区中放置一个真正的制表符:这可行,我在基本模式下使用 Snakefile 进行了尝试,它运行完美。因此,为了避免每次在此模式下需要 TAB 时都键入“Cq TAB”,我想对蛇模式进行的第一个添加是将 TAB 键重新绑定到“Cq TAB”(或类似的东西)。所以我仔细阅读了emacs手册并尝试了:

但是这个和其他替代方法都不起作用......也许像 TAB 键这样的重新绑定标准键不是推荐的做法?

我想要的蛇模式的另一个补充是它根据python突出显示语法(但没有任何python行为,例如python缩进行为)

总而言之,在创建“蛇模式”时对基本模式的这两个简单修改以及在文件名是“蛇文件”时调用蛇模式的方法就是我所寻找的,但我已经花了几个几个小时阅读 emacs 手册并进行一些谷歌搜索,似乎我还没有接近。这很简单,我很确定这是可能的;有什么建议吗?

谢谢

默里

0 投票
0 回答
125 浏览

python - 无效的指针和变量未定义错误

我目前正在研究一个蛇形文件,该文件应该在 shell 命令期间产生一些输出,并将其中一些输出提取到另一个文本文件中。但是,我遇到了无法摆脱的错误。

代码:

错误信息:

那么无效指针是否对另一个错误负责?

最好的,马塞尔

0 投票
2 回答
1514 浏览

python - 熊猫安装问题 - 运行多个版本的 python

我在安装 panda 库时遇到问题。我目前在 LMDE 下使用带有 Python 版本 2.7 和 3.4 的蛇形制作。我尝试了以下方法:

这不起作用,因为我收到以下错误:

我认为这是因为 snakemake 基于 python 3,我尝试了这篇文章中的解决方案。这个不工作(反正我不太明白 virtualenv 的概念):

然后我尝试了:

它工作得很好,但后来我得到了这个错误:

这篇文章来看,它看起来像是一个版本问题,应该 > 0.15。最后一个命令说它安装了 pandas 0.14,但是当我检查时,我得到了:

我被困在这里,在 python 版本和 pandas 版本之间,我不知道该怎么做。任何帮助将不胜感激。

0 投票
1 回答
216 浏览

bash - 使用 bash 循环文件列表 - 语法错误

我一直在尝试循环文件列表并根据它们的数量对它们应用操作。我第一次尝试使用该ls命令,但输出不是列表:

输出

我尝试了这种不同的语法:

它在本地运行良好,但后来我将其用作 shell 代码到蛇形工作流程中,然后它引发语法错误:

我猜这是bash解释器的问题?任何线索我还能如何遍历这些文件?

谢谢

编辑:我也试过

哪个输出

0 投票
2 回答
1797 浏览

python - 始终在 Snakefile (snakemake) 中运行规则

我正在为 snakemake 工作流程编写 Snakefile。作为我工作流程的一部分,我需要检查数据库中的一组记录是否已更改,以及它们是否已重新下载。

我的想法是编写一个规则来检查数据库时间戳并将其写入输出文件。并使用时间戳文件作为我的下载规则的输入。问题是一旦写入时间戳文件,时间戳规则将永远不会再次运行,因此时间戳将永远不会更新。

有没有办法让这条规则每次都运行。(我知道我可以从外壳强制它,但我想在 Snakefile 中指定它)或者,有没有更好的方法来处理这个?

0 投票
2 回答
308 浏览

python - 并行流水线编程

我有一个 linux VM,每 4 小时更新一次新的数据文件。这些文件按编号 01 到 10 组织在目录中。

我有一个可执行文件(convert.exe),可以将上传的文件转换为不同的文件类型。

我想开发一个管道来处理文件(convert.exe),然后将它们重定向到另一个目录。

我已经在 linux bash 脚本中对它进行了系列编程。使用以下代码:

但是,我想使用我可以访问的处理能力并在多个 CPU 上并行运行它,以获得更多的实时转换方法和结果。

我打算改用 python 并使用snakemake 来分发命令。

我对编程并不陌生,但对命令很python陌生snakemake

只是想知道是否有人可以提供一些关于如何开始这个过程的见解?

0 投票
1 回答
3638 浏览

python - 使用snakemake处理多个目录和所有文件

我有一个包含 10 个子目录(dir01 到 dir10)的目录和每个子目录中的许多文件(每天都会将新文件添加到子目录中)。

我正在尝试编写一个snakemake文件,该文件将遍历所有子目录和所有文件并处理它们(运行我的convert.exe可执行文件以将我的 .Stp 文件转换为 .Xml)。处理后的文件将被移动到一个新目录中,但会移动到与之前名称相同且文件名相同的子目录中。

所以 - 作为最后的一个例子,最终的工作流程应该类似于这样运行:

我还想将它分配给我可以访问的 12 个 CPU,并行运行。

我刚刚开始使用snakemake,并且已经完成了一些教程,但是我有点迷失了。

到目前为止,这是我所拥有的:它不起作用,我什至不确定这是否是解决它的写入方式。这也只是第一部分 - 只是尝试遍历目录和文件(还没有尝试转换或并行运行)。

任何有关如何解决此问题的帮助将不胜感激!

谢谢!

0 投票
1 回答
3216 浏览

python - 重写写保护文件

如果需要,每 4 小时用新信息更新文件 - 即是否已针对该特定文件处理任何新信息(文件对应于人)。

我正在运行此命令将我的 .stp 文件(每 4 小时更新一次)转换为 .xml 文件。

我的脚本在Snakemake(基于python)中,但我正在convert.exe通过shell命令运行。

我在已经使用 convert.exe 处理的那些上遇到错误。它们被保存convert.exe为写保护,并且没有选项可以在可执行文件本身中绕过它。

错误信息:

我仍然希望它们受到写保护,但也希望能够根据需要更新它们。

我可以在我的 shell 命令中添加一些东西来覆盖写保护文件吗?

0 投票
1 回答
1110 浏览

python - 是否可以让 yapf 忽略文件的某些部分?

我正在使用一个名为snakemake的python-dsl,它看起来像这样:

我想对run:块内的东西运行 yapf。

是否有可能让 yapf 忽略 python 中不存在的东西,比如rule关键字等,只在文件的特定部分使用它?

0 投票
1 回答
207 浏览

python - 为什么在蛇文件中设置 `wildcard_constraints` 会阻止删除标记为 `temp` 的文件?

考虑以下蛇文件:

如果我取消注释该wildcard_constraints部分,则标记的文件temp不会被删除。

这可能是什么原因?

更多测试

放入wildcard_constraints规则:

这具有相同的效果:temp文件不会被删除。

将通配符约束放在generate_text规则的输出文件名中:

在这种情况下,temp文件将按预期删除。

将约束放在gather_results规则的输入文件名中:

这会导致错误:

/tmp/Snakefile 第 20 行中的 WildcardError:
没有为通配符 'num,\d+' 指定值。
文件“/tmp/Snakefile”,第 20 行,在

我怀疑这是由于使用expand.