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