Как мне сделать быструю разработку графического интерфейса для методов R и Octave (возможно, с Python)? - PullRequest
21 голосов
/ 11 сентября 2010

Мы - академическая исследовательская лаборатория среднего размера, основными результатами которой являются новые статистические методы анализа больших наборов данных. Обычно мы развиваемся в R и MATLAB / Octave.

Мы хотели бы расширить сферу нашей работы, создав простые пользовательские интерфейсы в стиле мастера для доступа к нашим методам: веб-приложения, такие как RNAfold , или автономные приложения для анализа личных данных.

В идеале нам хотелось бы, чтобы интерфейсы выполняли некоторую проверку данных, использовали только FOSS, работали в средах Mac и Windows и могли генерировать простые диаграммы и графики, которые можно выводить в виде рисунков, подходящих для публикации. Кроме того, нам нравится Python, потому что это популярный язык в лаборатории и в нашем исследовательском сообществе.

Однако мы хотим иметь возможность разрабатывать и выпускать быстро и дешево. Нам повезло, что мы смогли профинансировать одного разработчика в лаборатории, и он / она должен поддерживать несколько проектов.

Есть много групп с такими же потребностями и ограничениями, что и у нас, поэтому было бы полезно иметь возможность разработать последовательную долгосрочную стратегию для такого типа задач.

Редактировать Я попросил дать комментарии по четырем возможным подходам, включенным ниже с кратким изложением комментариев:

  1. Вызов методов R и Octave из Python.
    ответы:
  2. Повторная реализация наших методов в Python. В общем, это нелегко, потому что наши методы основаны на других методах, также реализованных в R и Octave. ответы:
    • Там не было никаких комментариев к этому подходу, это, вероятно, плохая идея.
  3. Использование другой инфраструктуры для создания пользовательских интерфейсов.
    ответы:
    • Как насчет создания графических интерфейсов и веб-приложений непосредственно в R? (от hadley , см. ответ для ссылок на инструмент)
  4. Другие идеи, которые мы не рассматривали, например, интеграция с системами управления рабочими процессами, такими как Taverna .
    ответы:
    • Попробуйте интерфейс визуального программирования, например RedR (из chrisamiller )

Мой предпочтительный ответ

Сначала я расскажу о подходе, предложенном Spacedman : использование QtDesigner для создания пользовательского интерфейса для PyQt4 и вызов R с RPY . У нас много студентов без опыта программирования, которые хотят добровольно работать в лаборатории, и QtDesigner выглядит так, как мы могли бы научить их эффективно использовать.

Я хотел бы разработать GUI непосредственно в R, как рекомендовано hadley , но RQt , который, как я полагаю, мне нужно использовать QtDesigner, похоже, не находится в активной разработке (последний обновление было летом 2009 года).

Кроме того, похоже, что нам, возможно, придется начать реализовывать наши методы исключительно в R и переводить с MATLAB / Octave на R. В моей области это, вероятно, неплохая идея.

Приложение:

  1. Библиотеки Python для упрощения создания пользовательского интерфейса:
  2. Другие проекты, которые интегрируют Python, R и Octave:
  3. GUI для создания GUI:

Ответы [ 7 ]

9 голосов
/ 12 сентября 2010

Почему бы не продолжить развитие непосредственно в R? Существует ряд пакетов, позволяющих разрабатывать графические интерфейсы (gWidgets RGtk, tcl / tk, RQt, Rwxwidgets, rjava) или веб-приложений .

8 голосов
/ 12 сентября 2010

Я бы пошел с Python и PyQt4 для пользовательского интерфейса и использовал Rpy для взаимодействия с R.

Есть QtDesigner для проектирования интерфейса, и вы можете генерировать Python из этого.QtAssistant предоставляет вам полный набор документов с гиперссылками на Qt, который является лучшим из тех, что я когда-либо использовал.

Стоит того!

5 голосов
/ 11 сентября 2010

Это сложный заказ - мультиплатформенный, мульти-бэкэнд (R и Ocatve), а также и дешевый, быстрый и простой в использовании!

С высоты моей головы, посмотрите на эти

  • Мудрец : у них есть то, что они называют записными книжками , которые являются интерактивными веб-страницами и демонстрируют хорошую демонстрацию при использованииR!2010;Я думаю, что Octave тоже покрыт

  • Shogun : он также интегрируется с Python, R и Octave и может иметь некоторые инструменты для вас.

4 голосов
/ 05 декабря 2012

Я искал что-то похожее - простой быстрый графический интерфейс в R. Кажется, есть новая альтернатива от ребят из RStudio.

Shiny должно быть достаточно для небольших веб-интерфейсов без особого кодирования. Выглядит как жизнеспособный вариант, если вам нужен простой стиль ввода / вывода пользовательского интерфейса.

2 голосов
/ 12 сентября 2010

Для интеграции R и Python вы также можете взглянуть на

2 голосов
/ 11 сентября 2010

Я не пробовал напрямую подключать Octave к Python, кроме настройки приложений Octave в качестве сервера и вызова клиента Python, но мне немного повезло, интегрируя R с Python благодаря RPy .В некоторых наших приложениях мы создаем, например, wxPython + matplotlib Python, и вызываем сценарии R напрямую через RPy.

1 голос
/ 13 сентября 2010

Вы можете попробовать взглянуть на RedR , который позволяет вам оборачивать пакеты R в графический интерфейс Python.

...