谁能推荐我一个好的工作流程管理系统(WMS),最好使用Python?到目前为止,我一直在使用GNU Make,但是它引入了一层我想避免的复杂性。一个好的WMS应该具有以下功能:
- 与命令行工具和Python脚本轻松集成,
- 简单易用,重量轻,
- 处理依赖关系
- 提供命令行界面,
- 提供日志记录机制,
- (可选)提供数据来源。
我知道WMS在生物信息学中非常流行(例如Galaxy),但是我正在寻找更通用的东西。
谁能推荐我一个好的工作流程管理系统(WMS),最好使用Python?到目前为止,我一直在使用GNU Make,但是它引入了一层我想避免的复杂性。一个好的WMS应该具有以下功能:
我知道WMS在生物信息学中非常流行(例如Galaxy),但是我正在寻找更通用的东西。
Answers:
对于允许完全重现的日志记录,我强烈建议使用Sumatra python软件包。它很好地将版本控制提交号,机器状态和输出文件链接到每个运行的程序,并具有django Web界面以与运行信息数据库进行交互。python API使在我的脚本中包含日志变得非常容易。
一个月前,我偶然发现了受到高度推荐的Hans-Martin诉Gaudecker网站,该网站教授诸如“经济学家的有效编程实践”之类的课程。在他的2010年秋季课程中,他介绍了SCons,在他的2011年秋季课程中,他切换到了waf,它应该比SCons更快,但仍基于Python。这两门课程的幻灯片都可以下载,我(作为一名社会科学家)发现它们很有启发性和启发性。
看看VisTrails。我没有使用过它(只是自制的东西make
),但是它看起来很周到,文档很好,并且在NASA等都有真正的用户。
(您是否在寻找1-2人,4-5人的工具,更多吗? ?)
补充:并不是您的问题,但我认为值得重复:
对于统一,可重复的计算机实验,显然需要
另请参阅software-carpentry.org:“我们试图解决的问题是,科学家经常将40%或更多的时间花在软件上,而95%或更多的时间主要是自学成才。”
您在问题中提到的所有要求都可以通过Swift并行脚本系统来满足。
我在Swift集团工作了一年,担任博士后研究员(科学工作流程的博士学位)。我们一直在帮助来自不同领域的科学家和研究人员解决他们的计算需求。
Swift是一个用于以并行方式运行工作流的开源框架。它被称为并行脚本,主要是为了强调它提供了一个脚本接口来创建工作流,而不是GUI框箭头接口。
我可以亲自帮助您开始使用Swift并运行您的应用程序。要了解有关Swift的更多信息,请在此处查看。
Taverna是一个开源WMS,不是Python,而是Java。
该页面提到了一些软件包:https : //wiki.python.org/moin/FlowBasedProgramming
此处未提及的另一个有前途的软件包是Snakemake。
Dexy听起来确实就是您追求的目标。从站点:
Dexy是一款多功能项目自动化工具,具有许多旨在处理文档的功能。Dexy用Python编写,并具有命令行界面。它是具有MIT许可证的开源软件。
Dexy是做什么的?
Dexy通过为您做重复的部分使创建技术文档变得更加容易。Dexy为工具和脚本提供了一致的界面,因此您无需手动运行它们。项目的敏捷配置会跟踪运行什么,以什么顺序运行以及使用哪些参数。这样,您的整个过程将被捕获,因此任何人都可以使用一个简单的命令运行它,并且结果将保持一致。
您想写一篇博客文章,并附上示例,展示如何使用API。Dexy将自动:
- 运行示例代码,保存结果
- 将语法突出显示应用于示例代码(使用pygments)
- 将API调用的结果和经过修饰的示例代码插入到帖子中(使用jinja)
- 将您的markdown格式的博客文章转换为HTML(使用python markdown或pandoc)。
- 以草稿模式将HTML上传到WordPress API(使用WordPress API)
- 完成调整后,发布您的博客文章