问题标签 [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.
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 手册并进行一些谷歌搜索,似乎我还没有接近。这很简单,我很确定这是可能的;有什么建议吗?
谢谢
默里
python - 无效的指针和变量未定义错误
我目前正在研究一个蛇形文件,该文件应该在 shell 命令期间产生一些输出,并将其中一些输出提取到另一个文本文件中。但是,我遇到了无法摆脱的错误。
代码:
错误信息:
那么无效指针是否对另一个错误负责?
最好的,马塞尔
python - 熊猫安装问题 - 运行多个版本的 python
我在安装 panda 库时遇到问题。我目前在 LMDE 下使用带有 Python 版本 2.7 和 3.4 的蛇形制作。我尝试了以下方法:
这不起作用,因为我收到以下错误:
我认为这是因为 snakemake 基于 python 3,我尝试了这篇文章中的解决方案。这个不工作(反正我不太明白 virtualenv 的概念):
然后我尝试了:
它工作得很好,但后来我得到了这个错误:
从这篇文章来看,它看起来像是一个版本问题,应该 > 0.15。最后一个命令说它安装了 pandas 0.14,但是当我检查时,我得到了:
我被困在这里,在 python 版本和 pandas 版本之间,我不知道该怎么做。任何帮助将不胜感激。
bash - 使用 bash 循环文件列表 - 语法错误
我一直在尝试循环文件列表并根据它们的数量对它们应用操作。我第一次尝试使用该ls
命令,但输出不是列表:
输出
我尝试了这种不同的语法:
它在本地运行良好,但后来我将其用作 shell 代码到蛇形工作流程中,然后它引发语法错误:
我猜这是bash解释器的问题?任何线索我还能如何遍历这些文件?
谢谢
编辑:我也试过
哪个输出
python - 始终在 Snakefile (snakemake) 中运行规则
我正在为 snakemake 工作流程编写 Snakefile。作为我工作流程的一部分,我需要检查数据库中的一组记录是否已更改,以及它们是否已重新下载。
我的想法是编写一个规则来检查数据库时间戳并将其写入输出文件。并使用时间戳文件作为我的下载规则的输入。问题是一旦写入时间戳文件,时间戳规则将永远不会再次运行,因此时间戳将永远不会更新。
有没有办法让这条规则每次都运行。(我知道我可以从外壳强制它,但我想在 Snakefile 中指定它)或者,有没有更好的方法来处理这个?
python - 并行流水线编程
我有一个 linux VM,每 4 小时更新一次新的数据文件。这些文件按编号 01 到 10 组织在目录中。
我有一个可执行文件(convert.exe),可以将上传的文件转换为不同的文件类型。
我想开发一个管道来处理文件(convert.exe),然后将它们重定向到另一个目录。
我已经在 linux bash 脚本中对它进行了系列编程。使用以下代码:
但是,我想使用我可以访问的处理能力并在多个 CPU 上并行运行它,以获得更多的实时转换方法和结果。
我打算改用 python 并使用snakemake 来分发命令。
我对编程并不陌生,但对命令很python
陌生snakemake
。
只是想知道是否有人可以提供一些关于如何开始这个过程的见解?
python - 使用snakemake处理多个目录和所有文件
我有一个包含 10 个子目录(dir01 到 dir10)的目录和每个子目录中的许多文件(每天都会将新文件添加到子目录中)。
我正在尝试编写一个snakemake
文件,该文件将遍历所有子目录和所有文件并处理它们(运行我的convert.exe
可执行文件以将我的 .Stp 文件转换为 .Xml)。处理后的文件将被移动到一个新目录中,但会移动到与之前名称相同且文件名相同的子目录中。
所以 - 作为最后的一个例子,最终的工作流程应该类似于这样运行:
我还想将它分配给我可以访问的 12 个 CPU,并行运行。
我刚刚开始使用snakemake,并且已经完成了一些教程,但是我有点迷失了。
到目前为止,这是我所拥有的:它不起作用,我什至不确定这是否是解决它的写入方式。这也只是第一部分 - 只是尝试遍历目录和文件(还没有尝试转换或并行运行)。
任何有关如何解决此问题的帮助将不胜感激!
谢谢!
python - 重写写保护文件
如果需要,每 4 小时用新信息更新文件 - 即是否已针对该特定文件处理任何新信息(文件对应于人)。
我正在运行此命令将我的 .stp 文件(每 4 小时更新一次)转换为 .xml 文件。
我的脚本在Snakemake
(基于python)中,但我正在convert.exe
通过shell命令运行。
我在已经使用 convert.exe 处理的那些上遇到错误。它们被保存convert.exe
为写保护,并且没有选项可以在可执行文件本身中绕过它。
错误信息:
我仍然希望它们受到写保护,但也希望能够根据需要更新它们。
我可以在我的 shell 命令中添加一些东西来覆盖写保护文件吗?
python - 是否可以让 yapf 忽略文件的某些部分?
我正在使用一个名为snakemake的python-dsl,它看起来像这样:
我想对run:
块内的东西运行 yapf。
是否有可能让 yapf 忽略 python 中不存在的东西,比如rule
关键字等,只在文件的特定部分使用它?
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
.