Siamo un laboratorio di ricerca accademico di medie dimensioni i cui risultati principali sono nuovi metodi statistici per l'analisi di set di dati di grandi dimensioni. Generalmente sviluppiamo in R e MATLAB/Octave.Come devo eseguire uno sviluppo rapido della GUI per i metodi R e Octave (possibilmente con Python)?
Vorremmo espandere la portata del nostro lavoro costruendo semplici interfacce utente in stile wizard per accedere ai nostri metodi, sia app Web come RNAfold o applicazioni autonome per analizzare i dati privati.
Idealmente, vorremmo che le interfacce eseguissero il controllo dei dati, usassero solo FOSS, funzionassero in ambienti Mac e Windows e fossero in grado di generare semplici grafici e grafici che possono essere emessi come figure adatte alla pubblicazione. Inoltre, ci piace Python perché è una lingua popolare in laboratorio e nella nostra comunità di ricerca.
Tuttavia, vogliamo essere in grado di sviluppare e rilasciare rapidamente ed economicamente. Siamo fortunati ad essere in grado di finanziare uno sviluppatore in laboratorio e lui/lei deve supportare più progetti.
Ci sono molti gruppi con gli stessi bisogni e le stesse limitazioni di noi, quindi sarebbe utile essere in grado di sviluppare una strategia coerente a lungo termine per questo tipo di sfida.
Edit ho chiesto per i commenti su quattro possibili approcci, riportato qui sotto con sintesi dei commenti:
- Chiamando la R e metodi di ottava da Python.
Risposte: - Reimplementare i nostri metodi in Python. In generale, questo non è facile perché i nostri metodi si basano su altri metodi implementati anche in R e Octave. Risposte:
- Non c'era alcun commento su questo approccio, probabilmente è una cattiva idea.
- Utilizzo di un diverso framework per la creazione di interfacce utente.
Risposte:- Come creare GUI e applicazioni Web direttamente in R? (Da hadley, vedere risposta per arbitri di utensili)
- Altre idee che non abbiamo preso in considerazione, per esempio, l'integrazione con i sistemi di gestione del flusso di lavoro come Taverna.
Risposte:- provare un'interfaccia di programmazione visuale come RedR (da chrisamiller)
La mia risposta preferita
sto prima di andare a esaminare l'approccio suggerito dal Spacedman: utilizzando QtDesigner per creare l'interfaccia utente per PyQt4 e chiamando R con RPy. Riceviamo molti studenti senza un background di programmazione che vogliono fare volontariato in laboratorio e QtDesigner sembra qualcosa che potremmo addestrarli a usare in modo efficace.
Vorrei sviluppare le GUI direttamente in R come raccomandato da hadley ma RQt, che presumo di dover utilizzare QtDesigner, non sembra essere in fase di sviluppo attivo (l'ultimo aggiornamento era l'estate del 2009).
Inoltre, sembra che potremmo dover iniziare ad implementare i nostri metodi esclusivamente in R, e tradurre da MATLAB/Octave a R. Nel mio campo, questa non è probabilmente una cattiva idea in ogni caso.
Appendice:
- librerie Python per semplificare la costruzione dell'interfaccia utente:
- Altri progetti che integrano Pyt hon, R, e Octave:
- GUI per rendere GUI:
- QtDesigner con PyQt4 (da Spacedman). Nota: Qt4 è commerciale e disponibile sotto licenza LGPL.
Ciao gente, grazie per tutte le risposte. Continuate a farli venire e continuerò a compilarli nella domanda. Se raggiungiamo una sorta di massa critica, farò una breve valutazione dei vari approcci raccomandati. – qdjm
Il vantaggio di utilizzare un sistema di flusso di lavoro è che traccerà molti più metadati di quelli che ricorderai di fare nei tuoi script. Questo è il genere di cose che in un secondo momento tende ad avere importanza. –