我们是一个中型学术研究实验室,其主要产出是用于分析大型数据集的新统计方法。我们通常使用 R 和 MATLAB/Octave 进行开发。
我们希望通过构建简单的向导式用户界面来访问我们的方法来扩展我们的工作范围,无论是像RNAfold这样的网络应用程序还是用于分析私有数据的独立应用程序。
理想情况下,我们希望接口能够做一些数据检查,只使用 FOSS,在 Mac 和 Windows 环境中运行,并且能够生成简单的图表和图形,可以输出为适合出版的图形。此外,我们喜欢 Python,因为它在实验室和我们的研究社区中是一种流行的语言。
但是,我们希望能够快速且廉价地开发和发布。我们很幸运能够资助实验室中的一位开发人员,而他/她必须支持多个项目。
有很多团体与我们有相同的需求和限制,因此能够为此类挑战制定一致的长期战略将很有用。
编辑 我要求就四种可能的方法发表评论,包括下面的评论摘要:
- 从 Python 调用 R 和 Octave 方法。
答案: - 在 Python 中重新实现我们的方法。一般来说,这并不容易,因为我们的方法依赖于在 R 和 Octave 中实现的其他方法。答案:
- 没有对这种方法发表评论,这可能是一个坏主意。
- 使用不同的框架来构建用户界面。
答案:- 直接在 R 中构建 GUI 和 Web 应用程序怎么样?(来自hadley,请参阅工具参考的答案)
- 我们尚未考虑的其他想法,例如与Taverna等工作流管理系统集成。
答案:- 尝试像RedR这样的可视化编程界面(来自chrisamiller)
我的首选答案
我首先要研究 Spacedman 建议的方法:使用 QtDesigner为PyQt4构建 UI 并使用RPy调用R。我们有很多没有编程背景的学生想在实验室做志愿者,而 QtDesigner 看起来像是我们可以训练他们有效使用的东西。
我想按照hadley的建议直接在 R 中开发 GUI,但我认为我需要使用QtDesigner的 RQt 似乎没有处于积极开发中(最后一次更新是 2009 年夏天)。
此外,看起来我们可能不得不开始专门在 R 中实现我们的方法,并从 MATLAB/Octave 转换为 R。在我的领域中,这可能不是一个坏主意。
附录: