简单易用的库,用于执行shell命令,将数据保存到文件系统,而无需重新执行已执行的任务。
e的Python项目详细描述
在Python脚本中执行简单的任务
用于执行分步批处理任务的超级简单库(实现为 shell命令,或python函数)将内容保存到文件中,例如 已完成任务的输出不需要重新计算。见 below例如。在
Ey没有调度程序或中央工作池或类似的东西。取而代之的是 您只需以程序方式手动执行任务。这样任务执行 可以很容易地与其他过程性python代码混合使用。在
Ey可以作为成熟的工作流框架(如Luigi或 当您只有一个python脚本时,如果您希望 在开始交互式分析之前,执行一些批处理步骤,例如 下载数据集,解包,预处理等等。在
Ey很小(不超过100行代码),并且没有外部 依赖关系,这意味着您甚至可以将实现复制到自己的实现中 代码回购,如果你想确保最大限度的未来再现性。在
先决条件
- 到目前为止,Ey只在类unix的环境中进行了测试。在
安装
使用pip从Python包索引安装:
pip install ey
使用
Ey通过指定shell命令或python函数来
分别作为ey.shell()
或{
在shell命令中,需要将输入和输出文件路径替换为
[i:inputname]
和{inputs
和{
输入应该始终通过input
-参数提供,而输出路径
最容易在命令的相应占位符中提供内联。
请注意,您可以重用输入占位符值来生成输出路径。
因此,例如,如果您想将输出命名为与输入相同的名称,但是
使用一个额外的.txt
扩展名,您可以在命令中这样指定它:
somecommand > [o:myoutput:[i:myinput].txt]
。在
如果输入中有要删除的现有扩展,则可以
在输入占位符中添加|%.actual-extension-here
。所以,如果你
有一个输入myinput
,路径为myfile.txt.gz
,您可以只重用
myfile.txt
部分通过写[i:myinput|%.gz]
来删除{zcat [i:archivefile] > [o:unpacked:[i:archivefile|%.gz]]
,以便命名
解包文件与存档文件相同,但没有扩展名.gz
。在
请参阅下面的示例,了解如何在实践中使用此方法!在
示例
下面是一个下载gzip文本文件的小示例(在所谓的 FASTA格式),ungzip,然后计算A:s,T:s,G:s和 C: 并计算G和C:s相对于所有A,T,G,C:s的分数 (DNA的所谓GC分数测量)。在
前两个任务是通过执行shell命令来完成的,第二个任务是通过执行shell命令来完成的 使用python函数。在
^{pr2}$将此代码添加到名为gcfrac.py
的文件中,并使用以下命令运行它:
python gcfrac.py
- 项目
标签: