Documentos de Académico
Documentos de Profesional
Documentos de Cultura
RJ II Jornadas R ES XavierdePedro
RJ II Jornadas R ES XavierdePedro
Introduccin
Nuestras necesidades
Abstract La necesidad de trabajar con colegas de otras instituciones es muy comn en torno al mundo universitario y la ciencia. Los equipos suelen buscar herramientas que les permitan comunicarse y coordinarse con otros en plataformas web para mejorar la colaboracin a travs del espacio y del tiempo. Aunque el anlisis y visualizacin de datos con el software R se est volviendo muy popular, es muy frecuente que se busquen intercies grcas va web para los usuarios que tienen que interactuar con los programas escritos en R, adems de para los propios equipos de desarrollo de aplicaciones. La lista de prototipos o herramientas libres publicadas incluye programas de todo tipo. Ahora bien, en una revisin general de estas herramientas llegamos a una conclusin similar a la que parecen haber llegado otros investigadores: la gran mayora de estos programas de intercie web para rutinas de R presenta problemas a corto o medio plazo, sea porque ya no esos programas ya no funcionan con las versiones estables actuales de la tecnologa web estndar y libre, porque su desarrollo parece estar descontinuado desde hace aos o porque son demasiado difciles de utilizar para la mayora de cientcos o para personas que no sean profesionales del mundo de la informtica web. As, en nuestro grupo de investigacin se opt por contribuir al desarrollo de una aproximacin relativamente nueva: un conector para usar R a travs de un software web colaborativo de uso general, similar a la extensin R para Mediawiki, pero que funcionase con un software de uso ms general y verstil, como Tiki Wiki CMS/Groupware. En este contexto se desarroll una versin bsica del PluginR, que hasta la fecha ha permitido desarrollar aplicaciones web de uso docente, y se estn desarrollando actualmente otras aplicaciones web de uso en el campo de la bioinformtica para la investigacin mdica. En la comunicacin se destacarn las principales ventajas e inconvenientes de la aproximacin de usar Tiki y el PluginR para dar solucin a las necesidades de nuestro grupo de investigacin. De Pedro y Snchez, 2010 Los grupos de investigacin en los que participamos requieren a menudo de alguna intercie web para interactuar con rutinas de escritas en lenguaje R (1). O si no lo requieren, se beneciaran ampliamente si existiera. Por descontado que se pueden crear manualmente pginas web basadas en informes generados desde paquetes de R, pero sera deseable que existiera alguna aplicacin web que fuera capaz de interactuar con R y permitiera escribir informes usando todo su potencial a tiempo real y de forma segura. Algo parecido a lo que se puede conseguir con el paquete SWeave (para hacer informes en latex) o gWidgetsWWW (para hacer intercies grcas web) pero con la exibilidad de los software de tipo Wiki (rpidos), su escueta y sencilla sintaxis, y con la versatilidad de los sistemas de gestin de contenido (CMS, de sus siglas en ingls) maduros y las aplicaciones groupware (de trabajo en grupo) en-linea. En este contexto, buscbamos un herramienta de uso general para permitir ejecutar a travs de intercie web rutinas escritas en lenguaje R de aplicacin en el campo de investigacin en docencia y en bioinformtica (y de hecho, en cualquier campo futuro que necesitemos donde sea necesario anlisis de datos y visualizacin de grcos de resultados). Esa herramienta tena que cumplir con los siguientes requisitos para ser lo suciente sostenible para nosotros a medio y largo plazo: tena que ser de software libre (de fuentes abiertas), multi-plataforma y usable con la mayora de navegadores habituales de cada sistema operativo. tena que estar basado en un paquete de software sucientemente maduro y mantenido. tena que ofrecer documentacin sucientemente extensiva sobre su uso tena que utilizar tecnologa y lenguajes de programacin estndar de forma que fuera fcilmente extensible por nosotros o bajo encargo a otras compaas o consultores, y no solo por una nica compaa. tena que ser sucientemente verstil, de forma que se pudiera usar la misma herramienta para II Jornadas de Usuarios de R en Castellano
otros nes en nuestros departamentos y grupos de investigacin, para amortizar el tiempo y energas invertidas en aprender una nueva herramienta. tena que permitir generacin de informes de forma fcil y rpida a partir de las rutinas de R
Zope y sus extensiones para interaccionar con R (10) son otra combinacin de plataforma de aplicaciones (framework) libre utilizado por muchos proyectos colaborativos (como Plone, por citar slo uno de los ms conocidos), y algunas herramientas basadas en web para integrarlo con entornos estadsticos. Estas incluyen RSOAP (un API simple para la gestin y la comunicacin con mltiples procesos simultneos R), RSessionDA (objetos Zope para interactuar con R), y otros. Sin embargo, Zope no suele estar instalado dentro del conjunto estndar de paquetes y frameworks habituales en servidores comerciales o de universidades, y parece una opcin, por tanto, interesante solamente para aquellos que ya estn utilizando el framework de aplicaciones Zope para otros nes (que no es nuestro caso). RevoDeployR (11) fue anunciado en pblico a nales del verano de 2010 por Revolution Analytics como un complemento para R en su producto Revolution R Enterprise. RevoDeployR es un entorno de servicios web para R en Java y Javascript, diseado para que sea fcil integrar clculos realizados en R en otras aplicaciones como hojas de clculo y pginas web de forma escalable y segura. No ha sido posible revisar esta nueva herramienta an, y nos preguntamos cuan libre ser. Para analizar en el futuro. Dado que no haba ninguna opcin clara que cumpliera todas nuestras necesidades cuando hicimos nuestra revisin hace meses, llegamos a la conclusin de que vala la pena explorar la posibilidad de ampliar la funcionalidad de alguna otra aplicacin web de software libre. Elegimos para esta tarea una aplicacin Wiki CMS / Groupware de uso general llamada Tiki (12)
Galaxy y Rgalaxy (4)(5): una aplicacin web escrita en perl que es altamente personalizable para el anlisis genmico de pipelines, lo que permite a los usuarios hacer anlisis que no pueden ser realizados en otros sitios sin necesidad de instalar ni descargar nada complementario. Se utiliza R como un programa externo que puede ser ejecutado desde Galaxy usando algunas herramientas adicionales de R. Sin embargo, esta opcin es altamente especca para tareas del campo de la bioinformtica nicamente. Taverna junto son su Plugin Rshell (6)(7) es una plataforma de cdigo abierto y multiplataforma escrito en Java de sistema de gestin de ujos de trabajo. Esta opcin es tambin altamente especca para algunas tareas del campo de la bioinformtica. Mediawiki y su Extensin R (8)(9) representan un conocido motor wiki de software libre escrito en PHP y Mysql, con una extensin opcional que permite integrar la salida de R (texto, html y grcos) en las pginas web de Mediawiki. Esta opcin parece lo sucientemente general para nuestras necesidades, adems de fcil de instalar y administrar. Sin embargo, Mediawiki es (slo) un motor wiki muy potente para producir sitios de tipo enciclopedia, y no lo sucientemente verstil para nuestras necesidades como lo sera una solucin de tipo CMS / Groupware.
Cuadro 1: Revisin de Neil Saunders (comunicacin personal en su blog (3)) Software Notas breves Rweb Pgina actualizada por ltima vez en 1999. De los tres enlaces de ejemplo en la pgina un se ejecut muy lentamente, el segundo no se ejecut en absoluto y el tercero es un enlace roto. R-Online Fuera de linea, ms bien. A menos que el formulario CGI sea la misma cosa. Prob el Ejemplo 1, me devolvi un error del servidor. Rcgi Enlaza a varios formularios CGI, ninguno de los cuales me funcion. CGI-based R access El enlace no me carg ninguna pgina. CGIwithR Paquete mantenido ahora en Omegahat. No prov la instalacin. Actualizado por ltima vez en 2005. Rpad No pude conectarme a esta URL. RApache La eleccin del montn. Proporciona acceso del lado del servidor a R a travs de un mdulo de Apache. Pude instalar RApache en Ubuntu 9.10 a 32-bits (pero no a 64-bits) y conseguir que funcionase. Podra usar ms documentacin. Rserve Sirve R va TCP/IP. Actualizado por ltima vez en 2006. OpenStatServer Enlace roto. Ya no existe, hasta donde puedo decir. R PHP Online Enlace roto o no actualizado (pero lo puedes seguir hasta una pgina ms nueva). Actualizado por ltima vez en 2003, as que es poco probable que sea de mucha utilidad. R-php Actualizado por ltima vez en 2006; El ejemplo que prob dio un error de servidor. Webbioc Un paquete de Bioconductor. No investigu ms all. Rwui Una aplicacin para crear intercies web de R. Mi navegador se colg mientras esperaba al cach. Desisti. Tiki para interactuar con R en el servidor, sera una solucin del estilo de la encontrada para MediaWiki, pero dentro de una aplicacin web mucho ms verstil y con muchas ms funcionalidades. De esta manera podramos denir nuestros propios ujos de trabajo adaptados a cada proyecto de investigacin o docencia, y la inversin en tiempo para aprender una nueva herramienta podra ser aprovechada para muchos otros nes de nuestros proyectos y grupos de investigacin. Pero por qu elegimos Tiki, entre toda la gama aplicaciones web de uso general de software libre de tipo Wiki (13) y CMS (14)? A causa de: Su forma estilo Wiki de hacer software, con tres reglas bsicas adoptadas exitosamente del modelo bazar de Eric Raymond (15), permitindole recibir algunos premios (18). Su motor de plantillas Smarty para separar presentacin y diseo del cdigo de PHP Su sistema de extensiones basado en plugins, incluidas casi la totalidad ya en el paquete de software base (16) Su diseo Todo-en-uno, excepto cuando hay incompatibilidad por tema de licencia de copyright, incluso dentro de las aplicaciones de software libre como en este caso con PluginR (22) De Pedro y Snchez, 2010 El uso de repositorios gestionados por un sistema de control de versiones, que adems funciona con Subversion, como en el caso de R Su sistema no de permisos granulales en la gestin de grupos de usuarios a nivel global, el nivel de objeto nico y / o el nivel de categora de contenido Su uso de una licencia de software libre del proyecto GNU, la LGPL: con libertad para copiar, estudiar, ampliar, compartir ...(17) Su sistema de trackers (ver ms abajo) que permite enlazar contenido en pginas wiki sencillas, con formularios de recogida de datos, o la presentacin de informes personalizados en ells combinando valores guardados en items de trackers con syntaxis Wiki (o Wysiwyg) para la estructura y presentacin del infome Su sistema de perles de conguracin, que permite aplicar conjuntos de cambios de conguracin de la aplicacin base para adaptarla en pocos clics a un uso concreto especializado. Estn alojados en proles.tiki.org, un sitio pblico, que permite compartir tmabin con otras personas el diseo y aplicaicn de estas conguraciones altamente personalizadas. Eljemplo al uso: el perl r test, para probar el II Jornadas de Usuarios de R en Castellano
Plugin R
Los scripts de R se pueden ejecutan a travs de Tiki por medio de un nuevo plugin llamado PluginR (22), desarrollado recientemente para dar solucin a necesidades como las expresadas anteriormente en esta comunicacin, de forma que se pudieran ejecutar las consultas de R en el servidor y mostrar los resultados en pginas wiki de la misma plataforma. El PluginR est todava en sus primeras etapas de desarrollo en su versin 0.51, pero ya ofrece una funcionalidad bsica para ejecutar scripts de R de forma segura desde el interior de Tiki, mostrando la salida en texto sencillo, formateado o con los grcos generados a demanda, y permitiendo algunos parmetros para ajustar la salida del plugin a las necesidades en cada caso (2).
Trackers de Tiki
Los Trackers de Tiki son un sistema generador de formularios y bases de datos que permite informes altamente personalizados por el usuario, y representan otro elemento clave para nuestras necesidades. En combinacin con pginas Wiki y las llamadas a plugins para consultar e informar sobre la informacin guardada en los trackers, se pueden denir ujos de trabajo sencillos para recopilar datos y mostrar el resultado de que ms tarde ltrado en varios criterios, lo que permite generar informes altamente personalizados a partir de lo que comnmente llaman como Pretty Trackers (19). Se pueden combinar adems, el sistema de transicin de categoras de Tiki se puede utilizar para producir ujos de trabajo personalizados con control en ciertos pasos que han de ser validados por un editor o administrador. Adems, se puede controlar si se muestran algunos campos de los formularios de forma relativamente fcil dependiendo del valor de campos previos (con recuadros de vercacin, campos de texto, selectores desplegables...), gracias al uso de la moderna plataforma de javascript JQuery, y el PluginJQ de Tiki (23). De esta forma, se puede desarrollar un sistema de entrada de valores por el usuario que se guardan en trackers. Estos pueden ser utilizados a nivell del motor de plantillas smarty para incluir esos valores dentro de scripts de R que sern ejecutados en el servidor, y mostran su resultado en pginas wiki tan sencillas o personalizadas como se requiera, que sn mostradas al usuario en su navegador. Todo el proceso se puede resumir de forma sencilla en el diagrama de la Figura 1.
Figura 2: Parmetros que acepta el Plugin R En su estado actual, PluginR est liberado bajo la licencia GNU/GPL (a diferencia de Tiki, que est bajo GNU/LGPL), debido a que algunas partes del cdigo vienen en el paquete R-PHP y la extensin de Mediawiki R, por lo que el PluginR tiene que descargarse por separado y colocarse en la carpeta de plugins de la instalacin de Tiki.
Figura 1: Diagrama sinttico de todo el proceso en el lado del servidor y del cliente que lanza una consulta a R a travs de una pgina web basada en pginas wiki, algunos plugins y trackers. De Pedro y Snchez, 2010
por un sistema de permisos granular, y slo los usuarios de conanza (por lo general los administradores del sitio Tiki o que pertenecen a un grupo de usuarios al que se ha concedido ese permiso especco) puede aprobar la ejecucin de llamadas a comandos de R potencialmente peligrosos, una vez asegurados de que son seguros. Como en R existen comandos que ejecutados sin cuidado podran tener efectos no deseados y abrir incluso agujeros de seguridad en un servidor informtico de internet, es necesario que haya una supervisin en el uso de esos comandos. Pero por otra parte, sera un engorro tener que pedir a un administrador que valide todas y cada una de las llamadas al plugin R incluso para las instrucciones ms comunes que no suponen ningn riesgo en el servidor. Por esta razn se han diseado dos plugins hermanos complementarios: el PluginR estrictamente hablando, que permit la ejecucin de los comandos seguros sin requerir validacin por ningn administrador, y el PluginRR (Erre-erre, o erre-queerre como podran decir algunos blogueros de la comunidad de usuarios de R Hispana), que permite ejecutar los comandos potencialmente peligrosos para el servidor previa supervisin y validacin de un administrador. Se puede ver el listado de comandos potencialmente peligrosos en la pgina web de desarrollo del PluginR (24)
Figura 3: Ejemplo de instruccin simple en pgina wiki que no requiere validacin Y de forma similar, un simple grco en R sera creado de forma similar a la mostrada en la Figura 4
Ahora bien, si se quiere usar un comando potencialmente peligroso, como cualquiera de los que tiene por misin escribir archivos en disco (en el lado del servidor), como por ejemplo un simple png(), si se intenta ejecutar con la llamada R normal (Figura 5) ser bloqueada directamente por Tiki.
Figura 5: Intento de ejecutar un comando peligroso por el Plugin R (sin validacin) bloqueado por Tiki Sin embargo, si se intenta ejecutar la misma ruti-
na R con el Plugin RR, entonces al grabar la pgina, sta queda pendiente de validacin por un administrador (Figura 6).
respondiente de Tiki para facilitar su tarea de revisin y validacin de todo el sitio web cuando se conecte.
Figura 6: Intento de ejecutar un comando peligroso por el Plugin RR que requiere validacin En este caso, hasta que un administrador no visite la pgina y clique sobre el botn View details, no tendr acceso a poder revisarla y aprobarla si procede (Figura 7).
El primer caso real de uso del Plugin R ha sido en el campo de la investigacin sobre Docencia y Aprendizaje, dentro del marco del Proyecto Cochise (25). En l se ha diseado un formulario web sencillo que se muestra al usuario nada ms conectarse a la web (basada en Tiki), para subir un archivo xml que contiene un registro de trazas de la actividad del estudiante con unos ejercicios en pgina web (Figura 8).
Figura 8: Formulario para subir un archivo de datos (en xml en este caso) para ser procesado posteriormente por R Figura 7: Detalles de la llamada al plugin para evaluarlo y aprobarlo si procede. Slo los usuarios con el permiso para validar plugins tienen acceso a ver y ejecutar dichos botones de validacin Otra opcin que tiene el administrador es revisar y aprobar plugins pendientes de validacin en bloque, a travs de la pgina de administracin corDe Pedro y Snchez, 2010
Al subir dicho archivo, se muestra automticamente al usuario otra pgina web (pgina wiki de Tiki) donde puede consultar un breve informe personalizado elaborado a tiempo real por R en el servidor (Figura 9).
Figura 11: Contenido de la pgina Wiki mostrada en la Figura 9, con la sintaxis Wiki y comandos de R para generar el informe correspondiente al procesado del archivo subido por el usuario Cabe destacar que el tiempo invertido en recorrer la curva de aprendizaje bsica de la sintaxis Wiki potente y verstil de Tiki ser reaprovechada en otros proyectos futuros, como lo es la sintaxis en las rutinas y programas en R o Ltex, por poner dos ejemplos tan slo que seguro que son bien conocidos por los lectores de esta comunicacin de la comunidad de usuarios de R. Y lo mismo ocurre con la funcionalidad de Trackers en s misma, que tiene su intercie propia en Tiki para gestionar los campos que ha de contener cada tem de cada base de datos (tracker) personalizada que creemos (vase la Figura 12 correspondiente al listado de tems del tracker de archivos subidos por usuarios a travs del formulario mostrado en la Figura 8).
Figura 9: Informe elaborado por R a tiempo real en el servidor a partir del archivo de datos subido en el paso previo Conviene tener en cuenta que la sintaxis de los plugins para incluir trozos de formularios (Trackers) en la pgina wiki inicial s relativamente corta, y puede ser aadida a travs de ventanas emergentes en javascript de ayuda (no mostradas aqu por limitacin de extensin de esta comunicacin), lo que hace relativamente rpido la edicin de nuevos formularios para otros proyectos, etc. (se muestra en la Figura 10 el cdigo correspondiente a la Figura 8).
Figura 10: Contenido de la pgina Wiki mostrada en la Figura 8, con las llamadas al Plugin Tracker y Plugin TrackerList para permitir, respectivamente, subir nuevos items, y mostrar la lista de items ya subidos por dicho usuario previamente De forma similar, el informe de la Figura 9 ha sido creado por el cdigo Wiki y R correspondiente en la pgina Results (Figura 11).
Figura 12: Listado de tems subidos por todo los usuarios al tracker de subida de archivos xml para la generacin de informes En caso de querer aadir nuevos campos a la base de datos, modicar los existentes, o crear un nuevo tracker a partir del que ya tenemos creado, se II Jornadas de Usuarios de R en Castellano
dispone de una serie de pantallas correspondientes dentro de las opciones de gestin de campos de cada tracker (Figura 13) o de edicin del tracker completo que corresponda.
y edicin de los archivos de parmetros via web, permitiendo en cualquier momento descargar dicho archivo en formato R en el ordenador del usuario (u opcionalmente en el servidor, cuando haga falta en un futuro cercano), para poder repetir los anlisis con nuevos parmetros.
Figura 13: Pantalla de edicin de los campos del tracker correspondiente a las Figuras 8 y 12
Edicin de archivo de parmetros para scripts en R va formularios web (con pretty trackers)
Otro caso real de uso es en el campo de la Bioinformtica, donde nuestro grupo de investigacin est desarrollando actualmente formularios web (Figura 14) para gestionar una serie de scripts en R que producen pipelines para el anlisis de Microarrays (26)
Trabajo futuro
Uno de los siguientes pasos pendientes en el desarrollo del PluginR es implementar la posibilidad de usar sesiones persistentes para ser ms ecientes en el consumo de memria de servidor cada vez que se visualiza una pgina Wiki que contiene scripts de R.
Agradecimientos
Figura 14: Intercie web para la creacin y edicin de proyectos de Pipelines de anlisis de microarrays usados en el campo de la Bioinformtica, utilizando Tiki y R Ya se ha desarrollado un formulario con ms de 200 campos para recoger todos los parmetros necesarios para ejecutar el pipeline va scripts de R en el servidor. Hasta la fecha, Tiki gestiona la creacion De Pedro y Snchez, 2010 La Generalitat de Catalunya-CUR (ref. 2009SGR932) la nanciacin recibida en la que se emmarca este proyecto, El proyecto Traces del programa REDICE de la Universidad de Barcelona, los otros investigadores del proyecto de Cochise (donde hemos estado utilizando PluginR en sus primeras etapas de desarrollo): Artur Carnicer, Jordi Cuadros, Miquel Calvo, y Antonio Miarro. A Rodrigo Sampaio, Luciash dbeing, Louis-Philippe Huberdeau, Sylvie Greverend y Jonny Bradley, de la comunidad II Jornadas de Usuarios de R en Castellano
Tiki, por su ayuda y apoyo con el desarrollo del PluginR y la adaptacin de los Trackers de Tiki para permitir una mayor integracin con R. Y a Carlos J. Gil Bellosta , Miguel Angel Rodriguez Muinos y M. Cassin de la lista r-help-es por los comandos adicionales identicados como potencialmente peligrosos en versiones recientes de R.
[16] Documentation, how to setup and use Tiki: Wiki Plugins. http://doc.tiki.org/Plugins [17] GNU Lesser General Public License - GNU Project. http://www.gnu.org/licenses/lgpl. html [18] Tiki Community: Awards. http://tiki.org/ Awards [19] Documentation, how to setup and use Tiki: Pretty Tracker. http://doc.tiki.org/Pretty+ Tracker [20] Documentation, how to setup and use Tiki: Category Transitions. http://doc.tiki.org/ Category+Transitions [21] Tiki Conguration Proles site. R_test prole, http://profiles.tiki.org/r_test, 2010. [22] Tiki Documentation site. Plugin R, http:// doc.tiki.org/PluginR, 2010. [23] Tiki Documentation site. Plugin JQuery, http://doc.tiki.org/PluginJQ, 2010. [24] Tiki Development site. Plugin R, http://dev. tiki.org/PluginR, 2010. [25] X. de Pedro, M. Calvo, A. Carnicer, J. Cuadros, A. Miarro. 2010. Assessing Student Activity Through Log Analysis From Computer Supported Learning Assignments. In International Congress of University Teaching and Innovation - CIDUI 2010, Barcelona July 2010. http: //cochise.bib.ub.es [26] X. de Pedro, A. Snchez. 2010. Using R in Tiki for Bioinformatics. X Jornadas de Bioinformtica: Workshop on bioinformatics for Personalized Medicine. Mlaga, 27-29 Octubre. http: //estbioinfo.stat.ub.es/?p=219
Bibliografa
[1] R Development Core Team (2009). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. ISBN 3-900051-07-0, URL http: //www.R-project.org [2] R FAQ. Frequently Asked Questions on R. http://cran.r-project.org/doc/FAQ/R-FAQ. html#R-Web-Interfaces [3] What Youre Doing Is Rather Desperate: Notes from the life of a bioinformatics researcher (Neil Saunders). http: //nsaunders.wordpress.com/2009/11/30/ a-brief-survey-of-r-web-interfaces/ [4] Galaxy software. http://g2.bx.psu.edu [5] Rgenetics: statistical and population genetics for Bioconductor. http://rgenetics.org [6] Taverna Workow Management System. http: //www.taverna.org.uk [7] Wassink et al. 2009. sing R in Taverna: Rshell v1.2" [8] MediaWiki. http://www.mediawiki.org [9] Extension:R for MediaWiki - http://www. mediawiki.org/wiki/Extension:R [10] Zope and R. http://rsoap.sf.net [11] RevoDeployRApplication Integration, Deployment and Administration For R. http://www.revolutionanalytics.com/ products/RevoDeployR.php [12] Tiki Wiki CMS Groupware: Software made the wiki way. http://tiki.org [13] WikiMatrix - Compare them all. http://www. wikimatrix.org [14] CMS Matrix - The Compare Stuff Network. http://www.cmsmatrix.org [15] Hakan Erdogmus, .A Process That Is Not,EEE Software, pp. 4-7, November/December, 2009. http://www.computer.org/portal/web/csdl/ abs/html/mags/so/2009/06/mso2009060004.htm
Xavier de Pedro Departamento de Estadstica, Universidad de Barcelona Avenida Diagonal 645, 08028 Barcelona Catalua, Espaa xavier.depedro@ub.edu lex Snchez Departamento de Estadstica, Universidad de Barcelona Avenida Diagonal 645, 08028 Barcelona Catalua, Espaa asanchez@ub.edu