Loading...
 

Tiki + PluginR en 2011: interfaces web más fáciles para R

Xavier de Pedro, Ferran Briansó, Àlex Sánchez (UB, VHIR)- http://ueb.vhir.org/2011+III+Jornadas+R



Flash player not available.


Novedades de Tiki y el PluginR en 2011: interfaces web más fáciles para programas en R - III Jornadas R en castellano

Xavier de Pedro Puente* , Ph.D (1,2); Ferran Briansó (2), Àlex Sánchez Pla, Ph.D. (1,2)
  • Department of Statistics. Faculty of Biology. University of Barcelona (UB).
  • Statistics and Bioinformatics Unit (UEB). Vall d'Hebron Research Institute (VHIR).
    Catalonia. Spain
    http://ueb.vhir.org/2011+III+Jornadas+R

* xavier.depedro at vhir.org

Diapositivas


Image Image

Image Image



Outline




Slides: http://ueb.vhir.org/tools/2011+III+Jornadas+R



















Quote:
Resumen
La necesidad de interfaces web para programas en R sigue siendo vigente, como se pudo deducir tras asistir a las últimas jornadas internacionales de usuarios de R - UseR!2011 (http://www.warwick.ac.uk/statsdept/user-2011/). R-Studio liberó en el último año su editor, que puede ser instalado en un servidor web como software libre y permitir a usuarios remotos ejecutar programas de R en un servidor desde el navegador web del usuario. De forma similar, Revolution analytics presentó en esas mismas jornadas UseR!2011 el trabajo que están desarrollando para crear una interfaz web propietaria para editar y ejecutar programas de R en el servidor. En un futuro cercano es posible que funcionen de forma estable, aunque por el momento no es el caso: la instalación del primero nos falló en un servidor GNU/Linux 64 bits, y el segundo fue sólo un prototipo pre-alfa y, además, de software propietario).

Por otra parte, se mostró como crear interfaces gráficas con gWidgets, y a pesar de ser esto muy atractivo para hacer más usables nuestros programas en R, no soluciona la necesidad de interfaces web a dichos programas. Tirando del hilo del paquete gWidgets, probamos el paquete relacionado gWidgetsWWW, pero sin éxito, y con la sensación de que el paquete no está del todo mantenido pues la documentación muestra cosas que no fuimos capaces de reproducir con el paquete, y sin obtener mensajes de error significativos (si es que de algún error de usuario se trataba).

En conclusión, siguió quedando evidente que hay un cierto vacío en el campo de la interfaces gráficas de usuario vía web a los programas de R, que permitan a los miembros de equipos de trabajo tanto editar el código cuando sea necesario a través del propio navegador web de forma rápida y fácil (estilo wiki), como permitir a usuarios interactuar con sus programas a través de navegador web desde cualquier lugar. Por esa misma razón presentamos también allí lo básico de nuestro trabajo con Tiki y el PluginR (De Pedro y Sánchez 2011), incluyendo algunas mejoras que no habían sido mostradas aún en la comunicación presentada en las II Jornadas de usuarios de R en Castellano del año pasado (De Pedro y Sánchez 2010). Y a raíz de el encuentro UseR!2011, hemos incorporado alguna nueva mejora.

Así, resumiendo las mejoras aparecidas en la aproximación de Tiki y PluginR en este último año desde la presentación de 2010 en castellano, podemos decir que en este tiempo se han producido mejoras sustanciales en Tiki, y hemos integrado algunas nuevas funcionalidades en el PluginR. Por ejemplo, se han liberado nuevas versiones de Tiki 6 "LTS" (de soporte a largo plazo) y la nueva rama estable Tiki 7 que incorpora resaltado y coloreado de sintaxis a tiempo real, que ayuda notablemente al usuario a editar de forma ágil el contenido de sus scripts y interfaces directamente desde el navegador web.

Conviene recordar que una de las características más interesantes del PluginR actual es su capacidad de generar informes avanzados combinando código R nativo con sintaxis destinada a la presentación del informe. La combinación en documentos Sweave (.Rnw) con lineas escritas en látex junto con trozos de código R es similar en Tiki a la combinación en documentos de plantillas Smarty (.tpl) con lineas escritas en html junto con trozos de código en R. Smarty es un motor de plantillas de html para programas escritos en PHP, de forma que se sigue el diseño Model-View-Controller (MVC) de separación del código (php) de la presentación del contenido (html en plantillas Smarty, tpl). Por lo tanto, lo que hace Smarty con html en documentos web equivale en cierta manera a lo que hace Sweave con latex en documentos de escritorio.

Además de esto, otras mejoras introducidas incluyen:
* Se ha añadido la opción de guardar la sesión de R en cache, con el parámetro "loadandsave", de forma que se puede indicar si se quiere que el PluginR recuerde los valores de las variables entre diferentes visitas a la misma página. Dicha memoria cache puede ser compartida entre diferentes páginas wiki si ellas forman parte de un mismo proyecto web (gestionado a través de un ítem común de los Trackers de Tiki).
* Se permite la edición "WYSIWYM": "What You See Is What You Mean". Es decir, no sólo se permite colorear la sintaxis del código empleado, sino que además en muchos casos se representa lo que significa. És decir, el código de viñetas se muestra sangrado respecto al texto normal, la negrita y cursiva se muestran como tal, los encabezados se muestran con una fuente mayor y en negrita, etc.
* se ha creado un nuevo perfil de configuración llamado R_HeatMaps para añadir en pocos clics sobre una instalación de Tiki una interfaz web para un paquete de R de creación de gráficos de tipo "HeatMap" (http://profiles.tiki.org/R_HeatMaps). Dicho perfil sirve de ejemplo para la creación de cualquier otra interfaz web a scripts de R o paquetes enteros instalados desde repositorios de R u otras fuentes.
* Ya se puede usar sintaxis R nativa (incluyendo dobles paréntesis o corchetes) también en el código R en informes avanzados (a través plantillas de Smarty). Únicamente se tienen que escapar las llaves (cuando se usen) entre marcas de {literal} y {/literal}.
* Se ha añadido la opción de ofrecer al usuario de descargarse en formato SVG el mismo gráfico que está viendo (en png) a través del navegador. Esto permite que el usuario se descargue en un formato vectorial, escalable y editable el gráfico que le interese, para posterior edición particular que le interese al usuario.

Esta comunicación se complementa con un taller de creación de interfaces web para los propios programas de R de los asistentes:
http://demo.usar.org.es/Taller+5



1. Introduction: Our goal


  1. Web interfaces for R scripts (& reports)
    ~~grey:(~ Sweave or org-mode: mixing templates with R code but with simpler syntax, for the crowds)~~
  2. Using some multipurpose-versatile tool: for Bioinformatics and for anything
    1. free/libre open source software (FLOSS)
    2. multi-platform & multi-browser
    3. mature & maintained software
    4. documented
    5. standard technology & programing languages
    6. extend-able by us or by others easily
    7. versatile enough for multi-purpose with single learning curve,
    8. quick & easy web output or reports


2. Web GUIs for R (i): many but (apparently) unreliable


  • A few listed in R FAQ's, but...
    • most seem either unmaintained (= risky in the mid term)
    • or doesn't work anymore,
    • or too difficult (for an averaged researcher or technician)

Reinvention of the wheel (once more)?
  • diversity of designs: let evolution rule...
    (we ended up extended a previous development branch in php)

Image


3. Web GUIs for R (ii): similar conclusions by others*

Software Brief notes
Rweb Page last updated 1999. Of the 3 example links on the page one ran very slowly, the second not at all and the third is broken.
R-Online Or rather, not online. Unless this CGI form is the same thing. I tried Example 1, it returned a server error.
Rcgi Links to several CGI forms, none of which worked for me.
CGI-based R access Link did not load.
CGIwithR Package now maintained at Omegahat. Did not attempt installation. Last updated 2005.
Rpad I could not connect to this URL.
RApache The pick of the bunch. Provides server-side access to R through an Apache module. I was able to install RApache on 32-bit (but not 64-bit) Ubuntu 9.10 and get it running. Could use more documentation.
Rserve Serves R via TCP/IP. Last updated 2006.
OpenStatServer Broken link. No longer exists, so far as I can tell.
R PHP Online Link out of date (but you can follow it to the newer page). Last updated 2003, so unlikely to be much use.
R-php Last updated 2006; the example that I tried gave a server error.
webbioc A Bioconductor package. Did not investigate further.
Rwui An application to create R web interfaces. My browser hung at 'waiting for cache'. I gave up.

* Table 1. From Neil Saunders, personal communication in his blog



4. Our choice (i): "Tiki" as a base application & framework

Tiki: "Tightly Integrated Knowledge Infrastructure" (tiki.org)

Image Image




5. Our choice (ii): Tiki + PluginR (external mod)


Image
Image
Image


6. Simple Example


6.1. Simple Usage - "Hello world" (Basic R syntax)


Image

6.2. Simple Usage - "Hello world" (Basic R syntax)


Image

6.3. Simple Usage - "Risky" calls?


Image

6.4. Simple Usage - "Risky" calls - only after RR & admin validation


Image

7. News in 2011 for Tiki and PluginR

  • Tiki7 (Apr'11) & Tiki8 (Nov'11)
    https://doc.tiki.org/Tiki7 | https://doc.tiki.org/Tiki8

    Many, but special relevance for our use case with R:
    • Optional Highlighting, line numbering, line wrap at edition time! (with Codemirror)
    • Removal of the constraints to escape some character combinations in advanced template usage mixing R and Tiki data
      (when using Smarty template engine).
  • PluginR
    • Export figures as PDF or SVG (besides small png on screen)
    • Same plugin adapted to work with Tiki6 (LTS), Tiki7 & Tiki8.
  • New Tiki Configuration Profile for the R package EasyHeatMaps (shown in this talk)
    https://profiles.tiki.org/R_HeatMap

8. Advanced Example: Web-based Easy Heatmaps

We want to mimic something like this with our approach:
Image
Image



Advanced Example: What we have, need & do.

We have
  1. Heatmaps R package (local or remote *.tgz)
  2. R script to use functions from the package and to produce some figure and/or report
We need
  1. Table describing parameters which need to be fed to R by the web interface
  2. Tiki (FLOSS Web 2.0 engine) + PluginR set up on a server.
We do

  1. Convert html table and its rows into a Tiki tracker and its fields (web database with forms and reports).
  2. Create a simple Wiki page to
    1. display a form to collect the data from the user for the Tracker
    2. display a list of items already created in that tracker
  3. Validate the potentially unsafe R calls from wiki pages (admin or user with enough permissions required)
  4. Create a Smarty template (~ Sweave template but for web pages) to combine Tracker data (input from the user stored in a tracker)
  5. Edit the simple wiki page to convert it into a Pretty Tracker page for the report display (instead of simple table with tracker data)
  6. Feed the web interface and see the results


Advanced - Web HeatMaps (i): descriptive table


Image

Advanced - Web HeatMaps (ii): Tracker & fields


Image

Advanced - Web HeatMaps (iii): descriptive table with tracker field Ids


Image

Advanced - Web HeatMaps (iv): Wiki page1 "HeatMaps" (code)


Image

Advanced - Web HeatMaps (v): Wiki page1 "HeatMaps" (output)


Image

Advanced - Web HeatMaps (vi): Wiki page2 "HeatMaps Edition" (code)


Image

Advanced - Web HeatMaps (vii): Wiki page3 "HeatMaps Template" (code)


Image

Advanced - Web HeatMaps (viii): Creating a figure


Image

Advanced - Web HeatMaps (ix): Results and edition


Image

8.1. Other Goodies (i): Website for R-es community

Proposal (currently in review by the Spanish R users community)
  1. Documentation with syntax highlighting:
    1. in wiki pages
    2. blog posts
    3. potentially forums (nor used right now, since an email list seems to be the preferred option)
  2. Job offers (blog)
  3. RSS feeds (offered, and fetched)
  4. freetags
  5. i18n (internationalization) tools
Image



9. Thanks. Questions?



  • TALLER 5 - III Jornadas R-es:
    • Crea interfaces Web 2.0 a tus programas en R con software libre (LAMP+Tiki+PluginR)
      Viernes 18/11/11, 12:30-14:30h. Aula Informática 1.6. EUI.
      http://demo.usar.org.es/Taller+5

Acknowledgements
  • Tiki Developers
    • Sylvie Greverend (FR, USA), Jonny Bradley (UK), Robert Plummer (USA), Rodrigo Sampaio (BR), Louis-Philippe Huberdeau (CA)


10. References


  1. De Pedro, X.; Sánchez, A. (2011). Web 2.0 for R scripts & workflows: Tiki & PluginR. The R User Conference 2011. Coventry, UK. Presentación
  2. De Pedro, X.; Sánchez, A. (2010). Usando de forma segura R vía web con Tiki. II Jornadas (I Congreso) de Usuarios de R en castellano. Mieres, Oviedo, Spain. http://demo.usar.org/II+Jornadas - Texto completo | Presentación
  3. De Pedro, X.; Calvo, M.; Carnicer, A.; Cuadros, J.; Miñarro, A. (2010). Assessing student activity through log analysis from computer supported learning assignments. Presentació comunicació, 6º Congreso Internacional de Docencia Universitaria e Innovación - VI CIDUI. Barcelona, Spain. http://cochise.bib.ub.es
  4. De Pedro, X.; Sánchez, A. (2011). Using R through a Tiki web interface to implement bioinformatics pipelines. Poster, 19th Annual International Conference on Intelligent Systems for Molecular Biology and 10th European Conference on Computational Biology 2011 (ISMB/ECCB), N36. Vienna, ÀUSTRIA. http://posters.f1000.com/P1816
  5. De Pedro, X. (2011). Tiki documentation: Plugin R. https://doc.tiki.org/PluginR
  6. R (2011). R faq. cran.r-project.org/doc/FAQ/R-FAQ.html#R-Web-Interfaces.
  7. Saunders, N. (2009). A brief survey of r web interfaces. http://nsaunders.wordpress.com/2009/11/30/a-brief-survey-of-r-web-interfaces/



2011 Jornadas R-es | R-es

Show php error messages