Мы являемся исследовательской лабораторией среднего размера, основными результатами которой являются новые статистические методы анализа больших наборов данных. Обычно мы развиваемся в R и MATLAB/Octave.
Мы хотели бы расширить охват нашей работы, создав простые пользовательские интерфейсы в стиле мастера, чтобы получить доступ к нашим методам, например веб-приложениям, таким как RNAfold или автономные приложения для анализа личных данных.
В идеале мы хотели бы, чтобы интерфейсы выполняли некоторые проверки данных, чтобы использовать только FOSS, для работы в средах Mac и Windows, а также для создания простых диаграмм и графиков, которые могут выводиться как цифры, подходящие для публикации. Кроме того, нам нравится Python, потому что он является популярным языком в лаборатории и в нашем исследовательском сообществе.
Однако мы хотим иметь возможность разрабатывать и выпускать быстро и дешево. Нам повезло, что мы можем финансировать одного разработчика в лаборатории, и он/она должен поддерживать несколько проектов.
Существует множество групп с теми же потребностями и ограничениями, что и мы, поэтому было бы полезно иметь последовательную долгосрочную стратегию для этого типа проблем.
Edit Я попросил дать комментарии по четырем возможным подходам, приведенным ниже с резюме замечаний:
- Вызов методов R и Octave из Python.
ответы: - Повторное внедрение наших методов в Python. В общем, это непросто, потому что наши методы полагаются на другие методы, также реализованные в R и Octave.
ответы:
- Не было комментариев по этому подходу, возможно, это плохая идея.
- Использование другой структуры для создания пользовательских интерфейсов.
ответы:- Как создать GUI и веб-приложения непосредственно в R? (от hadley, см. ответ для ссылок на инструменты)
- Другие идеи, которые мы рассмотрели, например, интегрируемся с системами управления рабочими процессами, такими как Taverna.
ответы:- Попробуйте интерфейс визуального программирования, например RedR (от chrisamiller)
Мой предпочтительный ответ
Сначала я рассмотрю подход, предложенный Spacedman: using QtDesigner для создания пользовательского интерфейса для PyQt4 и вызова R с помощью RPy. Мы получаем много студентов, не имеющих опыта программирования, которые хотят добровольно участвовать в работе лаборатории, и QtDesigner выглядит как нечто, что мы могли бы обучить их эффективному использованию.
Я хотел бы разработать GUI непосредственно в R, как рекомендовано hadley, но RQt, который я предполагаю, что мне нужно использовать QtDesigner, похоже, не находится в активной разработке (последнее обновление было летом 2009 года).
Кроме того, похоже, что нам, возможно, придется внедрять наши методы исключительно в R и переводить с MATLAB/Octave на R. В моей области это, вероятно, не так уж плохо.
Приложение:
- Библиотеки Python для упрощения построения пользовательского интерфейса:
- Другие проекты, которые объединяют Python, R и Octave:
- GUI для создания графических интерфейсов:
- QtDesigner с PyQt4 (из Spacedman). Примечание Qt4 является коммерческим и доступен под LGPL.