我们是一个中等规模的学术研究实验室,主要的成果是新的统计方法用于分析大型数据集。我们通常使用R和MATLAB/Octave进行开发。
我们希望通过构建简单的向导式用户界面来访问我们的方法,例如类似RNAfold的Web应用程序或用于分析私有数据的独立应用程序,以扩展我们工作的范围。
理想情况下,我们希望界面可以进行一些数据检查,仅使用FOSS,在Mac和Windows环境中运行,并能够生成适合发表的简单图表和图形。此外,我们喜欢Python,因为它在实验室和我们的研究社区中很受欢迎。
然而,我们希望能够快速、廉价地开发和发布。我们很幸运能够在实验室中资助一名开发人员,他必须支持多个项目。
有很多与我们相同需求和限制的团体,因此能够为这种类型的挑战制定一致的长期策略将非常有用。
编辑 我询问了四种可能的方法,并包含了以下评论摘要:
- 从Python中调用R和Octave方法。
答案: - 在Python中重新实现我们的方法。总的来说,这并不容易,因为我们的方法依赖于其他在R和Octave中实现的方法。
答案:
- 对此方法没有任何评论,这可能是一个坏主意。
- 使用不同的框架构建用户界面。
答案:- 直接在R中构建GUI和Web应用程序如何? (来自hadley,有关工具参考答案)
- 我们没有考虑过的其他想法,例如与工作流管理系统(如Taverna)集成。
答案:- 尝试使用可视化编程界面,例如RedR(来自chrisamiller)
我喜欢的答案
我首先要研究Spacedman建议的方法:使用QtDesigner构建PyQt4的用户界面,并使用RPy调用R。我们有很多没有编程背景的学生想要在实验室中做志愿者,而QtDesigner似乎是我们可以有效地培训他们使用的工具。
我想直接在R中开发GUI,正如hadley推荐的那样,但我认为我需要使用QtDesigner的RQt似乎没有在积极开发(最后一次更新是2009年夏季)。
此外,看起来我们可能必须开始专门使用R实施我们的方法,并从MATLAB/Octave转换过来。在我的领域,这可能不是一个坏主意。
附录:
- 简化用户界面构建的Python库:
- 整合Python、R和Octave的其他项目:
- 制作GUI的GUI:
- QtDesigner 与 PyQt4 结合使用(来自 Spacedman)。注意,Qt4既是商业软件,也可在LGPL下使用。