Loading...
 

2011 R-es Taller 5

Ver Comunicación asociada a las III Jornadas de Usuarios de R en castellano: http://www.r-es.org/III+Jornadas Duración del Taller: 2 h.

Video

Grabación del taller en video:

1 de 4
2 de 4
3 de 4
4 de 4

1. Introducción (30')

Glosario
Tiki
Tightly Integrated Knowledge Infraestructure. Aplicación web 2.0 hecha con PHP, MySQL, Zend, Smarty, jQuery, de software libre, con multitud de utilidades preinstaladas para una amplia diversidad de casos de uso. Más información: https://tiki.org
PluginR
Plugin que permite que Tiki se comunique con R en el servidor, y se muestre las salida de texto o gráfica a través de página wiki, (en png, siendo exportable la salida gráfica también en svg y pdf). Más información: https://doc.tiki.org/PluginR
Trackers
Funcionalidad equivalente a 'Base de datos'. Ofrece formularios predefinidos de entrada y salida de datos uno a uno o en bloque vía archivos csv. Permite, además, crear interfaces a medida, parciales o enteras, para la entrada o salida de datos, a través del uso de plugins relacionados con trackers en páginas wiki de Tiki. Los informes combinados con resultados de R se pueden mostrar via "Pretty Trackers" a través del uso de plantillas "Smarty" combinadas. Más información: https://doc.tiki.org/Trackers
Plantillas Smarty
Smarty és un Gestor de plantillas de html, que permite a aplicaciones en PHP separar el códido del programa de las instrucciones que controlan la presentación via html. Smarty en Tiki, és como Sweave en R. Smarty es quien permite combinar instrucciones de R con salida de datos de Tiki, y presentarlo de forma común al usuario en un html común (latex, en el caso de R y Sweave)


Comentar la documentación en papel que acompaña y complementa el taller:

  1. Esta página
    http://ueb.vhir.org/2011+R-es+Taller+5
  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://estbioinfo.stat.ub.es/wp-content/uploads/2010/12/RJ-II-Jornadas-R-ES-XavierdePedro.pdf
  3. Rick-Sapir. 2010. Tiki Essentials. Chapter 7: Using Trackers to Collect and Display User Information. (ó capítulos 2 y 7 en la versión en PDF de esta página).
    Image 2010_Tiki Essentials_Rick Sapir_72dpi_ch1_ch2_ch7.pdf
    Image (igual que el pdf anterior, pero 2 páginas por cara)

1.1. Tiki, Wiki Plugins, Trackers, Perfiles de configuración

Este sitio funciona con:

    
Instalación de Tiki

Cada participante del taller tendrá acceso a un Tiki propio instalado en el servidor donde poder trabajar, del estilo:

http://demo.usar.org.es/tiki01
http://demo.usar.org.es/tiki02
http://demo.usar.org.es/tiki03
...
http://demo.usar.org.es/tiki20


Y se le entregará unas credenciales de acceso a su Tiki como administrador, y a la base de datos Mysql asociada (vía PhPMyAdmin).
Nos saltaermos en el taller el primer paso de la instalación de Tiki en el servidor, aunque los curiosos e interesados, pueden ver la documentación relacionada (https://doc.tiki.org/Installation) y video relacionado - mejor fuera del horario del taller :-).

2. Primeros pasos como admin de sitio Tiki (30')

  1. Acceder a Tiki como admin
  2. Cambiar la contraseña y correo-e que envía correos, y del usuario administrador.
    1. Ir al menú de la columna izquiera de la web: "Admin > Admin inicio > General > Identidad del Sitio > Correo del enviador:", y cambiar ueb@vhir.org por vuestro correo-e. Clicad debajo donde dice "Cambiar preferencias" para aplicar los cambios.
    2. Mientras se está todavía en el panel de administración, sección "General" ("Admin > Admin inicio > General"), ir ahora a la pestaña "Cambiar contraseña de administrador", y clicar donde dice"Change the Admin password: User administration"
    3. Id a la columna derecha donde dice "Acción", y clicad sobre icono de más a la izquierda de un papel azul con el lapiz (que al pasar el puntero del ratón por encima dice "Edit Account Settings: admin").
      Image
    4. Cambiar el correo-e del usuario admin que consta por vuestro correo-e, y escoged una contraseña diferente para vuestro usuario admin (recordad que tenéis que pone también la contraseña actual del usuario admin del Tiki, que os he dado en un papel). Clicad a "Guardar" para aplicar los cambios.
  3. Aplicar el perfil de configuración Bug_Tracker
    1. Usar la aplicación web instalada
    2. Entender como funciona por detrás
  4. Aplicar el perfil de configuración R_HeatMap
    1. Usar la aplicación web instalada
    2. Entender como funciona por detrás
Aplicando el perfil de configuración simple "Bug_Tracker"
Instalando el PluginR (la primera vez)
Aplicando Perfil de Configuración avanzado "R_HeatMaps"

3. Crear una nueva interfaz (45')

3.1. ¿Qué necesitamos?

3.1.1. Script/s o paquete de R: 'goProfiles'

En este tutorial usaremos el paquete "goProfiles" de Bioconductor. Ver más información más abajo.

Close
informationMás información sobre el paquete 'goProfiles' de bioConductor

3.1.2. Tabla de correspondencias entre parámetros del programa en R y en Tiki

Nombre (R/Tiki) Descripción (R) Tipo Objeto (R) Tipo Campo BD/Tracker (Tiki) Id Campo BD/T (Tiki)
"Titulo de análisis" (sólo Tiki) - Texto 22
"Añadido por" (sólo Tiki) - Usuario 23
"geneList" Lista de genes hecha de identificadores entrez Carácter area de text o archivo adjunto 24
"Annotations" Nombre del paquet de Organismo Carácter lista desplegable 25
"Ontologia" Ontología en que nos basaremos (MF/BP/CC/todas (“any”) Carácter lista desplegable (o botones) 26
"Level" Nivel de la GO al que se trabaja Entero lista desplegable 27
"Grafic" Se hace un gráfico del perfil Si/No casilla verificación (o botón de radio) 28

3.2. Tareas a realizar

Crear Nuevo Tracker y Campos para nuevo paquete goProfiles

Crear paginas wiki Interfaz para paquete goProfiles

  1. Crear Tracker nuevo (o Editar el Tracker del ejemplo anterior)
    • Menú general (columna izquierda): Trackers > Admin Trackers > Crea Tracker
      Image
  2. Crear campos para el nuevo Tracker (o Editar los campos del Tracker)
    • Admin Trackers > Clicar en el icono de "Campos" para ese tracker.
  3. Editar la páginas wiki usadas para la interfaz web del programa
    Menú general (columna izquierda): "Wiki > Create a wiki page > Insert name of the page you wish to create > Crear página".
    Hacer esto para todas las páginas siguientes que vamos a crear.
    1. "goProfiles": Página wiki para la entrada de datos (con PluginTracker) y listado sencillo de registros de la base de datos - ítems del tracker - (con PluginTrackerList sencillo, y sin usar R)
      • Abrir la página "HeatMaps" para editar (tenéis enlace en el menú de la columna derecha), y copiar su contenido
      • Crear Página "goProfiles", pegar el contenido copiado en el paso anterior, y editar el número Id de tracker, los números Id de sus campos, y de las páginas wiki (de HeatMaps a goProfiles, etc).
    2. "goProfiles Edition": Página wiki para la edición de resultados (con PluginTracker también) y listado de resultados avanzado, además combinándolo con resultados de R (con PluginTrackerList, usando Plantilla Smarty en página Wiki; usando el nuevo parámetro "tplwiki" de dicho plugin).
      • Abrir la página "HeatMaps Edition" para editar, y copiar su contenido
      • Crear Página "goProfiles Edition", pegar el contenido copiado en el paso anterior, y editar el número de tracker, de sus campos, y de las páginas wiki (de HeatMaps a goProfiles, etc)
        exclaim Fijáos en el parámetro del Plugin TrackerList que dice (después de vuestros cambios): tplwiki="goProfiles_template".
        Es decir, usa la página "goProfiles_template" como plantilla en página wiki sencilla para crear la página de resultados.
        Por tanto, hemos de crear también esa página de forma análoga a su equivalente "HeatMaps_template".
    3. "goProfiles_template": la página wiki cuyo contenido es la plantilla Smarty donde se fusionen los valores del tracker de Tiki con el código de R.
      • Abrir la página "HeatMaps_template" para editar (tenéis enlace en el menú de la columna derecha), y copiar su contenido
      • Crear Página "goProfiles_template", pegar el contenido copiado en el paso anterior, y guardar (por ahora).
        Ahora viene el paso realmente delicado y que puede divergir bastante en función de los detalles concretos del paquete R para el que queremos hacer una interfaz. En nuestro caso para goProfiles, tomaremos como ejemplo este código sencillo que crea una tabla de frecuencias de cada aparición en la Ontología Génica (GO) de los genes de cada lista que le hemos pasado como archivos adjuntos al programa.
        Instrucciones de R iniciales a modificar para ponerlas en la página wiki goProfiles_template
        list1num <- read.csv(file="temp/list1.csv")
        list2num <- read.csv(file="temp/list2.csv")
        list1<- as.character(t(list1num))
        list2<- as.character(t(list2num))
        list1.MF <- basicProfile (list1, onto="MF", level=2, orgPackage="org.Hs.eg.db") 
        list2.MF <- basicProfile (list2, onto="MF", level=2, orgPackage="org.Hs.eg.db") 
        list1.list2.MF <-mergeProfilesLists(list1.MF, list2.MF, profNames=c("list1", "list2"))
        printProfiles(list1.list2.MF, percentage=TRUE)
        plotProfiles (list1.MF, aTitle="Gene List 1, from Welsh (2001). Prostate cancer data")
  4. Dar los permisos adecuados para que el programa funcione para usuarios no-administradores también:
    1. Dar el permiso Can view tracker items attachments and download (tiki_p_tracker_view_attachments) al grupo de usuarios llamado "Anonymous". Ir al menú general de la aplicación en la columna izquierda donde dice "Trackers > Admin Trackers", y allí, pinchar sobre el icono de la llave (Image ) para gestionar los permisos del tracker creado para la interfaz web de goProfiles.
      Esto es necesario porque R se ejecuta como usuario no registrado dentro de Tiki, y por tanto, tenemos que configurar este tracker de manera que permita que qualquier usuario (incluso los no registrados) puedan descargarse los archivos adjuntos que lleva asociados (list1.csv, list2.csv).
    2. Dar el permiso "Can use the page as a tracker template (tiki_p_use_as_template)" al grupo de usuarios llamado "Registered". Ir a la página wiki goProfiles_template, clicar en el botón de debajo donde dice "Permisos", y en la sección Wiki, seleccionar la casilla de tiki_p_use_as_template para el grupo de usuarios "Registered" (por lo menos), para que los usuarios registrados puedan ejecutar el programa usando la plantilla Smarty goProfiles_template y ver sus resultados a través de la página "goProfiles Edition" que la usa.


Archivos a enlazar desde la interfaz de edición de datos, para que los usuarios se puedan bajar archivos de ejemplo:
Image list1.csv
Image list2.csv

Penúltimo paso: Edición de la Plantilla goProfiles_template

3.3. Último paso: Ejemplo de una posible resolución del ejercicio

Contenido de un goProfiles_template funcional

Contenido de un goProfiles_template funcional
{if $smarty.get.itemId gt 0}

{wikiplugin _name=rr loadandsave=1 wikisyntax=0}

##############################
### Check and get File 1
##############################

if (file_type == "text/csv" | file_type == "text/comma-separated-values" | file_type == "text/plain") {literal} { {/literal}
fileurl1 <- "http://{$smarty.server.SERVER_NAME}{$smarty.server.PHP_SELF|replace:'/tiki-index.php':'/'}tiki-download_item_attachment.php?itemId={$f_itemId}&fieldId=29&display=inline"
list1num <- read.csv(fileurl1, sep=",");

download.file(fileurl1, "list1num")
{literal} } {/literal}

# We will expect for the time being that users provide good csv data files

##############################
### Check and get File 2
##############################

# Falta crear aun un nuevo campo del tracker para un segundo adjunto, este de la lista2 de genes.
# Y poner el identificador numérico correspondiente a ese campo de tipo "adjunto" debajo donde ahora pone XX (id campo 31)
if (file_type == "text/csv" | file_type == "text/comma-separated-values" | file_type == "text/plain") {literal} { {/literal} fileurl2 <- "http://{$smarty.server.SERVER_NAME}{$smarty.server.PHP_SELF|replace:'/tiki-index.php':'/'}tiki-download_item_attachment.php?itemId={$f_itemId}&fieldId=31&display=inline"
list2num <- read.csv(fileurl2, sep=",");

download.file(fileurl2, "list2num")
{literal} } {/literal}

require(goProfiles)

# List1 and List2 are the 2 gene lists for the comparison

list1<- as.character( t(list1num) )
list2<- as.character( t(list2num) )
list1.{$f_26} <- basicProfile ( list1, onto="{$f_26}", level=as.numeric("{$f_27}"), orgPackage="{$f_25}") 
list2.{$f_26} <- basicProfile ( list2, onto="{$f_26}", level=as.numeric("{$f_27}"), orgPackage="{$f_25}") 
list1.list2.{$f_26} <-mergeProfilesLists(list1.{$f_26}, list2.{$f_26}, profNames=c("list1", "list2") )

cat("<b>Análisis</b>: "); cat("{$f_22} <hr />")

# goProfiles print profiles (as table)
printProfiles(list1.list2.{$f_26}, percentage=TRUE)

# Plot the figure also if requested
{if {$f_28}==si} {literal} { {/literal}
		# goProfiles plot 1 profile (as example). Improve and extend as needed with your own case.
		plotProfiles (list1.{$f_26}, aTitle="{$f_22}" )
	{literal} } {/literal}
{/if}

{if $smarty.get.itemId == 0 || $smarty.get.itemId lt 0}

cat("There are no data files attached for this goProfiles analysis yet, or that file is not a file with tab or comma separated values. \n\nPlease, upload a tab or csv file through the box above (using comma or semicolon to separate values, and point to indicate decimals (if any).");

{/if}

{/wikiplugin}

{/if}

 
Ejemplo de Interfaz web para el paquete goProfiles


Image

4. Ayuda (15')

¿Donde encontrar ayuda a partir de ahora?

Libros sobre Tiki:

Image
Rick-Sapir. 2010. Tiki Essentials. lulu.com. 132 pp. ISBN-10: 0557766761
http://www.amazon.com/Tiki-Essentials-Rick-Sapir/dp/0557766761
Image
Rick-Sapir. 2011. Tiki for Dummies Smarties. lulu.com. 350pp. ISBN-10: 0557345758.
http://www.amazon.com/Tiki-Smarties-Rick-Sapir/dp/0557345758

Foros de Tiki:


Listas de correo-e:

nombres alias de esta página

Taller 5 | Taller5