From 33d81dbb2ce371c22ae5560e4f0693056606c752 Mon Sep 17 00:00:00 2001 From: Joselyn Chavez Date: Wed, 30 Oct 2024 13:58:02 -0400 Subject: [PATCH] update compilacion --- .../figure-html/unnamed-chunk-61-1.png | Bin 90851 -> 90702 bytes .../figure-html/unnamed-chunk-61-1.png | Bin 90851 -> 90702 bytes docs/creando-mis-primeras-funciones.html | 4 ++-- docs/search_index.json | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/_main_files/figure-html/unnamed-chunk-61-1.png b/_main_files/figure-html/unnamed-chunk-61-1.png index 6e2975b081f102880ce80129979e399511f8a156..82d124d71cd2b23e7768aa572ad746bf1850bbed 100644 GIT binary patch literal 90702 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

TuMl#1`x^KD?x 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 Z&Hf`UX-2W#<}~n6TT@RXOYQRA{{jfdveEzm literal 90851 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

`&(7#jSrLAXVmo*{|w@wP# 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

eF3u+*<> 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

TuMl#1`x^KD?x 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 Z&Hf`UX-2W#<}~n6TT@RXOYQRA{{jfdveEzm literal 90851 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

`&(7#jSrLAXVmo*{|w@wP# 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

eF3u+*<> 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.10 Mensajes para el usuariowarning() comunica situaciones inusuales que pueden ser manejadas por tu código.

warning("El número de elementos esperados es mayor a uno, se tomará el primer valor del vector")
-
## Warning: El número de elementos esperados es mayor a uno, se tomará el primer
-## valor del vector
+
## Warning: El número de elementos esperados es mayor a uno, se tomará
+## el primer valor del vector
  • stop() indica una condición errónea.
diff --git a/docs/search_index.json b/docs/search_index.json index 4f9b0c3..9ae55ef 100644 --- a/docs/search_index.json +++ b/docs/search_index.json @@ -1 +1 @@ -[["index.html", "Desarrollo de paqueterías de R/Bioconductor. Bienvenida 0.1 Instructores 0.2 Ayudantes 0.3 Temario 0.4 Patrocinadores 0.5 Licencia", " Desarrollo de paqueterías de R/Bioconductor. Dra. Joselyn Cristina Chávez-Fuentes, Dra. Mirna Vázquez Rosas-Landa, M.C. Erick Cuevas-Fernández, Dra. Alejandra Medina-Rivera, Bienvenida Les damos la bienvenida al Workshop Desarrollo de paqueterías de R/Bioconductor! En este taller aprenderás cuáles son los pasos cruciales para desarrollar un paquete de R y algunas buenas prácticas para la generación de código. Con la integración de estas herramientas, tendrás la oportunidad de crear tu primer paquete y contribuir a la comunidad de desarrolladores. Adicionalmente, aprenderás a crear un sitio web para mostrar el funcionamiento de un paquete de R. 0.1 Instructores Dra. Joselyn Cristina Chávez Fuentes: Estancia Postdoctoral en Icahn School of Medicine at Mount Sinai. Dra. Alejandra Medina Rivera: Investigadora Asociada en el Laboratorio Internacional de Investigación de Medicina Genómica, UNAM. Dra. Yalbi I. Balderas-Martínez: Investigadora en el Instituto Nacional de Enfermedades Respiratorias Ismael Cosío Villegas. Dra. Mirna Vázquez Rosas Landa: Investigadora en el Instituto de Ciencias de Mar y Limnología de la UNAM. M.C. Erick Cuevas Fernández: Estudiante de Doctorado en la Universidad Nacional Autónoma de México. M.C. José Antonio Ovando Ricárdez: Estudiante de Doctorado en el Instituto Nacional de Enfermedades Respiratorias Ismael Cosío Villegas. 0.2 Ayudantes Dra. Evelia Coss: Posdoctoral en el Laboratorio Internacional de Investigación de Medicina Genómica, UNAM. M.C. José Antonio Ovando Ricárdez: Estudiante de Doctorado en el Instituto Nacional de Enfermedades Respiratorias Ismael Cosío Villegas. 0.3 Temario Consulta el calendario de este curso en: https://bit.ly/calendarcdsb2024 Día 1: Flujo de trabajo orientado a proyectos: Introducción al trabajo con proyectos de RStudio. Paths seguros. Control de versiones con GitHub y RStudio. Solución de problemas con las versiones de paquetes de Rstudio. Día 2: Creación de paquetes de R/Bioconductor Parte I Infraestructura de un paquete de R/Bioconductor. Documentación de funciones. Sesión social: Conociendo a la comunidad. Proyectos colaborativos Parte I. Día 3: Creación de paquetes de R/Bioconductor Parte II Diseño de pruebas. Creación de viñetas. Compilación e instalación de paquetes. Proyectos colaborativos Parte II. Día 4: Creación de sitios web para la documentación de paquetes de R Creación de sitios web con pkgdown Proyectos colaborativos Parte III. Presentación de proyectos. Clausura. 0.4 Patrocinadores Agradecemos a nuestros patrocinadores: 0.5 Licencia Este material posee una licencia tipo Creative Commons Attribution-ShareAlike 4.0 International License. Para conocer más sobre esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/ "],["trabajando-con-proyectos-de-rstudio.html", "1 Trabajando con proyectos de RStudio 1.1 Diapositivas 1.2 ¿Qué es un proyecto de RStudio? 1.3 ¿Cómo generamos un proyecto de RStudio? 1.4 ¿Por qué usar proyectos de RStudio? 1.5 Algunos hacks! 1.6 Generando rutas seguras", " 1 Trabajando con proyectos de RStudio Joselyn Cristina Chávez Fuentes 28 de octubre de 2024 1.1 Diapositivas div.grey { background-color: #bfbfbf; } div.center { text-align:center; } 1.2 ¿Qué es un proyecto de RStudio? Es un archivo especial de R, compatible con RStudio, que al ejecutarlo hará 3 cosas: Abrirá una nueva sesión de RStudio. Establecerá la ubicación del proyecto como tu directorio de trabajo. Establecerá la ubicación del proyecto como la raíz de los archivos. 1.3 ¿Cómo generamos un proyecto de RStudio? 1.3.1 Opción 1: Creando un proyecto en un directorio nuevo. En las opciones de RStudio Ve a File > New project > New Directory > New Project. Asigna un nombre a tu proyecto, sin espacios y sin caracteres especiales. Selecciona la ubicación donde crearás el nuevo directorio. Selecciona la opción Open in New Session. Oprime Create Project. 1.3.2 Opción 2: Creando un proyecto en un directorio existente. Crea un directorio en alguna ubicación conocida de tu computadora. Asigna un nombre a tu directorio, sin espacios y sin caracteres especiales (Este será el nombre de tu proyecto). En las opciones de RStudio ve a File > New project > Existing Directory. Selecciona la ubicación donde previamente creaste el directorio. Selecciona la opción Open in New Session. Oprime Create Project. 1.4 ¿Por qué usar proyectos de RStudio? Te permiten ser más organizado y pasar de tener una ensalada de archivos a tener carpetas para cada sección del análisis. Compartamentalizas tu trabajo al generar un proyecto específico para cada análisis. Te permiten trabajar con varios proyectos a la vez en sesiones independientes de RStudio, cada uno con sus propias variables, directorio de trabajo y archivos. Establece automáticamente tu directorio de trabajo. En lugar de usar setwd() solamente requieres ejecutar el archivo .Rproj para abrir la sesión y trabajar en la ubicación del proyecto. Puedes usar rutas relativas (y estables) a tus archivos, que seguirán funcionando sin importar en dónde se ubique tu proyecto. Facilita el compartir y reproducir tu trabajo. No más rutas al estilo ~/MiComputadora/MiFolder/MiArchivo. Comparte la carpeta completa de tu proyecto con todos los archivos necesarios y usa rutas relativas dentro del Rscript, por ejemplo ./datos. Nos ayuda a establecer colaboraciones y trabajar con plataformas de control de versiones. Actividad Comprueba algunas ventajas de usar proyectos de RStudio. Genera un nuevo proyecto de RStudio llamado ‘miproyecto’, recuerda que existen varias formas para hacerlo. Cierra la sesión y vuelve a abrirla ejecutando desde la terminal open miproyecto.Rproj o dando doble click sobre el archivo miproyecto.Rproj. Evalúa tu directorio de trabajo ejecutando en la consola de RStudio el comando getwd(). Cierra la sesión y mueve toda la carpeta de tu proyecto a otra ubicación. Si lo creaste en Documentos mueve la carpeta al Escritorio o viceversa. Abre nuevamente el proyecto y verifica el directorio de trabajo, ¿Cambió el directorio de trabajo? Sin cerrar este proyecto, abre alguno de los proyectos que generaste previamente (por ejemplo directorioprevio.Rproj), recuerda que puedes seleccionar Open Project in New session 1.5 Algunos hacks! RStudio recuerda los proyectos con los que has trabajado recientemente. Ve a la esquina superior derecha y da click en la flecha junto al nombre de tu proyecto actual. Verás todos los proyectos recientes. Si das click en el nombre de alguno de ellos te abrirá el proyecto en la misma sesión, si das click en el recuadro con flecha blanca te abrirá una nueva sesión con tu proyecto. Crea todos tus proyectos dentro de una carpeta principal y usa el buscador de archivos para acceder a ellos rápidamente. 1.6 Generando rutas seguras Se construyen a partir de una base estable El directorio de trabajo cambia de usuario a usuario y dependiendo de la ubicación de los archivos. getwd() Deben funcionar en cualquier sistema operativo Una ruta en sistemas Linux se ve así: "/Users/joselynchavez/Documents/materiales_cdsb2024" Mientras que una ruta en Windows se ve así: "C:\\Documents/materiales_cdsb2024" 1.6.1 El paquete here Usemos el paquete here para detectar la ubicación del proyecto: here::here() Ahora generemos una ruta segura a partir de la raíz del proyecto here::here("mi_tabla.csv") here::here("subfolder", "mi_tabla.csv") 1.6.2 Usando el paquete fs Por defecto, usa el directorio de trabajo actual como base y detecta el sistema operativo automáticamente. fs::path("mi_tabla.csv") fs::path("subfolder", "mi_tabla.csv") Tiene como ventaja que puede construir las rutas a partir del home del usuario. fs::path_home() fs::path_home("mi_tabla.csv") 1.6.3 Usando funciones base Si no deseas incluir el paquete ‘here’ en las dependencias de tu paquete, puedes usar la función file.path Esta función usa como base el directorio de trabajo actual y detecta el sistema operativo para construir la ruta. file.path("mi_tabla.csv") file.path("subfolder", "mi_tabla.csv") "],["control-de-versiones-con-github-y-rstudio.html", "2 Control de versiones con GitHub y RStudio 2.1 Diapositivas 2.2 ¿Por qué hacer control de versiones de nuestros proyectos? 2.3 Git 2.4 Recomendaciones para sus proyectos 2.5 Proyectos colaborativos 2.6 GitHub 2.7 Manual de sobreviviencia con Git Y GitHub en RStudio (en caso de ser necesario) 2.8 Cómo clonar un repositorio y tener conección/permisos para modificarlo? 2.9 Credenciales HTTPS en Cache 2.10 Conectando RStudio con Git y Github. 2.11 GitHub primero, RStudio después… 2.12 Rmarkdown en GitHub 2.13 RStudio primero y GitHub también 2.14 Proyecto existente, GitHub al final 2.15 Git basics: commands 2.16 Merge conflics 2.17 Merge conflics 2.18 En resumen", " 2 Control de versiones con GitHub y RStudio Dra. Alejandra Medina Rivera 28 de octubre de 2024 div.color { border-radius: 5px; padding: 20px; margin: 30px 0px 30px;} div.red { background-color:#f67155; } div.orange{ background-color:#f0BB51;} div.pair { display: flex; flex-direction: row; justify-content: center; text-align:center; padding:0px} div.inside { width: 49%; padding: 0px} div.scroll { max-height: 400px; overflow-y: auto; background: #111111; border-radius:5px; padding: 10px; margin: 30px 0px 30px; color: #999999;} div.alert{color:#bd475d; background-color:transparent} Este documento se basa en “Happy Git with R” de Jenny Bryan, los STAT 545 TAs, Jim Hester https://happygitwithr.com 2.1 Diapositivas 2.2 ¿Por qué hacer control de versiones de nuestros proyectos? ✅ Los proyectos suelen cambiar y crecer. 💾 Es díficil saber cuáles fueron todos los cambios a lo largo del tiempo (en especial tiempos largos, hazlo por tu yo del futuro!). 🤔 Las colaboraciones se pueden complicar sin un buen control de versiones. 🔐 Seguridad. 2.3 Git Git es un sistema de control de versiones Git funciona con GitHub, Bitbucket o GitLab ¿Por qué usar Git en vez de solo renombrar los archivos? ✅✅Por qué es mejor tener una filogenia del archivo. Git es un sistema de control de versiones distribuido, gratuito y de código abierto, diseñado para manejar todo tipo de proyectos, desde los más pequeños hasta los más grandes, con rapidez y eficiencia. Git es fácil de aprender y ocupa poco espacio con un rendimiento rapidísimo. Supera a las herramientas SCM como Subversion, CVS, Perforce y ClearCase con características como la ramificación local barata, las cómodas áreas de preparación y los múltiples flujos de trabajo. 2.3.1 Git vs controles de versión a mano Con Git cada contribuidor tiene una copia del repositorio central, con todos los archivos y la historia de los cambios por los que han pasado. Excuse me, do you have a moment to talk about version control?, Jennifer Bryan, 2017 ⚠️ NO OLVIDES TENER INSTALADO Git, en caso de que aún no lo hayas instalado, lo puedes descargar en el siguiente enlace https://git-scm.com/downloads. Para conocer la localización y la versión de Git que tienes en tu computadora, corre el siguiente comando en la terminal: which git y git --version 2.4 Recomendaciones para sus proyectos Dedicar un directorio Es mejor organizarlo en un RStudio Project Hacer un repositorio de Git Trabajen como siempre, solo además de guardar, recuerden hacer commit De vez en vez hagan push de sus cambios cuando los hayan verificado. 2.5 Proyectos colaborativos GitHub se parece más a un GoogleDoc que a un Word Document. Es fácil que los colaboradores hagan cambios y también es fácil saber quién hizo que. El owner del proyecto puede dar permisos a los diferentes colaboradores. También existen organizaciones, esto puede ser útil para manejar los permisos de grupos grandes de colaboración. 2.6 GitHub GitHub es una plataforma para guardar proyectos, hace uso de Git. Su principal utilidad es para generar código fuente de programas. ⚠️ NO OLVIDES TENER UNA CUENTA EN GITHUB, en caso de que aún no lo hayas hecho, puedes ir la página de GitHub y seleccionar join. Es indispensable tu usuario para los ejercicios que siguen. También existen otras plataformas como Bitbucked y GitLab, las cuales funcionan de manera similar a GitHub. 2.7 Manual de sobreviviencia con Git Y GitHub en RStudio (en caso de ser necesario) Por cualquier problema con la conexión entre RStudio y Git, siempre ten en cuenta la ubicación de dónde se instaló Git. Puedes usar en la terminal which git (Mac y Linux) O bien usar en la terminal where git (Windows) Recuerda que la terminal (o línea de comandos ó consola ó shell ó bash) es un programa en tu computadora que funciona para correr otros programas. Desde RStudio puedes abrir la terminal, lo cual es muy conveniente si estás trabajando en un proyecto. Puedes abrir una terminal con: Tools > Terminal (abre la terminal dentro del IDE de RStudio) Tools > Shell (abre una terminal externa a RStudio) 2.8 Cómo clonar un repositorio y tener conección/permisos para modificarlo? Git puede comunicarse con un servidor remoto usando uno de dos protocolos, HTTPS o SSH, y cada protocolo usa credenciales diferentes. La recomendación actual de GitHub es usar HTTPS porque es la manera más fácil de configurar y tiene operabilidad en multiples redes y plataformas. Es menos probable que HTTPS sea bloqueado por un firewall. Una conexión HTTPS permite que credential.helper almacene en caché su contraseña. (por tanto puedes configurar tu usuario y contraseña en tu equipo de uso) Es más sencillo acceder a un repositorio desde cualquier lugar, ya que solo necesitas los detalles de tu cuenta (no se requieren claves SSH) para escribir en el repositorio. Usualmente cuando inicies un proyecto colaborativo con GitHub inicializa el ropositorio con un README. Copia el HTTPS URL para clonar el repositorio en la terminal git clone https://github.com/TU-USUARIO/TU-REPOSITORIO.git. 2.9 Credenciales HTTPS en Cache Para usar HTTPS debes crear un token de acceso personal, PAT (PERSONAL ACCESS TOKEN), esa será tu credencial para HTTPS. Es una alternativa al uso de contraseñas para la autenticación en GitHub. Como precaución de seguridad, GitHub elimina automáticamente los tokens de acceso personales que no se han usado durante un año. ¿Cómo crear un token? Ve a tu perfil de GitHub, dale click a la imagen de perfil (usualmente en la esquina superior derecha), y busca la opción de settings ó configuración según sea la configuración de idioma que tengas. Da click a continuación en Developer settings ó Parámetros del desarrollador. En la barra lateral izquierda da click en Tokens de acceso personal. Haz click en Generar un nuevo token. Asígna un nombre descriptivo a tu token. Selecciona los alcances o permisos que deseas otorgarle a este token. Para usar tu token para acceder a repositorios desde la línea de comando, selecciona repo. (Recomendados: repo, user, workflow ) Finalmente haz click en generar token. Listo, copia y pega tu token en el lugar dónde siempre lo puedas volver a copiar, ya que por razones de seguridad, una vez salgas de la página no podrás volver a ver el token. Nota: Preserva tus tokens de la misma manera que tus contraseñas y no se las reveles a nadie. Una vez que tengas un token, puedes ingresarlo en lugar de tu contraseña cuando realices operaciones de Git a través de HTTPS. El punto final es que una vez configurada una PAT, varios paquetes de R, incluidos usethis y gh, podrán trabajar con la API de GitHub en su nombre, de forma automática. Por lo tanto, una PAT configurada correctamente significa que todo esto funcionará a la perfección: - Operaciones HTTPS remotas a través de la línea de comando Git y, por lo tanto, a través de RStudio - Operaciones HTTPS remotas a través del paquete gert R y, por lo tanto, usethis - Operaciones de la API de GitHub a través del paquete gh R y, por lo tanto, usethis Probar el repositorio Clonado Después de hacer clone Usa estos comandos para verificar tu repositorio y revisar desde dónde se está sincorinzando. cd myrepo ls -la head README.md git remote show origin Probemos haciendo un cambio en el README echo "Something I want to add to the README in my local computer" >> README.md git status Qué pasó? Ahora tenemos que decirle a git que queremos seguir los cambios de ese archivo Vamos a commit los cambios y luego a subir (push) los mismos a GitHub git add README.md git commit -m "A commit from my local computer" git push Recuerda tu TOKEN!! ¿Cómo crear un token desde R? Puedes ir directamente a la página de GitHub a la parte para generar tu token de acceso personal mediante la siguiente función: usethis::create_github_token() Y con las opciones que se mencionaban anteriormente puedes configurar y crear tu PAT. Si lo que quieres es especificar tu PAT en RStudio, las siguientes funciones te serán útiles: library(gitcreds) gitcreds_set() library(credentials) set_github_pat() Para eliminar credenciales utiliza la función credentials::git_credential_forget() 2.9.1 Actividad Ejecuta los códigos y genera tu PAT, recuerda no perderlo! 2.10 Conectando RStudio con Git y Github. Para lo que sigue a continuación, deberías tener esto: Tener una cuenta en GitHub R y RStudio actualizados Git instalado Saber que desde la terminal puedes hacer push y pull 2.11 GitHub primero, RStudio después… Crea un repositorio en GitHub: mi_repositorio > Public > YES initialize this repository with a README > clicken el gran botón verde “Create repository” En RStudio crea un nuevo proyecto: File > New Project > Version Control > Git. Ahi pega el URL del repositorio https://github.com/mi_usuario/mi_repositorio.git. Da click en Create Project. Esto nos generará los siguientes elementos: Un directorio nuevo Un repositorio Git enlazado a al repositorio de GitHub Un proyecto en RStudio Con este procedimiento ya no es necesario preocuparse por configurar controles remotos Git y rastrear ramas en la línea de comandos. 2.11.1 Actividad Genera un repositorio con el nombre que desees. Y conéctalo a RStudio. Cerciorate de que el archivo README se encuentre en tu nueva carpeta. Usa la función usethis::use_r(\"titulo_de_un_script\") y observa lo que sucede. PAUSA ¿Cómo comento y doy push/pull desde RStudio? 2.11.2 Comentar, pull y push Con la flecha azul podemos hacer pull (RECUERDA HACERLO ANTES DE HACER UN PUSH), y con la flecha verde un push. Para poder comentar y hacer push debemos marcar con una flechita mediante un click en las pequeñas cajas blancas de la columna Staged, damoc click en commit lo cual no abre la siguiente ventana. Volvemos a dar click en commit, y finalizamos con push (flecha verde). 2.12 Rmarkdown en GitHub Creemos un Rmakrdown y subámoslo a GitHub Ahora hay que agregarlo al repositorio (add), stage and commit. Subieron el hmlt? Qué tal se ve? No se ve como queremos, verdad? Para eso necesitamos recuperar el .md. El .md es un resultado intermedio de crear el html desde Rmd. Tenemos que cambiar el header para esto --- title: "RmarkwondTest" output: html_document: keep_md: true --- 2.12.1 Actividad Usa el código dir.create(\"mis_imagenes\") en la consola de tu sesión de RStudio (la que está vinculada a tu repositorio). Ejecuta el siguiente código quitando los #: install.packages("MASS") library (MASS) data(MASS::cats) # pdf("mis_imagenes/cats_plot.pdf") ggplot(cats, aes(x = Sex)) + geom_bar(fill = "orange", color = "black") + theme_classic() + xlab("Sexo") + ylab("Número de Gatos") + ggtitle("Gatos") # dev.off() Comenta y da push a los cambios que realizaste en el repositorio. 2.13 RStudio primero y GitHub también Usa uno de los proyectos que hayas generado en las sesiones anteriores, PERO, que no esté enlazado a GitHub. Ahora veremos como conectar un proyecto de R existente con GitHub. Realiza los pasos que hicimos en GitHub primero, RStudio después pero asegurate de crear un repositorio con un nuevo nombre. Y LISTO!! usa un simple ctrl + c, ó mv ó click derecho + copiar ó el método que prefieras para mover o copiar archivos. Copia los archivos de tu antigüo proyecto al proyecto nuevo. Solo haz commit y push y listo, lo que tenía en tu antigüo proyecto ya está enlazado a GitHub. 2.14 Proyecto existente, GitHub al final Supongamos que tenemos un proyecto de R existente en algún lugar de nuestra computadora. NOTA: Para generar proyecto de RStudio desde la consola puedes utilizar el siguiente código: usethis::create_project() O en RStudio con File > New Project > Existing Directory Si su proyecto ya es un proyecto de RStudio, ejecútelo. ¿Ya es un repositorio de Git? La presencia del panel de Git debería alertarlo. Si es así, ha terminado. Sino este es el primer camino a seguir: Con el páquete usethis usa la función usethis::use_git En RStudio ve a Tools > Project Options > Git/SVN. Dentro de Version control system, selecciona Git. Y da click a “Yes” cuando aparezca “Confirm New Git Repository?”. Si usaste RStudio o usethis, el proyecto debería reiniciarse en RStudio. Hazlo tu mismo si hizo git init. RStudio ahora debería tener un panel Git. 2.14.1 Breviario cultural con los PATs Si usas el paquete usethis Y has configurado un token de acceso personal (PAT) de GitHub has esto en R: usethis::use_github() Esto creará un nuevo repositorio en GitHub, lo agregará como un control remoto, configurará una rama de seguimiento y lo abrirá en su navegador. Lea la ayuda de use_github() para conocer sus argumentos y consejos sobre cómo configurar una PAT. Esto es extremadamente útil para una variedad de flujos de trabajo que llaman a la API de GitHub. Considere configurar esto si usa usethis, devtools o gh con regularidad. Volviendo al tema de Proyecto existente, GitHub al final. Otra opción que se puede hacer para conectar un proyecto existen a GitHub es ir a hacer un repositorio a GitHub PERO ten en cuenta los siguientes cambios: Elije un nombre de repositorio; probablemente debería coincidir con el nombre de su proyecto y directorio local. NO inicialice este repositorio con un archivo README. Todo lo demás es igual a los pasos que hacíamos en GitHub primero, RStudio después… Ahora ve a tu proyecto de RStudio, has clic en los “dos cuadros de color púrpura y un cuadrado blanco” en el panel de Git. Has clic en “Agregar control remoto”. Pegue la URL aquí y elija un nombre remoto, casi con certeza el origin. Ahora “ADD”. Pasado esto deberiamos volver en el cuadro de diálogo “New Branch”. Ingresa “master” como el nombre de la rama y asegúrate de que la opción “Sync branch with remote” esté marcada. Haz clic en “Create”. En el siguiente cuadro de diálogo elije “overwrite”. Ahora solo haz commit/pull/push y cérciorate que FUNCIONE!! 2.15 Git basics: commands Fetch Commits git fetch Create and Switch to a branch git branch [branch-name] git checkout [branch-name] 2.16 Merge conflics A veces, no tan a veces también, las cosas no salen bien a la primera Merging (Fusionar) es una de esas cosas Cuando bajamos un cambio o fusionamos branches esto puede pasar. Primera regla: NO ENTRAR EN PANICO!!! Revisen el status del repositorio. Qué archivo tiene conflicto? 2.17 Merge conflics Abran ese archivo y busquen los problemas de merge. Es fácil, se ven así: <<<<<<< HEAD:index.html <div id="footer">contact : email.support@github.com</div> ======= <div id="footer"> please contact us at support@github.com </div> >>>>>>> issue-5:index.html Editen esa sección, dejen una versión final. Hagan commit y push Si entran en pánico? Aborten la misión! git merge --abort t 2.18 En resumen ¡QUE LA FUERZA TE ACOMPAÑE! "],["solución-de-problemas-con-las-versiones-de-paquetes-de-rstudio.html", "3 Solución de problemas con las versiones de paquetes de Rstudio 3.1 Diapositivas", " 3 Solución de problemas con las versiones de paquetes de Rstudio Yalbi Balderas 28 de octubre de 2024 3.1 Diapositivas "],["creando-la-infraestructura-de-un-paquete.html", "4 Creando la infraestructura de un paquete 4.1 Diapositivas 4.2 Los primeros pasos 4.3 Checks 4.4 Modificando el archivo DESCRIPTION 4.5 Modificando el archivo NEWS", " 4 Creando la infraestructura de un paquete Joselyn Cristina Chávez Fuentes 29 de octubre de 2024 4.1 Diapositivas 4.2 Los primeros pasos Revisar si podemos usar el nombre del paquete available::available("mipaquete") Crear la estructura inicial del paquete usethis::create_package("mipaquete") Podemos agregar la estructura de biocthis biocthis::use_bioc_pkg_templates() Pedir que Git ignore el archivo .Rproj usethis::use_git_ignore("*.Rproj") Crear el respositorio de GitHub usethis::use_github() Crear el archivo Description estilo Bioconductor biocthis::use_bioc_description() Crear el archivo README estilo Bioconductor biocthis::use_bioc_readme_rmd() devtools::build_readme() Recuerda guardar los cambios, hacer commit y push. Crear el archivo NEWS estilo Bioconductor biocthis::use_bioc_news_md() Crear los archivos de ayuda para usuarios y contribuidores biocthis::use_bioc_coc() usethis::use_tidy_contributing() biocthis::use_bioc_support() biocthis::use_bioc_issue_template() biocthis::use_bioc_citation() 4.3 Checks 4.3.1 BiocCheck BiocManager::install("BiocCheck") BiocCheck::BiocCheck() Algunas reglas de BiocCheck: Utilizar el símbolo <- en lugar de = para definir funciones y variables. Utilizar TRUE y FALSE en lugar de T y F. Indentar el código usando 4 espacios. Las líneas de código y documentación no deben ser mayores a 80 caracteres. Las funciones deben tener 50 líneas de código o menos. El paquete debe contener al menos una viñeta. Al menos 80% de las funciones deben tener ejemplos reproducibles. Las dependencias deben ser declaradas en el archivo DESCRIPTION. El paquete debe tener al menos un biocView. El tamaño del paquete no debe ser mayor 5Mb. El maintainer debe estar suscrito a la lista de correo de Bioconductor. El maintainer debe agregar su paquete en los tags de Bioconductor. 4.3.2 rcmdcheck install.packages("rcmdcheck") rcmdcheck::rcmdcheck() Algunas reglas de rcmdcheck: El paquete debe ser instalable. Los ejemplos de las funciones deben ser reproducibles. Las viñetas deben ser reproducibles. Todas las unidades de prueba deben pasar sin errores. El archivo DESCRIPTON debe tener el formato adecuado. 4.4 Modificando el archivo DESCRIPTION Paquete Este es el nombre del paquete. El nombre del repositorio y el nombre del paquete en la descripción deben coincidir (incluyendo mayúsculas y minúsculas). Título Este es un título breve pero descriptivo para el paquete. Versión Todos los paquetes de Bioconductor utilizan un esquema de versión x.y.z. Cuando se envía por primera vez a Bioconductor, un paquete debe tener la versión 0.99.0. Se aplican las siguientes reglas: x es normalmente 0 para paquetes que aún no han sido liberados. y es par para paquetes liberados, e impar para paquetes en desarrollo. Generalmente, no se debe aumentar este número en el pre-release. z se incrementa siempre que se realizan cambios en el paquete. Descripción La descripción debe ser una visión general relativamente breve pero detallada de lo que implica la funcionalidad del paquete. Debe ser de al menos tres oraciones completas. Autores Se requiere una designación de maintainer (cre) con una dirección de correo electrónico que se mantenga activamente. Esta dirección de correo se utilizará para el contacto con respecto a cualquier problema que surja con el paquete en el futuro. Idealmente, se debe incluir el ORCiD por lo menos del maintainer. person("Lori", "Shepherd", email = Lori.Shepherd@roswellpark.org, role = c("cre", "aut"), comment = c(ORCID = "0000-0002-5910-4010")) Sólo debe figurar una persona como responsable para garantizar un único punto de contacto. Esta persona tendrá acceso al repositorio git en git.bioconductor.org. El acceso a Commit puede ser dado a otros desarrolladores por solicitud en la lista de correo bioc-devel. Otra opción es añadir colaboradores al repositorio de GitHub. Este enfoque permite el desarrollo por muchos pero restringe el acceso a git.bioconductor.org. Licencia El campo de licencia debe referirse preferentemente a una licencia estándar no restrictiva. Las licencias que restringen el uso, por ejemplo, a investigadores académicos o sin fines de lucro, no son adecuadas para Bioconductor. Los paquetes de bioconductor básico suelen estar licenciados bajo Artistic-2.0. El paquete debe contener sólo código que pueda ser redistribuido de acuerdo con la licencia del paquete. LazyData Para paquetes que incluyen datos, se recomienda NO incluir LazyData: TRUE. Incluirlo en ese caso, ralentiza la carga de paquetes con datos grandes. Dependencias Todos los paquetes deben estar disponibles a través de biocViews o CRAN de Bioconductor; el uso del campo Remotes: no es soportado, por lo tanto las dependencias sólo disponibles en otros repositorios (e.g. GitHub) no están permitidas. Un paquete puede ser listado sólo una vez entre Depends, Imports, Suggests, o Enhances: Imports: es para paquetes que proporcionan funciones, métodos o clases que se usan dentro del código del paquete. La mayoría de los paquetes están listados aquí. Depends: es para paquetes que proporcionan funcionalidad esencial para los usuarios del paquete, por ejemplo, el paquete GenomicRanges se enumera en el campo Depends: de GenomicAlignments. Es poco común que más de tres paquetes aparezcan como Depends:. Suggests: es para paquetes usados en viñetas, ejemplos y código condicional. Comúnmente, los paquetes de anotaciones y experimentos (por ejemplo, TxDb*) usados en viñetas y código de ejemplo se incluyen en este campo, evitando así una descarga costosa. Enhances: es para paquetes como parallel que mejoran el rendimiento del paquete, pero no son estrictamente necesarios para su funcionalidad. En el caso de que se requiera una función única externa para el código del paquete, la disponibilidad y el uso del paquete pueden hacerse a través de: if (!requireNamespace('suggPKG', quietly = TRUE)) stop("Install 'suggPKG' to use this function.") suggPKG::function() biocViews Este campo es obligatorio! Especifica al menos dos biocViews. Los términos deben provenir del mismo tipo de paquete (Software, AnnotationData, ExperimentData o Workflow). Puedes encontrar más información en: https://www.bioconductor.org/packages/release/BiocViews.html BugReports Se recomienda apuntar hacia el repositorio de GitHub, por ejemplo: https://github.com/usuario/paquete/issues. URL Se incluyen los links importantes, como el repositorio con el código fuente y el sitio web de pkgdown si se cuenta con él. Por ejemplo: https://github.com/usuario/paquete https://usuario.github.io/paquete 4.5 Modificando el archivo NEWS Secciones: New: Nuevas funciones. Bug fixes: Reparación de errores en las funciones previas o en la documentación. Changes: Cambios en el código de las funciones, incluyendo modificaciones en los argumentos. Breaking changes: Cambios importantes que romperían el código en caso de no ser atendidos, por ejemplo el uso de funciones o argumentos antiguos. Enhancements: Mejoras a las funciones existentes. Formato El archivo NEWS se ve similar a este ejemplo: "],["creando-mis-primeras-funciones.html", "5 Creando mis primeras funciones 5.1 Diapositivas 5.2 Nombre de la función 5.3 Estructura de la función 5.4 ¡Tu turno! 5.5 Argumentos 5.6 ¡Tu turno! 5.7 Indentación 5.8 Uso de espacios 5.9 Comentarios 5.10 Mensajes para el usuario", " 5 Creando mis primeras funciones Instructora: Joselyn Chávez 29 de octubre de 2024 5.1 Diapositivas 5.2 Nombre de la función Cortos pero descriptivos Recomendable: Separar las palabras con _ Establecer una palabra en común al inicio para familias de funciones use_bioc_citation() # es mejor que citation() bioc_cit() usebioccitation() useBiocCitation() use.bioc.citation() 5.3 Estructura de la función Indentar las líneas de código. Agregar comentarios para separar/describir las secciones importantes. Usar la sintaxis paquete::funcion() cuando hacemos llamado a funciones de otros paquetes. usethis::use_r("subset_heatmap") Generemos el código de manera regular. Simulemos una matriz con diversas mediciones y grafiquemos los datos en un heatmap. mi_matriz <- matrix(rnorm(100), nrow = 10) rownames(mi_matriz) <- paste0("medicion_",letters[1:10]) colnames(mi_matriz) <- paste0("grupo_",letters[1:10]) library(ComplexHeatmap) Heatmap(mi_matriz, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) Escribamos una función que permita seleccionar algunos grupos de interés y genere el heatmap. No la mejor opción: library(ComplexHeatmap) subset_heatmap <- function(x,mediciones=NULL,grupos=NULL) { x_subset <- x[mediciones,grupos] Heatmap(mi_matriz, cluster_columns=FALSE, heatmap_legend_param=list(title="valores")) } Un poco mejor: library(ComplexHeatmap) subset_heatmap <- function(x, mediciones = NULL, grupos = NULL) { x_subset <- x[mediciones,grupos] Heatmap(mi_matriz, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) } Mucho mejor: subset_heatmap <- function(x, mediciones = NULL, grupos = NULL) { # subset matrix x_subset <- x[mediciones, grupos] # plot heatmap ComplexHeatmap::Heatmap( x_subset, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) } Ejecutemos la función: subset_heatmap( mi_matriz, mediciones = c("medicion_a", "medicion_b", "medicion_c"), grupos = c("grupo_d","grupo_e","grupo_f")) 5.4 ¡Tu turno! Escribe una función que: Filtre la matriz y mantenga sólo los valores por encima de cierto valor. Genere el heatmap filtrado. Recuerda seguir las recomendaciones para escribir funciones. 5.5 Argumentos Los argumentos deben tener un nombre descriptivo y bien documentado. No la mejor opción: subset_heatmap <- function(x, m, g) { # subset matrix x_subset <- x[mediciones, grupos] } Una mejor opción: subset_heatmap <- function(x, mediciones, grupos) { # subset matrix x_subset <- x[mediciones, grupos] # plot heatmap ComplexHeatmap::Heatmap( x_subset, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) } Los argumentos generalmente deben tener valores default. subset_heatmap <- function(x, mediciones = NULL, grupos = NULL, return_plot = TRUE) { # subset matrix x_subset <- x[mediciones, grupos] # plot heatmap ComplexHeatmap::Heatmap( x_subset, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) } Evalúa la validez de los argumentos subset_heatmap <- function(x, mediciones = NULL, grupos = NULL, return_plot = TRUE) { stopifnot(is.matrix(x)) # subset matrix x_subset <- x[mediciones, grupos] # plot heatmap heatmap <- ComplexHeatmap::Heatmap( x_subset, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) if(return_plot == TRUE) {return(heatmap)} } Este código no debe funcionar: subset_heatmap( as.data.frame(mi_matriz), mediciones = c("medicion_a", "medicion_b", "medicion_c"), grupos = c("grupo_d","grupo_e","grupo_f")) Nota: Usa las funciones is() para evaluar la clase de los objects, no uses class() == ni class() !=. Proporciona pistas para entender los errores. subset_heatmap <- function(x, mediciones = NULL, grupos = NULL, return_plot = TRUE) { if(!is.matrix(x)) {stop("x debe ser una matriz")} # subset matrix x_subset <- x[mediciones, grupos] # plot heatmap heatmap <- ComplexHeatmap::Heatmap( x_subset, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) if(return_plot == TRUE) {return(heatmap)} } Este código debe dar un error, más un mensaje de ayuda. subset_heatmap( as.data.frame(mi_matriz), mediciones = c("medicion_a", "medicion_b", "medicion_c"), grupos = c("grupo_d","grupo_e","grupo_f")) 5.6 ¡Tu turno! Agrega pasos de evaluación para los otros argumentos de la función. Incluye mensajes de ayuda cuando el formato de los argumentos no es el esperado. 5.7 Indentación Usa 4 espacios para indentar, evita los tabs. No uses líneas de más de 80 caracteres. 5.8 Uso de espacios Usa un espacio después de la coma: a, b, c. Usa espacio después de operadores binarios: a == b. 5.9 Comentarios Usa “##” para comenzar las líneas de comentarios. Los comentarios deben usarse como notas y documentación solamente. No dejes código comentado que no se va a usar. Evita los TODO’s comentados cuando vayas a publicar el paquete. 5.10 Mensajes para el usuario Si deseas imprimir mensajes para el usuario, como el progreso del análisis en la función o advertir sobre los valores de los argumentos, evita el uso de cat(), mejor usa: message() comunica mensajes diagnóstico, como el progreso de la función. message("Paso 1: completo") ## Paso 1: completo warning() comunica situaciones inusuales que pueden ser manejadas por tu código. warning("El número de elementos esperados es mayor a uno, se tomará el primer valor del vector") ## Warning: El número de elementos esperados es mayor a uno, se tomará el primer ## valor del vector stop() indica una condición errónea. stop("x debe ser numérico") "],["documentación-de-funciones.html", "6 Documentación de funciones 6.1 Diapositivas 6.2 Links importantes: 6.3 ¿Qué es la documentación de una función y por qué es importante? 6.4 Generacion de la documentacion con ayuda del paquete roxygen 6.5 Antes de empezar…✏️ 6.6 Generacion de un bloque de documentacion con ayuda del paquete roxygen. 6.7 Otros campos de la documentacion.", " 6 Documentación de funciones Instructor/a: 29 de octubre de 2024 6.1 Diapositivas 6.2 Links importantes: Esta lección está basada en algunos manuales sobre documentación: Una viñeta del cranproject El manual de paqutes de r En esta viñeta de cranproject 6.3 ¿Qué es la documentación de una función y por qué es importante? 🙇️ Es la información complementaria que el desarrollador escribe sobre una función y que se accede con ? seguido el nombre de una función actual de un paquete p.ej. ?unafuncion. 📁 La documentación se almacena como un archivo .Rd (“R documentation) en la carpeta man/. 🔎 La documentación usa una síntesis especial, que es distinta a la de r y que está ligeramente basada en LaTeX. 📄 Se puede renderizar como html, pdf o texto sin formato según se necesite. 6.4 Generacion de la documentacion con ayuda del paquete roxygen En un paquete de r y en cualquier ecosistema de devtools no editamos un documento .Rd manualmente. La documentación usa una síntesis parecida a LaTex que puede ser fácil de estropear. Por ventaja existen paquetes como roxigen2. Usar roxigen nos permite usar comentarios especiales sobre el inicio de la función, esto nos da un par de ventajas: ✅ La documentación y la función estarán en un mismo lugar, por lo que si editas la función será mas fácil recordar actualizar la documentcion también. 🎉 Puedes usar markdown en lugar de la síntesis especial para los archivos .Rd 6.5 Antes de empezar…✏️ Vamos a crear un función para nuestro paquete. Supongamos que para nuestro paquete necesitamos una función que calcule la moda. Esta es una forma sencilla de calcular la moda: getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } unique(serievector): Crea un vector que contiene únicamente los valores únicos de la serie de números serievector. match(serievector, uniqv): Encuentra la posición de cada valor de serievector en el vector único uniqv. tabulate(match(serievector, uniqv)): Cuenta cuántas veces aparece cada valor en la serie serievector. which.max(tabulate(match(serievector, uniqv))): Encuentra el índice del valor máximo en el vector de frecuencias. uniqv[which.max(tabulate(match(serievector, uniqv)))]: Devuelve el valor correspondiente al índice calculado, que es la moda. Creamos un ejemplo para ver que funcione: serie_numeros <- c(1, 2, 2, 2, 2, 3, 3, 4, 4, 4) resultado <- getmode(serie_numeros) print(resultado) ## [1] 2 Bien ahora si podemos podemos empezar a usar el paquete de roxygen para documentar nuestra función.. comencemos. 6.6 Generacion de un bloque de documentacion con ayuda del paquete roxygen. Podemos insertar un esqueleto de comentarios de roxygen para ver su síntesis. Colocamos el cursor en algún lugar de la definición de nuestra función y buscamos en la pestaña Código > Insertar Roxygen Skeleton. #' Title #' #' @param serievector #' #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Ahora ya tenemos un esqueleto de la documentación que nos da una ventaja para su creación. Las líneas de comentarios de Roxygen siempre comienzan con #', el habitual para un comentario # mas un ' Veamos los comentarios de uno por uno: Empezamos con el titulo. Se sugiere poner en el titulo las acciones principales que realiza la función en este caso por ejemplo podremos usar: #' @title Encontrar la Moda de una Serie de Números #' #' @param serievector #' #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Muy bien!. El siguiente comentario que podemos ver es @param. Pero antes, vamos a añadir una pequeña descripción de la función y como usarla. Primero añadimos la pequeña descripción con @description: #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' @param serievector #' #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Ahora vamos a añadir el comentario @usage que nos indica como puedes mandar a llamar la función. #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' @usage getmode(serievector) #' @param serievector #' #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Ahora si vamos a añadir una pequeña descripción de nuestros argumentos. Si tuviéramos mas de un parámetro en nuestra función podríamos llamar las veces que sea necesario el comentario de parámetro con @param, veamoslo. Ahora añadimos una pequeña descripción a nuestro único parámetro que es serievector: #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' #' @param serievector Es una serie de números en forma de un vector simple de r. #' #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Después, podemos añadir un comentario de detalles de la función con @details. Por ejemplo, si en nuestro ejemplo tuviéramos ciertos valores no numéricos en nuestro vector de entrada, por ejemplo letras, ¿nuestra función podría leerlas?, o si le diéramos un vector sin caracteres ¿que pasaría?, veamos: serie_numeros <- c(0,2,2,"d", "d","d") resultado <- getmode(serie_numeros) print(resultado) ## [1] "d" serie_numeros <- c() resultado <- getmode(serie_numeros) print(resultado) ## NULL Entonces, esto es un ejemplo de lo que podríamos poner en el comentario @details. Hagamoslo describiendo esto. En details podemos agregar detalles un poco mas específicos que en la descripción de la función #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' #' @param serievector Es una serie de números en forma de un vector simple de r. #' #' @details si tu vector de entrada puede ser interpretado alternando números y #' letras escritas entre comillas "". Si un vector esta vacío, dará como #' resultado un NULL. #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Ya casi terminamos de llenar nuestra documentación, pero antes vamos a ver algunos otros arrobas que pudieran ser importantes. El @import e @importfrom importan funciones de otros paquetes en caso de que las necesitemos, el primero importa todas las funciones del paquete que que solicites, y el segundo importa solo algunas funciones especificas. En nuestra función no necesitamos llamar funciones de otros paquetes puesto que todas las que usamos están en r base. Pero imaginemos que tu función, por ejemplo necesita leer un archivo .tsv con la función read_tsv del paquete readr y después reconvertir la tabla resultante en un archivo con write.table pero solo necesitas esa función del paquete utils, entonces haríamos: #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' #' @param serievector Es una serie de números en forma de un vector simple de r. #' #' @details si tu vector de entrada puede ser interpretado alternando números y #' letras escritas entre comillas "". Si un vector esta vacío, dará como #' resultado un NULL. #' @import readr #' @importFrom utils write.table #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Así podemos importar las funciones que necesitemos de otros paquetes y se incluirán en la documentación y se cargaran automáticamente al cargar tu paquete. :eyes::exclamation: Para un correcto funcionamiento de tu paquete y al estar los paquetes necesarios incluidos en la documentación, no será necesario llamarlos de la forma ``library(“apackage”)```. Entonces llegamos a la sección @return. Esta descripción le servirá al usuario del paquete para conocer cual sera el resultado de la función, que puede ser un archivo, una tabla, un numero,etc. Entonces retomando la función que usamos al inicio, vamos a escribir una descripción corta del resultado de la función getmode(). #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' #' @param serievector Es una serie de números en forma de un vector simple de r. #' #' @details si tu vector de entrada puede ser interpretado alternando números y #' letras escritas entre comillas "". Si un vector esta vacío, dará como #' resultado un NULL. #' @return El carácter con mas frecuencia de el vector de entrada. #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Por ultimo tenemos @export que es el encargado de renderizar la documentación para que pueda aparecer en la ventana de Ayuda (abajo a la derecha). esta opción la dejamos para funciones principales que el usuario va a utilizar, aunque puede que existan alguna funciones internas que no queremos que el usuario vea. En ese caso vamos a usar @noRd en lugar de este. Antes de terminar podemos incluir ejemplos de como funciona nuestra función para un mejor entendimiento, pongamos los que ya realizamos: #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' #' @param serievector Es una serie de números en forma de un vector simple de r. #' #' @details si tu vector de entrada puede ser interpretado alternando números y #' letras escritas entre comillas "". Si un vector esta vacío, dará como #' resultado un NULL. #' @return El carácter con mas frecuencia de el vector de entrada. #' @export #' #' @examples #' serie_números <- c(1, 2, 2, 2, 2, 3, 3, 4, 4, 4) #' resultado <- getmode(serie_números) #' print(resultado) getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Ahora si, una vez teniendo listo el bloque de comentarios para la documentación, vamos a ejecutar devtools::load_all() para cargar nuestras funciones y hecho esto, ejecutamos devtools::document() o presionamos Ctrl/Cmd + Shift + D para convertir los comentarios en archivo .Rd y poder renderizarlo. 💯 Listo, tenemos nuestra documentación para una función. Así se verá cuando el paquete esté terminado. 6.7 Otros campos de la documentacion. @seealso para indicar funciones relacionadas y facilitar la búsqueda de funciones. @references añade algunas referencias. @author para especificar el autor de la función. "],["diseño-de-pruebas.html", "7 Diseño de pruebas 7.1 Diapositivas", " 7 Diseño de pruebas Mirna Vázquez Rosas-Landa 30 de octubre de 2024 7.1 Diapositivas "],["creación-de-viñetas.html", "8 Creación de viñetas 8.1 ¿Qué es una viñeta/vignette? 📝✨ 8.2 Características de una vignette 🌟 8.3 ¿Cómo consultar la viñeta de un paquete? ❓🔍 8.4 ¿Cómo crear una viñeta? ❓🔍 8.5 ¿Cómo guardar y actualizar la viñeta? 🔄💻 8.6 Veamos un ejemplo 🔍👨‍💻 8.7 Actividad", " 8 Creación de viñetas José Antonio Ovando Ricárdez 30 de octubre de 2024 8.1 ¿Qué es una viñeta/vignette? 📝✨ Es una guía extendida sobre cómo funciona el paquete. Es recomendable que muestre cómo utilizar las funciones del paquete, aplicado en un flujo de trabajo; por ejemplo: el análisis estadístico de una encuesta 📊 o el análisis de expresión diferencial de genes. Podemos estructurarlo como haríamos con la escritura de un capítulo de libro o de un artículo científico: debe mostrar el problema a resolver y la metodología paso a paso sobre cómo el paquete lo resuelve. Si el paquete contiene funciones que se complementan entre sí para alcanzar un fin específico, entonces debes mostrar su uso de forma compartamentalizada. 8.2 Características de una vignette 🌟 Debe mostrar un flujo de análisis explotando el potencial de tu paquete 📊🚀. Implementa tantas funciones de tu paquete como sea posible, pero no es necesario que incluya todas 🛠️✨. Los datos a usar deben ser pequeños o fáciles de acceder 📂🔍. Puedes crear múltiples viñetas para mostrar diferentes casos de análisis y cubrir una mayor cantidad de funciones 📝📚. 8.3 ¿Cómo consultar la viñeta de un paquete? ❓🔍 browseVignettes(package = "ggplot2") 8.4 ¿Cómo crear una viñeta? ❓🔍 biocthis::use_bioc_vignette("mi_vignette") Esta función tendrá tres efectos ✨: Generar el directorio vignettes en caso que no exista 📂🔧. Agregar dependencias en el archivo DESCRIPTION (por ejemplo, knitr necesario para construir viñetas dentro del paquete) 📄📦. Abrir un template en formato .Rmd para comenzar a escribir la viñeta, que se va a guardar en vignettes/mi_vignette.Rmd 📝💾. 8.5 ¿Cómo guardar y actualizar la viñeta? 🔄💻 Una vez que se ha generado el archivo vignettes/mi_vignette.Rmd, se hacen las modificaciones necesarias. Puedes usar el comando: edit_file("vignettes/mi_vignette.Rmd") Para guardar los cambios, debes hacer clic en el botón Knit o utiliza la combinación de teclas Ctrl/Cmd-Shift-K 💾✨. 8.6 Veamos un ejemplo 🔍👨‍💻 Busca la viñeta del paquete regutools en la página de Bioconductor 🌐: Viñeta de regutools en Bioconductor 📦📄 8.7 Actividad 8.7.1 Ejercicio 1: Identificación de viñetas en paquetes de interés en Bioconductor 📚🔍 En equipos selecciona dos paquetes almacenados en Bioconductor que sean de tu interés y responde las siguientes preguntas: ¿Ambos paquetes incluyen viñetas? 📝❓ ¿Qué aspectos de la viñeta del paquete A versus el paquete B te llaman más la atención? 🔍🤔 ¿Consideras que alguna viñeta está mejor desarrollada que la otra? Explica por qué 💭📊. 8.7.2 Ejercicio 2: Creación de viñetas en R 🛠️📄 Pasos: 1. Cargar los paquetes necesarios library(usethis) library(biocthis) Crear un nuevo paquete de R (si no tienes uno ya creado) # usethis::create_package("CDSB2024") Configurar el paquete para Bioconductor Ejecuta el siguiente comando para configurar el paquete con las mejores prácticas de Bioconductor: # biocthis::use_bioc_pkg_templates() Esto agregará varios archivos de configuración y plantillas útiles para trabajar con Bioconductor. Crear una viñeta con biocthis Ejecuta el siguiente comando para agregar una viñeta en formato R Markdown. Cambia “mi_vignette” por el título de la viñeta que prefieran. # usethis::use_vignette("mi_vignette_usethis") # biocthis::use_bioc_vignette("mi_vignette_biocthis") Esto creará un archivo R Markdown en la carpeta vignettes/ dentro del paquete. Editar la viñeta Abre el archivo creado en vignettes .Rmd. Incluye contenido que describa una función del paquete. Abrir la viñeta en el navegador y renderiza el archivo .Rmd # browseVignettes("CDSB2024") 8.7.3 Preguntas de Reflexión 🤔💭 ¿Cuál es la ventaja de documentar ejemplos de uso en una viñeta? 📚✨ ¿Qué estructura consideras útil para presentar ejemplos en una viñeta? 🏗️🔍 ¿Cómo aplicarías esta clase en tu proyecto colaborativo? 🤝📈 "],["compilación-e-instalación-de-paquetes.html", "9 Compilación e instalación de paquetes 9.1 Diapositivas 9.2 Metadatos de una paquetería 9.3 Licencias 9.4 Paqueterías de código fuente 9.5 ¿En dónde podemos encontrar el código fuente de un paquete? 9.6 Instalando la última versión en desarrollo 9.7 Instalando paquetes desde GitHub 9.8 Instalando un paquete local 9.9 Contribuyendo código", " 9 Compilación e instalación de paquetes Joselyn Cristina Chávez Fuentes 30 de octubre de 2024 9.1 Diapositivas 9.2 Metadatos de una paquetería Los metadatos de la paquetería se encuentran en el archivo DESCRIPTION. 9.2.1 Description El campo Description describe lo que hace tu paquetería. Suele ser extenso, si requieres escribir múltiples líneas, deben estar indentadas. Por ejemplo: # Description: Este paquete contiene todas las funciones generadas en el curso # de escritura de paqueterías en R. También contiene las funciones que cada # participante propuso para solucionar un problema relacionado con su trabajo. 9.2.2 Dependencias Las dependencias son las paqueterías que tu paquete necesita para funcionar. La lista de paquetes se escribe separada por comas y es recomendado que se escriban en orden alfabético. Existen tres tipos: Imports: Son paquetes que deben instalarse para que tu paquete funcione y por tanto se van a instalar en el momento que instales el paquete. Internamente existe una función que evalúa si los paquetes se encuentran instalados o no y solamente instala los faltantes. Esta dependencia hace solamente la instalación pero no ejecuta library(), por lo que los paquetes requeridos deberán ser cargados dentro de la escritura del paquete. Depends: Son paquetes que obligatoriamente deben estar para que tu paquetería funcione pero no se instalarán de manera automática. Aquí también se indica la versión de R requerida para el funcionamiento del paquete. Los paquetes que se listen aquí se van a cargar al mismo tiempo que se ejecute el library(mipaquete). Suggests: Se refiere a los paquetes que tu paquete puede utilizar y aprovechar para ser más poderoso en el análsis pero no los necesita para funcionar. Por ejemplo, paquetes que contienen sets de datos para hacer pruebas o análisis de práctica. Nota Importante Se recomienda listar los paquetes necesarios para el funcionamiento de nuestro paquete en Imports porque cuando se ponen en Depends se cargan los paquetes completos y probablemente solamente requerimos una o dos funciones. Cargar demasiados paquetes completos, sin ser necesario, sólo hace que nuestro paquete se vuelva pesado y lento. Es mejor llamar particularmente a las funciones usando la sintaxis explícita: Biostrings::translate() 9.2.3 ¿Cómo añadir dependencias? Usando usethis: usethis::use_package("ggplot2", type = "Imports") Editando manualmente el archivo DESCRIPTION. 9.3 Licencias Establece quién puede usar tu paquete. Existen diversas licencias pero hablaremos sobre las 3 más comunes: MIT (Massachusetts Institute of Technology): es simple y permisiva. Permite a cualquier persona usar y distribuir tu paquetería con una sola restricción: la distribución debe incluir la declaración de licencia del autor. Existe un texto base al cual se le pueden añadir cláusulas o excepciones. Este es un ejemplo: GPL-2 (General Public License): Permite usar y distribuir tu código con la condición que si se genera una versión modificada de tu código, su distribución debe ser también bajo esta licencia. Aunque está enfocada a la distribución de código abierto, permite dejar en claro quién es el autor del material y evitar la apropiación del código por terceros. Un ejemplo de la aplicación de esta licencia es el desarrollo de Linux. CCO: Esta licencia implica que cedes todos los derechos y el código puede ser utilizado con cualquier fin, excepto fines comerciales. Es el más utilizado en los paquetes. Concede el derecho a utilizar y distribuir el material sin requerir el permiso del autor. 9.4 Paqueterías de código fuente En algunas ocasiones necesitaremos instalar paquetes que no se encuentran compilados, por ejemplo: Paquetes en desarrollo de CRAN o Bioconductor. Versiones anteriores de paquetes de CRAN o Bioconductor. Paquetes que no se encuentran depositados en CRAN o Bioconductor, sino en repositorios personales como GitHub. Paquetes que estás desarrollando de forma local. El paquete remotes será de gran utilidad. Regularmente, los paquetes que instalamos desde algún repositorio como CRAN o Bioconductor son paquetes binarios que ya se encuentran compilados previamente. Existen algunas funciones que nos permiten instalar paquetes desde código fuente. Anteriormente, se solían utilizar las funciones install_* del paquete devtools; sin embargo, recientemente se creó el paquete remotes que contiene las mismas funciones pero está específicamente diseñado para ayudarnos a trabajar con paquetes desde código fuente. 9.5 ¿En dónde podemos encontrar el código fuente de un paquete? Si el paquete se encuentra disponible en CRAN, puedes encontrar el link al código fuente en la sección URL. Si el paquete se encuentra disponible en Bioconductor, puedes encontrar el link al código fuente en la sección Package Archives Si el paquete se encuentra en GitHub o GitLab, necesitarás conocer el nombre de usuario y el nombre del paquete. 9.6 Instalando la última versión en desarrollo Si el paquete se encuentra depositado en CRAN podemos usar la función remotes::install_dev("pkgname") Por ejemplo, para instalar la versión en desarrollo de dplyr usaremos el comando remotes::install_dev("dplyr") Si el paquete se encuentra en Bioconductor usaremos la siguiente función: remotes::install_bioc("pkgname") Por ejemplo, para instalar la versión en desarrollo de regutools, el paquete desarrollado por miembros de la CDSB, usaremos el comando remotes::install_bioc("regutools") 9.7 Instalando paquetes desde GitHub Para poder instalar un paquete desde GitHub necesitaremos conocer el usuario del creador y el nombre del repositorio. remotes::install_github("usuario/repositorio") Por ejemplo, para instalar el paquete starwarssay desarrollado por Erick Cuevas (Erickcufe) utilizaremos el siguiente comando: remotes::install_github("Erickcufe/starwarssay") Independientemente de si el paquete se encuentra en CRAN, Bioconductor, o ninguno de ellos, podemos instalar un paquete depositado en una cuenta de GitHub. Para poder instalar un paquete desde GitHub necesitaremos conocer el usuario del creador y el nombre del repositorio donde se encuentra depositado el paquete. Con esta información usaremos la siguiente función: 9.8 Instalando un paquete local Paso 1: Abre el proyecto del paquete que estás desarrollando. Paso opcional: Ejecuta la documentación si realizaste algún cambio. devtools::document() Paso 2: Construye el paquete: devtools::build() Paso 3: Instala el paquete desde tu proyecto actual: devtools::install() 9.9 Contribuyendo código Una ventaja de descargar el paquete de forma local es que puedes realizar cambios, probar que funciona de manera local y después contribuir (haciendo un pull-request). Usemos el paquete saludo Clona el repositorio en tu computadora. git clone https://github.com/ComunidadBioInfo/saludo.git Ahora puedes abrir el proyecto del paquete y agregar tu código. "],["creación-de-sitios-web-con-pkgdown.html", "10 Creación de sitios web con pkgdown 10.1 Diapositivas 10.2 Instalación 10.3 Configura el paquete para crear el sitio con pkgdown 10.4 Genera la estructura de pkgdown 10.5 Pre-visualiza el sitio de manera local 10.6 Personalizando el _pkgdown.yml 10.7 Las variables bslib 10.8 Layout 10.9 Accessibilidad 10.10 La página de inicio 10.11 La página de referencias 10.12 Articles 10.13 News 10.14 Publicando el sitio web", " 10 Creación de sitios web con pkgdown Joselyn Cristina Chávez Fuentes 31 de octubre de 2024 10.1 Diapositivas div.grey { background-color: #bfbfbf; } div.center { text-align:center; } 10.2 Instalación install.packages("pkgdown") 10.3 Configura el paquete para crear el sitio con pkgdown Este paso se ejecuta solamente una vez, dentro del proyecto del paquete. usethis::use_pkgdown_github_pages() Este paso genera las acciones automáticas de GitHub para renderizar el sitio. El archivo README.md será tu página de inicio, la documentación en man/ va a crear una sección de referencias, y las viñetas serán renderizadas como articles. 10.4 Genera la estructura de pkgdown Este paso se ejecuta solamente una vez. usethis::use_pkgdown() 10.5 Pre-visualiza el sitio de manera local Este paso lo puedes ejecutar para visualizar el sitio cada vez que hagas una modificación, antes de enviar los cambios a GitHub. pkgdown::build_site() 10.6 Personalizando el _pkgdown.yml 10.6.1 Metadatos URL Este es el link donde se va a renderizar el sitio, revisa que sea correcto y, de ser necesario, actualízalo. url: https://pkgdown.r-lib.org template Esta sección permite personalizar la apariencia general del sitio. template: bootstrap: 5 bootswatch: cerulean 10.6.2 Temas Light switch Puedes proporcionar un “light switch” para permitir a tus usuarios cambiar entre temas oscuros y claros configurando la opción de light-switch a true: template: light-switch: true Bootswatch themes La forma más fácil de cambiar toda la apariencia de tu sitio web es usar un tema de Bootswatch: template: bootstrap: 5 bootswatch: materia Puedes ver los temas disponibles en https://bootswatch.com/ Estos temas suelen no ser compatibles con el light switch, pero puedes intentar. Al cambiar el bootswatch theme necesitas renderizar el sitio para ver por completo los efectos del tema. build_site() Mientras estás experimentando, puedes acelerar las cosas simplemente reconstruyendo la página de inicio y el CSS ejecutando: build_home_index() init_site() y luego actualizando el navegador. Los bootswatch theme con barras de navegación altas (lux, pulse) también requieren que se modifique la variable pkgdown-nav-height. Debido a que los temas de bootswatch son proporcionados por el paquete bslib, se puede anidar el campo bootswatch debajo del campo bslib. template: bootstrap: 5 bslib: bootswatch: lux pkgdown-nav-height: 100px 10.7 Las variables bslib Hay tres variables clave que afectan al color: bg (fondo) determina el fondo de la página. fg (primer plano) determina el color del texto. primary establece el color del enlace y el color translúcido en la barra de navegación y la barra lateral. template: bootstrap: 5 bslib: bg: "#202123" fg: "#B8BCC2" primary: "#306cc9" También se pueden personalizar las fuentes predeterminadas utilizadas para la mayoría del texto (base_font), para los encabezados (heading_font) y para el código (code_font). La forma más fácil es proporcionar el nombre de una fuente de Google con la siguiente sintaxis: template: bootstrap: 5 bslib: base_font: {google: "Roboto"} heading_font: {google: "Roboto Slab"} code_font: {google: "JetBrains Mono"} 10.7.1 Syntax highlighting Los colores utilizados para el resaltado de sintaxis en bloques de código están controlados por la configuración theme: template: bootstrap: 5 theme: breeze-light Puedes elegir entre: a11y-dark, a11y-light, arrow-dark, arrow-light, atom-one-dark, atom-one-light, ayu-dark, ayu-light, ayu-mirage, breeze-dark, breeze-light, breezedark, dracula, espresso, github-dark, github-light, gruvbox-dark, gruvbox-light, haddock, kate, monochrome-dark, monochrome-light, monochrome, monokai, nord, oblivion, printing, pygments, radical, solarized-dark, solarized-light, solarized, tango, vim-dark, zenburn. 10.7.2 Navbar style Los campos bg y type de la barra de navegación controlan los colores del fondo y el primer plano respectivamente. Normalmente bg será light, dark, o primary: navbar: bg: primary 10.8 Layout Puedes personalizar el contenido de la barra de navegación, pie de página, utilizando los campos navbar y footer. Todos ellos utilizan una estructura similar que define por separado la estructura global y los componentes individuales. 10.8.1 Navbar Esta es la estructura default: navbar: structure: left: [intro, reference, articles, tutorials, news] right: [search, github, lightswitch] intro: “Get Started”, enlaza a una viñeta o artículo con el mismo nombre que el paquete. reference: si hay archivos . Rd. articles: si hay viñetas o artículos. tutorials: si hay algún tutorial. news: si existe NEWS.md. search: la barra de búsqueda. github: un enlace al repositorio de origen (con un icono), es determinado automáticamente a partir del archivo DESCRIPTION. lightswitch; un “interruptor de luz” para seleccionar el modo claro, modo oscuro o modo automático. Puedes utilizar el campo structure para reorganizar la barra de navegación: navbar: structure: left: [search] right: [reference, articles] Puedes usar la misma sintaxis para organizar el menú de artículos: navbar: components: articles: text: Articles menu: - text: Category A - text: Title A1 href: articles/a1.html - text: Title A2 href: articles/a2.html - text: ------- - text: "Category B" - text: Article B1 href: articles/b1.html 10.8.2 Footer Esta es la estructura por defecto:: footer: structure: left: developed_by right: built_with Que utiliza dos de los tres componentes incorporados: developed_by: una frase que describe a los principales autores del paquete. built_with: una frase que hace publicidad de la misma. package: el nombre del paquete. Puedes personalizar la organización del pie de página: footer: structure: left: pkgdown right: [developed_by, legal] components: legal: Provided without **any warranty**. 10.9 Accessibilidad Las configuraciones default de pkgdown tratan de hacer el sitio lo más accesible posible para todos, pero hay algunos puntos a tomar en cuenta: 10.9.1 Colores Si ajustas cualquier color del tema default, verifica que el contraste entre el fondo y el primer plano no haga difícil leer ningún texto. Puedes utilizar la herramienta de evaluación de accessibilidad en https://wave.webaim.org. El color default genera un contraste demasiado bajo contra el fondo gris pálido de la barra de navegación. Este color viene de la paleta “danger” de bootstrap, así que puedes arreglarlo sobreescribiendo esa variable en tu _pkgdown.yml: template: bootstrap: 5 bslib: danger: "#A6081A" Si utilizas entradas de barra de navegación personalizadas que sólo muestran un icono, asegúrate de utilizar también el campo aria-label para proporcionar una etiqueta accesible que describa el icono. cran: icon: fab fa-r-project href: https://cloud.r-project.org/package=pkgdown aria-label: View on CRAN 10.9.2 Imágenes Para hacer tu sitio completamente accessible, agrega una descripción del contenido de las imágenes en las viñetas usando el campo “fig.alt” de las opciones del chunk de R. 10.10 La página de inicio Los contenidos del home page son automáticamente generados desde el archivo index.md o el README.md. pkgdown les asigna diferentes prioridades, por lo que es possible tener contenidos diferentes en el repositorio de GitHub y la página de pkgdown si provees ambos archivos. La página de inicio también incluye una barra de contenidos con links importantes, como la guía de contribución, el código de conducta, etc. 10.11 La página de referencias pkgdown crea una página de referencia en reference/ para cada una de las funciones del paquete, basado en la documentación. pkgdown ejecuta todos los ejemplos de las funciones, insertando los resultados renderizados en los archivos HTML generados. Por defecto, pkgdown genera un índice de referencia que es sólo una lista de funciones ordenadas alfabéticamente. El índice es mucho más útil con la curación manual porque las funciones pueden agruparse y describirse en categorías. Cada entrada de referencia puede adoptar una de las tres formas siguientes: Un título, definido por los campos title y desc (descripción) opcionales. Un subtítulo, definido por los campos de subtítulo y desc (descripción) opcionales. Lista de temas definidos por un campo de contenido. Mientras editas el índice de referencias, puedes ejecuar la siguiente función para renderizar solamente el índice, lo que permite ver de forma rápida el efecto de los cambios sin tener que renderizar todo el sitio. pkgdown::build_reference_index() reference: - title: "Connecting to Spark" desc: > Functions for installing Spark components and managing connections to Spark contents: - spark_config - spark_connect - spark_disconnect - spark_install - spark_log 10.12 Articles pkgdown creará automáticamente todas las viñetas que se encuentran en la carpeta vignettes/, traduciéndolas a archivos HTML en articles/. Se puede nombrar el artículo de introducción con el nombre del paquete para generar una página “Get Started” automáticamente. 10.13 News Si el archivo NEWS.md está presente, se procesará en un changelog de una sola página basado en los títulos de las secciones del archivo. pkgdown asume que el archivo NEWS.md está formateado con encabezados de nivel uno (#) para especificar el nombre del paquete y el número de versión, y con encabezados de nivel dos (##) para proporcionar una organización temática para cada versión. # pkgdown 1.1.0 ## Bug Fixes * Lots of them 10.14 Publicando el sitio web Haz commit de los cambios y luego push. Ve al repositorio del paquete en GitHub y espera a que la acción de GitHub termine de renderizar el sitio. Ve al sitio web, el formato debe ser similar a https://usuario.github.io/paquete "],["proyectos-colaborativos-1.html", "11 Proyectos colaborativos 11.1 Propuesta 1 11.2 Propuesta 2 11.3 Propuesta 3 11.4 Propuesta 4 11.5 Propuesta 5", " 11 Proyectos colaborativos 11.1 Propuesta 1 11.2 Propuesta 2 11.3 Propuesta 3 11.4 Propuesta 4 11.5 Propuesta 5 "],["404.html", "Page not found", " Page not found The page you requested cannot be found (perhaps it was moved or renamed). You may want to try searching to find the page's new location, or use the table of contents to find the page you are looking for. "]] +[["index.html", "Desarrollo de paqueterías de R/Bioconductor. Bienvenida 0.1 Instructores 0.2 Ayudantes 0.3 Temario 0.4 Patrocinadores 0.5 Licencia", " Desarrollo de paqueterías de R/Bioconductor. Dra. Joselyn Cristina Chávez-Fuentes, Dra. Mirna Vázquez Rosas-Landa, M.C. Erick Cuevas-Fernández, Dra. Alejandra Medina-Rivera, Bienvenida Les damos la bienvenida al Workshop Desarrollo de paqueterías de R/Bioconductor! En este taller aprenderás cuáles son los pasos cruciales para desarrollar un paquete de R y algunas buenas prácticas para la generación de código. Con la integración de estas herramientas, tendrás la oportunidad de crear tu primer paquete y contribuir a la comunidad de desarrolladores. Adicionalmente, aprenderás a crear un sitio web para mostrar el funcionamiento de un paquete de R. 0.1 Instructores Dra. Joselyn Cristina Chávez Fuentes: Estancia Postdoctoral en Icahn School of Medicine at Mount Sinai. Dra. Alejandra Medina Rivera: Investigadora Asociada en el Laboratorio Internacional de Investigación de Medicina Genómica, UNAM. Dra. Yalbi I. Balderas-Martínez: Investigadora en el Instituto Nacional de Enfermedades Respiratorias Ismael Cosío Villegas. Dra. Mirna Vázquez Rosas Landa: Investigadora en el Instituto de Ciencias de Mar y Limnología de la UNAM. M.C. Erick Cuevas Fernández: Estudiante de Doctorado en la Universidad Nacional Autónoma de México. M.C. José Antonio Ovando Ricárdez: Estudiante de Doctorado en el Instituto Nacional de Enfermedades Respiratorias Ismael Cosío Villegas. 0.2 Ayudantes Dra. Evelia Coss: Posdoctoral en el Laboratorio Internacional de Investigación de Medicina Genómica, UNAM. M.C. José Antonio Ovando Ricárdez: Estudiante de Doctorado en el Instituto Nacional de Enfermedades Respiratorias Ismael Cosío Villegas. 0.3 Temario Consulta el calendario de este curso en: https://bit.ly/calendarcdsb2024 Día 1: Flujo de trabajo orientado a proyectos: Introducción al trabajo con proyectos de RStudio. Paths seguros. Control de versiones con GitHub y RStudio. Solución de problemas con las versiones de paquetes de Rstudio. Día 2: Creación de paquetes de R/Bioconductor Parte I Infraestructura de un paquete de R/Bioconductor. Documentación de funciones. Sesión social: Conociendo a la comunidad. Proyectos colaborativos Parte I. Día 3: Creación de paquetes de R/Bioconductor Parte II Diseño de pruebas. Creación de viñetas. Compilación e instalación de paquetes. Proyectos colaborativos Parte II. Día 4: Creación de sitios web para la documentación de paquetes de R Creación de sitios web con pkgdown Proyectos colaborativos Parte III. Presentación de proyectos. Clausura. 0.4 Patrocinadores Agradecemos a nuestros patrocinadores: 0.5 Licencia Este material posee una licencia tipo Creative Commons Attribution-ShareAlike 4.0 International License. Para conocer más sobre esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/ "],["trabajando-con-proyectos-de-rstudio.html", "1 Trabajando con proyectos de RStudio 1.1 Diapositivas 1.2 ¿Qué es un proyecto de RStudio? 1.3 ¿Cómo generamos un proyecto de RStudio? 1.4 ¿Por qué usar proyectos de RStudio? 1.5 Algunos hacks! 1.6 Generando rutas seguras", " 1 Trabajando con proyectos de RStudio Joselyn Cristina Chávez Fuentes 28 de octubre de 2024 1.1 Diapositivas div.grey { background-color: #bfbfbf; } div.center { text-align:center; } 1.2 ¿Qué es un proyecto de RStudio? Es un archivo especial de R, compatible con RStudio, que al ejecutarlo hará 3 cosas: Abrirá una nueva sesión de RStudio. Establecerá la ubicación del proyecto como tu directorio de trabajo. Establecerá la ubicación del proyecto como la raíz de los archivos. 1.3 ¿Cómo generamos un proyecto de RStudio? 1.3.1 Opción 1: Creando un proyecto en un directorio nuevo. En las opciones de RStudio Ve a File > New project > New Directory > New Project. Asigna un nombre a tu proyecto, sin espacios y sin caracteres especiales. Selecciona la ubicación donde crearás el nuevo directorio. Selecciona la opción Open in New Session. Oprime Create Project. 1.3.2 Opción 2: Creando un proyecto en un directorio existente. Crea un directorio en alguna ubicación conocida de tu computadora. Asigna un nombre a tu directorio, sin espacios y sin caracteres especiales (Este será el nombre de tu proyecto). En las opciones de RStudio ve a File > New project > Existing Directory. Selecciona la ubicación donde previamente creaste el directorio. Selecciona la opción Open in New Session. Oprime Create Project. 1.4 ¿Por qué usar proyectos de RStudio? Te permiten ser más organizado y pasar de tener una ensalada de archivos a tener carpetas para cada sección del análisis. Compartamentalizas tu trabajo al generar un proyecto específico para cada análisis. Te permiten trabajar con varios proyectos a la vez en sesiones independientes de RStudio, cada uno con sus propias variables, directorio de trabajo y archivos. Establece automáticamente tu directorio de trabajo. En lugar de usar setwd() solamente requieres ejecutar el archivo .Rproj para abrir la sesión y trabajar en la ubicación del proyecto. Puedes usar rutas relativas (y estables) a tus archivos, que seguirán funcionando sin importar en dónde se ubique tu proyecto. Facilita el compartir y reproducir tu trabajo. No más rutas al estilo ~/MiComputadora/MiFolder/MiArchivo. Comparte la carpeta completa de tu proyecto con todos los archivos necesarios y usa rutas relativas dentro del Rscript, por ejemplo ./datos. Nos ayuda a establecer colaboraciones y trabajar con plataformas de control de versiones. Actividad Comprueba algunas ventajas de usar proyectos de RStudio. Genera un nuevo proyecto de RStudio llamado ‘miproyecto’, recuerda que existen varias formas para hacerlo. Cierra la sesión y vuelve a abrirla ejecutando desde la terminal open miproyecto.Rproj o dando doble click sobre el archivo miproyecto.Rproj. Evalúa tu directorio de trabajo ejecutando en la consola de RStudio el comando getwd(). Cierra la sesión y mueve toda la carpeta de tu proyecto a otra ubicación. Si lo creaste en Documentos mueve la carpeta al Escritorio o viceversa. Abre nuevamente el proyecto y verifica el directorio de trabajo, ¿Cambió el directorio de trabajo? Sin cerrar este proyecto, abre alguno de los proyectos que generaste previamente (por ejemplo directorioprevio.Rproj), recuerda que puedes seleccionar Open Project in New session 1.5 Algunos hacks! RStudio recuerda los proyectos con los que has trabajado recientemente. Ve a la esquina superior derecha y da click en la flecha junto al nombre de tu proyecto actual. Verás todos los proyectos recientes. Si das click en el nombre de alguno de ellos te abrirá el proyecto en la misma sesión, si das click en el recuadro con flecha blanca te abrirá una nueva sesión con tu proyecto. Crea todos tus proyectos dentro de una carpeta principal y usa el buscador de archivos para acceder a ellos rápidamente. 1.6 Generando rutas seguras Se construyen a partir de una base estable El directorio de trabajo cambia de usuario a usuario y dependiendo de la ubicación de los archivos. getwd() Deben funcionar en cualquier sistema operativo Una ruta en sistemas Linux se ve así: "/Users/joselynchavez/Documents/materiales_cdsb2024" Mientras que una ruta en Windows se ve así: "C:\\Documents/materiales_cdsb2024" 1.6.1 El paquete here Usemos el paquete here para detectar la ubicación del proyecto: here::here() Ahora generemos una ruta segura a partir de la raíz del proyecto here::here("mi_tabla.csv") here::here("subfolder", "mi_tabla.csv") 1.6.2 Usando el paquete fs Por defecto, usa el directorio de trabajo actual como base y detecta el sistema operativo automáticamente. fs::path("mi_tabla.csv") fs::path("subfolder", "mi_tabla.csv") Tiene como ventaja que puede construir las rutas a partir del home del usuario. fs::path_home() fs::path_home("mi_tabla.csv") 1.6.3 Usando funciones base Si no deseas incluir el paquete ‘here’ en las dependencias de tu paquete, puedes usar la función file.path Esta función usa como base el directorio de trabajo actual y detecta el sistema operativo para construir la ruta. file.path("mi_tabla.csv") file.path("subfolder", "mi_tabla.csv") "],["control-de-versiones-con-github-y-rstudio.html", "2 Control de versiones con GitHub y RStudio 2.1 Diapositivas 2.2 ¿Por qué hacer control de versiones de nuestros proyectos? 2.3 Git 2.4 Recomendaciones para sus proyectos 2.5 Proyectos colaborativos 2.6 GitHub 2.7 Manual de sobreviviencia con Git Y GitHub en RStudio (en caso de ser necesario) 2.8 Cómo clonar un repositorio y tener conección/permisos para modificarlo? 2.9 Credenciales HTTPS en Cache 2.10 Conectando RStudio con Git y Github. 2.11 GitHub primero, RStudio después… 2.12 Rmarkdown en GitHub 2.13 RStudio primero y GitHub también 2.14 Proyecto existente, GitHub al final 2.15 Git basics: commands 2.16 Merge conflics 2.17 Merge conflics 2.18 En resumen", " 2 Control de versiones con GitHub y RStudio Dra. Alejandra Medina Rivera 28 de octubre de 2024 div.color { border-radius: 5px; padding: 20px; margin: 30px 0px 30px;} div.red { background-color:#f67155; } div.orange{ background-color:#f0BB51;} div.pair { display: flex; flex-direction: row; justify-content: center; text-align:center; padding:0px} div.inside { width: 49%; padding: 0px} div.scroll { max-height: 400px; overflow-y: auto; background: #111111; border-radius:5px; padding: 10px; margin: 30px 0px 30px; color: #999999;} div.alert{color:#bd475d; background-color:transparent} Este documento se basa en “Happy Git with R” de Jenny Bryan, los STAT 545 TAs, Jim Hester https://happygitwithr.com 2.1 Diapositivas 2.2 ¿Por qué hacer control de versiones de nuestros proyectos? ✅ Los proyectos suelen cambiar y crecer. 💾 Es díficil saber cuáles fueron todos los cambios a lo largo del tiempo (en especial tiempos largos, hazlo por tu yo del futuro!). 🤔 Las colaboraciones se pueden complicar sin un buen control de versiones. 🔐 Seguridad. 2.3 Git Git es un sistema de control de versiones Git funciona con GitHub, Bitbucket o GitLab ¿Por qué usar Git en vez de solo renombrar los archivos? ✅✅Por qué es mejor tener una filogenia del archivo. Git es un sistema de control de versiones distribuido, gratuito y de código abierto, diseñado para manejar todo tipo de proyectos, desde los más pequeños hasta los más grandes, con rapidez y eficiencia. Git es fácil de aprender y ocupa poco espacio con un rendimiento rapidísimo. Supera a las herramientas SCM como Subversion, CVS, Perforce y ClearCase con características como la ramificación local barata, las cómodas áreas de preparación y los múltiples flujos de trabajo. 2.3.1 Git vs controles de versión a mano Con Git cada contribuidor tiene una copia del repositorio central, con todos los archivos y la historia de los cambios por los que han pasado. Excuse me, do you have a moment to talk about version control?, Jennifer Bryan, 2017 ⚠️ NO OLVIDES TENER INSTALADO Git, en caso de que aún no lo hayas instalado, lo puedes descargar en el siguiente enlace https://git-scm.com/downloads. Para conocer la localización y la versión de Git que tienes en tu computadora, corre el siguiente comando en la terminal: which git y git --version 2.4 Recomendaciones para sus proyectos Dedicar un directorio Es mejor organizarlo en un RStudio Project Hacer un repositorio de Git Trabajen como siempre, solo además de guardar, recuerden hacer commit De vez en vez hagan push de sus cambios cuando los hayan verificado. 2.5 Proyectos colaborativos GitHub se parece más a un GoogleDoc que a un Word Document. Es fácil que los colaboradores hagan cambios y también es fácil saber quién hizo que. El owner del proyecto puede dar permisos a los diferentes colaboradores. También existen organizaciones, esto puede ser útil para manejar los permisos de grupos grandes de colaboración. 2.6 GitHub GitHub es una plataforma para guardar proyectos, hace uso de Git. Su principal utilidad es para generar código fuente de programas. ⚠️ NO OLVIDES TENER UNA CUENTA EN GITHUB, en caso de que aún no lo hayas hecho, puedes ir la página de GitHub y seleccionar join. Es indispensable tu usuario para los ejercicios que siguen. También existen otras plataformas como Bitbucked y GitLab, las cuales funcionan de manera similar a GitHub. 2.7 Manual de sobreviviencia con Git Y GitHub en RStudio (en caso de ser necesario) Por cualquier problema con la conexión entre RStudio y Git, siempre ten en cuenta la ubicación de dónde se instaló Git. Puedes usar en la terminal which git (Mac y Linux) O bien usar en la terminal where git (Windows) Recuerda que la terminal (o línea de comandos ó consola ó shell ó bash) es un programa en tu computadora que funciona para correr otros programas. Desde RStudio puedes abrir la terminal, lo cual es muy conveniente si estás trabajando en un proyecto. Puedes abrir una terminal con: Tools > Terminal (abre la terminal dentro del IDE de RStudio) Tools > Shell (abre una terminal externa a RStudio) 2.8 Cómo clonar un repositorio y tener conección/permisos para modificarlo? Git puede comunicarse con un servidor remoto usando uno de dos protocolos, HTTPS o SSH, y cada protocolo usa credenciales diferentes. La recomendación actual de GitHub es usar HTTPS porque es la manera más fácil de configurar y tiene operabilidad en multiples redes y plataformas. Es menos probable que HTTPS sea bloqueado por un firewall. Una conexión HTTPS permite que credential.helper almacene en caché su contraseña. (por tanto puedes configurar tu usuario y contraseña en tu equipo de uso) Es más sencillo acceder a un repositorio desde cualquier lugar, ya que solo necesitas los detalles de tu cuenta (no se requieren claves SSH) para escribir en el repositorio. Usualmente cuando inicies un proyecto colaborativo con GitHub inicializa el ropositorio con un README. Copia el HTTPS URL para clonar el repositorio en la terminal git clone https://github.com/TU-USUARIO/TU-REPOSITORIO.git. 2.9 Credenciales HTTPS en Cache Para usar HTTPS debes crear un token de acceso personal, PAT (PERSONAL ACCESS TOKEN), esa será tu credencial para HTTPS. Es una alternativa al uso de contraseñas para la autenticación en GitHub. Como precaución de seguridad, GitHub elimina automáticamente los tokens de acceso personales que no se han usado durante un año. ¿Cómo crear un token? Ve a tu perfil de GitHub, dale click a la imagen de perfil (usualmente en la esquina superior derecha), y busca la opción de settings ó configuración según sea la configuración de idioma que tengas. Da click a continuación en Developer settings ó Parámetros del desarrollador. En la barra lateral izquierda da click en Tokens de acceso personal. Haz click en Generar un nuevo token. Asígna un nombre descriptivo a tu token. Selecciona los alcances o permisos que deseas otorgarle a este token. Para usar tu token para acceder a repositorios desde la línea de comando, selecciona repo. (Recomendados: repo, user, workflow ) Finalmente haz click en generar token. Listo, copia y pega tu token en el lugar dónde siempre lo puedas volver a copiar, ya que por razones de seguridad, una vez salgas de la página no podrás volver a ver el token. Nota: Preserva tus tokens de la misma manera que tus contraseñas y no se las reveles a nadie. Una vez que tengas un token, puedes ingresarlo en lugar de tu contraseña cuando realices operaciones de Git a través de HTTPS. El punto final es que una vez configurada una PAT, varios paquetes de R, incluidos usethis y gh, podrán trabajar con la API de GitHub en su nombre, de forma automática. Por lo tanto, una PAT configurada correctamente significa que todo esto funcionará a la perfección: - Operaciones HTTPS remotas a través de la línea de comando Git y, por lo tanto, a través de RStudio - Operaciones HTTPS remotas a través del paquete gert R y, por lo tanto, usethis - Operaciones de la API de GitHub a través del paquete gh R y, por lo tanto, usethis Probar el repositorio Clonado Después de hacer clone Usa estos comandos para verificar tu repositorio y revisar desde dónde se está sincorinzando. cd myrepo ls -la head README.md git remote show origin Probemos haciendo un cambio en el README echo "Something I want to add to the README in my local computer" >> README.md git status Qué pasó? Ahora tenemos que decirle a git que queremos seguir los cambios de ese archivo Vamos a commit los cambios y luego a subir (push) los mismos a GitHub git add README.md git commit -m "A commit from my local computer" git push Recuerda tu TOKEN!! ¿Cómo crear un token desde R? Puedes ir directamente a la página de GitHub a la parte para generar tu token de acceso personal mediante la siguiente función: usethis::create_github_token() Y con las opciones que se mencionaban anteriormente puedes configurar y crear tu PAT. Si lo que quieres es especificar tu PAT en RStudio, las siguientes funciones te serán útiles: library(gitcreds) gitcreds_set() library(credentials) set_github_pat() Para eliminar credenciales utiliza la función credentials::git_credential_forget() 2.9.1 Actividad Ejecuta los códigos y genera tu PAT, recuerda no perderlo! 2.10 Conectando RStudio con Git y Github. Para lo que sigue a continuación, deberías tener esto: Tener una cuenta en GitHub R y RStudio actualizados Git instalado Saber que desde la terminal puedes hacer push y pull 2.11 GitHub primero, RStudio después… Crea un repositorio en GitHub: mi_repositorio > Public > YES initialize this repository with a README > clicken el gran botón verde “Create repository” En RStudio crea un nuevo proyecto: File > New Project > Version Control > Git. Ahi pega el URL del repositorio https://github.com/mi_usuario/mi_repositorio.git. Da click en Create Project. Esto nos generará los siguientes elementos: Un directorio nuevo Un repositorio Git enlazado a al repositorio de GitHub Un proyecto en RStudio Con este procedimiento ya no es necesario preocuparse por configurar controles remotos Git y rastrear ramas en la línea de comandos. 2.11.1 Actividad Genera un repositorio con el nombre que desees. Y conéctalo a RStudio. Cerciorate de que el archivo README se encuentre en tu nueva carpeta. Usa la función usethis::use_r(\"titulo_de_un_script\") y observa lo que sucede. PAUSA ¿Cómo comento y doy push/pull desde RStudio? 2.11.2 Comentar, pull y push Con la flecha azul podemos hacer pull (RECUERDA HACERLO ANTES DE HACER UN PUSH), y con la flecha verde un push. Para poder comentar y hacer push debemos marcar con una flechita mediante un click en las pequeñas cajas blancas de la columna Staged, damoc click en commit lo cual no abre la siguiente ventana. Volvemos a dar click en commit, y finalizamos con push (flecha verde). 2.12 Rmarkdown en GitHub Creemos un Rmakrdown y subámoslo a GitHub Ahora hay que agregarlo al repositorio (add), stage and commit. Subieron el hmlt? Qué tal se ve? No se ve como queremos, verdad? Para eso necesitamos recuperar el .md. El .md es un resultado intermedio de crear el html desde Rmd. Tenemos que cambiar el header para esto --- title: "RmarkwondTest" output: html_document: keep_md: true --- 2.12.1 Actividad Usa el código dir.create(\"mis_imagenes\") en la consola de tu sesión de RStudio (la que está vinculada a tu repositorio). Ejecuta el siguiente código quitando los #: install.packages("MASS") library (MASS) data(MASS::cats) # pdf("mis_imagenes/cats_plot.pdf") ggplot(cats, aes(x = Sex)) + geom_bar(fill = "orange", color = "black") + theme_classic() + xlab("Sexo") + ylab("Número de Gatos") + ggtitle("Gatos") # dev.off() Comenta y da push a los cambios que realizaste en el repositorio. 2.13 RStudio primero y GitHub también Usa uno de los proyectos que hayas generado en las sesiones anteriores, PERO, que no esté enlazado a GitHub. Ahora veremos como conectar un proyecto de R existente con GitHub. Realiza los pasos que hicimos en GitHub primero, RStudio después pero asegurate de crear un repositorio con un nuevo nombre. Y LISTO!! usa un simple ctrl + c, ó mv ó click derecho + copiar ó el método que prefieras para mover o copiar archivos. Copia los archivos de tu antigüo proyecto al proyecto nuevo. Solo haz commit y push y listo, lo que tenía en tu antigüo proyecto ya está enlazado a GitHub. 2.14 Proyecto existente, GitHub al final Supongamos que tenemos un proyecto de R existente en algún lugar de nuestra computadora. NOTA: Para generar proyecto de RStudio desde la consola puedes utilizar el siguiente código: usethis::create_project() O en RStudio con File > New Project > Existing Directory Si su proyecto ya es un proyecto de RStudio, ejecútelo. ¿Ya es un repositorio de Git? La presencia del panel de Git debería alertarlo. Si es así, ha terminado. Sino este es el primer camino a seguir: Con el páquete usethis usa la función usethis::use_git En RStudio ve a Tools > Project Options > Git/SVN. Dentro de Version control system, selecciona Git. Y da click a “Yes” cuando aparezca “Confirm New Git Repository?”. Si usaste RStudio o usethis, el proyecto debería reiniciarse en RStudio. Hazlo tu mismo si hizo git init. RStudio ahora debería tener un panel Git. 2.14.1 Breviario cultural con los PATs Si usas el paquete usethis Y has configurado un token de acceso personal (PAT) de GitHub has esto en R: usethis::use_github() Esto creará un nuevo repositorio en GitHub, lo agregará como un control remoto, configurará una rama de seguimiento y lo abrirá en su navegador. Lea la ayuda de use_github() para conocer sus argumentos y consejos sobre cómo configurar una PAT. Esto es extremadamente útil para una variedad de flujos de trabajo que llaman a la API de GitHub. Considere configurar esto si usa usethis, devtools o gh con regularidad. Volviendo al tema de Proyecto existente, GitHub al final. Otra opción que se puede hacer para conectar un proyecto existen a GitHub es ir a hacer un repositorio a GitHub PERO ten en cuenta los siguientes cambios: Elije un nombre de repositorio; probablemente debería coincidir con el nombre de su proyecto y directorio local. NO inicialice este repositorio con un archivo README. Todo lo demás es igual a los pasos que hacíamos en GitHub primero, RStudio después… Ahora ve a tu proyecto de RStudio, has clic en los “dos cuadros de color púrpura y un cuadrado blanco” en el panel de Git. Has clic en “Agregar control remoto”. Pegue la URL aquí y elija un nombre remoto, casi con certeza el origin. Ahora “ADD”. Pasado esto deberiamos volver en el cuadro de diálogo “New Branch”. Ingresa “master” como el nombre de la rama y asegúrate de que la opción “Sync branch with remote” esté marcada. Haz clic en “Create”. En el siguiente cuadro de diálogo elije “overwrite”. Ahora solo haz commit/pull/push y cérciorate que FUNCIONE!! 2.15 Git basics: commands Fetch Commits git fetch Create and Switch to a branch git branch [branch-name] git checkout [branch-name] 2.16 Merge conflics A veces, no tan a veces también, las cosas no salen bien a la primera Merging (Fusionar) es una de esas cosas Cuando bajamos un cambio o fusionamos branches esto puede pasar. Primera regla: NO ENTRAR EN PANICO!!! Revisen el status del repositorio. Qué archivo tiene conflicto? 2.17 Merge conflics Abran ese archivo y busquen los problemas de merge. Es fácil, se ven así: <<<<<<< HEAD:index.html <div id="footer">contact : email.support@github.com</div> ======= <div id="footer"> please contact us at support@github.com </div> >>>>>>> issue-5:index.html Editen esa sección, dejen una versión final. Hagan commit y push Si entran en pánico? Aborten la misión! git merge --abort t 2.18 En resumen ¡QUE LA FUERZA TE ACOMPAÑE! "],["solución-de-problemas-con-las-versiones-de-paquetes-de-rstudio.html", "3 Solución de problemas con las versiones de paquetes de Rstudio 3.1 Diapositivas", " 3 Solución de problemas con las versiones de paquetes de Rstudio Yalbi Balderas 28 de octubre de 2024 3.1 Diapositivas "],["creando-la-infraestructura-de-un-paquete.html", "4 Creando la infraestructura de un paquete 4.1 Diapositivas 4.2 Los primeros pasos 4.3 Checks 4.4 Modificando el archivo DESCRIPTION 4.5 Modificando el archivo NEWS", " 4 Creando la infraestructura de un paquete Joselyn Cristina Chávez Fuentes 29 de octubre de 2024 4.1 Diapositivas 4.2 Los primeros pasos Revisar si podemos usar el nombre del paquete available::available("mipaquete") Crear la estructura inicial del paquete usethis::create_package("mipaquete") Podemos agregar la estructura de biocthis biocthis::use_bioc_pkg_templates() Pedir que Git ignore el archivo .Rproj usethis::use_git_ignore("*.Rproj") Crear el respositorio de GitHub usethis::use_github() Crear el archivo Description estilo Bioconductor biocthis::use_bioc_description() Crear el archivo README estilo Bioconductor biocthis::use_bioc_readme_rmd() devtools::build_readme() Recuerda guardar los cambios, hacer commit y push. Crear el archivo NEWS estilo Bioconductor biocthis::use_bioc_news_md() Crear los archivos de ayuda para usuarios y contribuidores biocthis::use_bioc_coc() usethis::use_tidy_contributing() biocthis::use_bioc_support() biocthis::use_bioc_issue_template() biocthis::use_bioc_citation() 4.3 Checks 4.3.1 BiocCheck BiocManager::install("BiocCheck") BiocCheck::BiocCheck() Algunas reglas de BiocCheck: Utilizar el símbolo <- en lugar de = para definir funciones y variables. Utilizar TRUE y FALSE en lugar de T y F. Indentar el código usando 4 espacios. Las líneas de código y documentación no deben ser mayores a 80 caracteres. Las funciones deben tener 50 líneas de código o menos. El paquete debe contener al menos una viñeta. Al menos 80% de las funciones deben tener ejemplos reproducibles. Las dependencias deben ser declaradas en el archivo DESCRIPTION. El paquete debe tener al menos un biocView. El tamaño del paquete no debe ser mayor 5Mb. El maintainer debe estar suscrito a la lista de correo de Bioconductor. El maintainer debe agregar su paquete en los tags de Bioconductor. 4.3.2 rcmdcheck install.packages("rcmdcheck") rcmdcheck::rcmdcheck() Algunas reglas de rcmdcheck: El paquete debe ser instalable. Los ejemplos de las funciones deben ser reproducibles. Las viñetas deben ser reproducibles. Todas las unidades de prueba deben pasar sin errores. El archivo DESCRIPTON debe tener el formato adecuado. 4.4 Modificando el archivo DESCRIPTION Paquete Este es el nombre del paquete. El nombre del repositorio y el nombre del paquete en la descripción deben coincidir (incluyendo mayúsculas y minúsculas). Título Este es un título breve pero descriptivo para el paquete. Versión Todos los paquetes de Bioconductor utilizan un esquema de versión x.y.z. Cuando se envía por primera vez a Bioconductor, un paquete debe tener la versión 0.99.0. Se aplican las siguientes reglas: x es normalmente 0 para paquetes que aún no han sido liberados. y es par para paquetes liberados, e impar para paquetes en desarrollo. Generalmente, no se debe aumentar este número en el pre-release. z se incrementa siempre que se realizan cambios en el paquete. Descripción La descripción debe ser una visión general relativamente breve pero detallada de lo que implica la funcionalidad del paquete. Debe ser de al menos tres oraciones completas. Autores Se requiere una designación de maintainer (cre) con una dirección de correo electrónico que se mantenga activamente. Esta dirección de correo se utilizará para el contacto con respecto a cualquier problema que surja con el paquete en el futuro. Idealmente, se debe incluir el ORCiD por lo menos del maintainer. person("Lori", "Shepherd", email = Lori.Shepherd@roswellpark.org, role = c("cre", "aut"), comment = c(ORCID = "0000-0002-5910-4010")) Sólo debe figurar una persona como responsable para garantizar un único punto de contacto. Esta persona tendrá acceso al repositorio git en git.bioconductor.org. El acceso a Commit puede ser dado a otros desarrolladores por solicitud en la lista de correo bioc-devel. Otra opción es añadir colaboradores al repositorio de GitHub. Este enfoque permite el desarrollo por muchos pero restringe el acceso a git.bioconductor.org. Licencia El campo de licencia debe referirse preferentemente a una licencia estándar no restrictiva. Las licencias que restringen el uso, por ejemplo, a investigadores académicos o sin fines de lucro, no son adecuadas para Bioconductor. Los paquetes de bioconductor básico suelen estar licenciados bajo Artistic-2.0. El paquete debe contener sólo código que pueda ser redistribuido de acuerdo con la licencia del paquete. LazyData Para paquetes que incluyen datos, se recomienda NO incluir LazyData: TRUE. Incluirlo en ese caso, ralentiza la carga de paquetes con datos grandes. Dependencias Todos los paquetes deben estar disponibles a través de biocViews o CRAN de Bioconductor; el uso del campo Remotes: no es soportado, por lo tanto las dependencias sólo disponibles en otros repositorios (e.g. GitHub) no están permitidas. Un paquete puede ser listado sólo una vez entre Depends, Imports, Suggests, o Enhances: Imports: es para paquetes que proporcionan funciones, métodos o clases que se usan dentro del código del paquete. La mayoría de los paquetes están listados aquí. Depends: es para paquetes que proporcionan funcionalidad esencial para los usuarios del paquete, por ejemplo, el paquete GenomicRanges se enumera en el campo Depends: de GenomicAlignments. Es poco común que más de tres paquetes aparezcan como Depends:. Suggests: es para paquetes usados en viñetas, ejemplos y código condicional. Comúnmente, los paquetes de anotaciones y experimentos (por ejemplo, TxDb*) usados en viñetas y código de ejemplo se incluyen en este campo, evitando así una descarga costosa. Enhances: es para paquetes como parallel que mejoran el rendimiento del paquete, pero no son estrictamente necesarios para su funcionalidad. En el caso de que se requiera una función única externa para el código del paquete, la disponibilidad y el uso del paquete pueden hacerse a través de: if (!requireNamespace('suggPKG', quietly = TRUE)) stop("Install 'suggPKG' to use this function.") suggPKG::function() biocViews Este campo es obligatorio! Especifica al menos dos biocViews. Los términos deben provenir del mismo tipo de paquete (Software, AnnotationData, ExperimentData o Workflow). Puedes encontrar más información en: https://www.bioconductor.org/packages/release/BiocViews.html BugReports Se recomienda apuntar hacia el repositorio de GitHub, por ejemplo: https://github.com/usuario/paquete/issues. URL Se incluyen los links importantes, como el repositorio con el código fuente y el sitio web de pkgdown si se cuenta con él. Por ejemplo: https://github.com/usuario/paquete https://usuario.github.io/paquete 4.5 Modificando el archivo NEWS Secciones: New: Nuevas funciones. Bug fixes: Reparación de errores en las funciones previas o en la documentación. Changes: Cambios en el código de las funciones, incluyendo modificaciones en los argumentos. Breaking changes: Cambios importantes que romperían el código en caso de no ser atendidos, por ejemplo el uso de funciones o argumentos antiguos. Enhancements: Mejoras a las funciones existentes. Formato El archivo NEWS se ve similar a este ejemplo: "],["creando-mis-primeras-funciones.html", "5 Creando mis primeras funciones 5.1 Diapositivas 5.2 Nombre de la función 5.3 Estructura de la función 5.4 ¡Tu turno! 5.5 Argumentos 5.6 ¡Tu turno! 5.7 Indentación 5.8 Uso de espacios 5.9 Comentarios 5.10 Mensajes para el usuario", " 5 Creando mis primeras funciones Instructora: Joselyn Chávez 29 de octubre de 2024 5.1 Diapositivas 5.2 Nombre de la función Cortos pero descriptivos Recomendable: Separar las palabras con _ Establecer una palabra en común al inicio para familias de funciones use_bioc_citation() # es mejor que citation() bioc_cit() usebioccitation() useBiocCitation() use.bioc.citation() 5.3 Estructura de la función Indentar las líneas de código. Agregar comentarios para separar/describir las secciones importantes. Usar la sintaxis paquete::funcion() cuando hacemos llamado a funciones de otros paquetes. usethis::use_r("subset_heatmap") Generemos el código de manera regular. Simulemos una matriz con diversas mediciones y grafiquemos los datos en un heatmap. mi_matriz <- matrix(rnorm(100), nrow = 10) rownames(mi_matriz) <- paste0("medicion_",letters[1:10]) colnames(mi_matriz) <- paste0("grupo_",letters[1:10]) library(ComplexHeatmap) Heatmap(mi_matriz, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) Escribamos una función que permita seleccionar algunos grupos de interés y genere el heatmap. No la mejor opción: library(ComplexHeatmap) subset_heatmap <- function(x,mediciones=NULL,grupos=NULL) { x_subset <- x[mediciones,grupos] Heatmap(mi_matriz, cluster_columns=FALSE, heatmap_legend_param=list(title="valores")) } Un poco mejor: library(ComplexHeatmap) subset_heatmap <- function(x, mediciones = NULL, grupos = NULL) { x_subset <- x[mediciones,grupos] Heatmap(mi_matriz, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) } Mucho mejor: subset_heatmap <- function(x, mediciones = NULL, grupos = NULL) { # subset matrix x_subset <- x[mediciones, grupos] # plot heatmap ComplexHeatmap::Heatmap( x_subset, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) } Ejecutemos la función: subset_heatmap( mi_matriz, mediciones = c("medicion_a", "medicion_b", "medicion_c"), grupos = c("grupo_d","grupo_e","grupo_f")) 5.4 ¡Tu turno! Escribe una función que: Filtre la matriz y mantenga sólo los valores por encima de cierto valor. Genere el heatmap filtrado. Recuerda seguir las recomendaciones para escribir funciones. 5.5 Argumentos Los argumentos deben tener un nombre descriptivo y bien documentado. No la mejor opción: subset_heatmap <- function(x, m, g) { # subset matrix x_subset <- x[mediciones, grupos] } Una mejor opción: subset_heatmap <- function(x, mediciones, grupos) { # subset matrix x_subset <- x[mediciones, grupos] # plot heatmap ComplexHeatmap::Heatmap( x_subset, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) } Los argumentos generalmente deben tener valores default. subset_heatmap <- function(x, mediciones = NULL, grupos = NULL, return_plot = TRUE) { # subset matrix x_subset <- x[mediciones, grupos] # plot heatmap ComplexHeatmap::Heatmap( x_subset, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) } Evalúa la validez de los argumentos subset_heatmap <- function(x, mediciones = NULL, grupos = NULL, return_plot = TRUE) { stopifnot(is.matrix(x)) # subset matrix x_subset <- x[mediciones, grupos] # plot heatmap heatmap <- ComplexHeatmap::Heatmap( x_subset, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) if(return_plot == TRUE) {return(heatmap)} } Este código no debe funcionar: subset_heatmap( as.data.frame(mi_matriz), mediciones = c("medicion_a", "medicion_b", "medicion_c"), grupos = c("grupo_d","grupo_e","grupo_f")) Nota: Usa las funciones is() para evaluar la clase de los objects, no uses class() == ni class() !=. Proporciona pistas para entender los errores. subset_heatmap <- function(x, mediciones = NULL, grupos = NULL, return_plot = TRUE) { if(!is.matrix(x)) {stop("x debe ser una matriz")} # subset matrix x_subset <- x[mediciones, grupos] # plot heatmap heatmap <- ComplexHeatmap::Heatmap( x_subset, cluster_columns = FALSE, heatmap_legend_param = list(title = "valores")) if(return_plot == TRUE) {return(heatmap)} } Este código debe dar un error, más un mensaje de ayuda. subset_heatmap( as.data.frame(mi_matriz), mediciones = c("medicion_a", "medicion_b", "medicion_c"), grupos = c("grupo_d","grupo_e","grupo_f")) 5.6 ¡Tu turno! Agrega pasos de evaluación para los otros argumentos de la función. Incluye mensajes de ayuda cuando el formato de los argumentos no es el esperado. 5.7 Indentación Usa 4 espacios para indentar, evita los tabs. No uses líneas de más de 80 caracteres. 5.8 Uso de espacios Usa un espacio después de la coma: a, b, c. Usa espacio después de operadores binarios: a == b. 5.9 Comentarios Usa “##” para comenzar las líneas de comentarios. Los comentarios deben usarse como notas y documentación solamente. No dejes código comentado que no se va a usar. Evita los TODO’s comentados cuando vayas a publicar el paquete. 5.10 Mensajes para el usuario Si deseas imprimir mensajes para el usuario, como el progreso del análisis en la función o advertir sobre los valores de los argumentos, evita el uso de cat(), mejor usa: message() comunica mensajes diagnóstico, como el progreso de la función. message("Paso 1: completo") ## Paso 1: completo warning() comunica situaciones inusuales que pueden ser manejadas por tu código. warning("El número de elementos esperados es mayor a uno, se tomará el primer valor del vector") ## Warning: El número de elementos esperados es mayor a uno, se tomará ## el primer valor del vector stop() indica una condición errónea. stop("x debe ser numérico") "],["documentación-de-funciones.html", "6 Documentación de funciones 6.1 Diapositivas 6.2 Links importantes: 6.3 ¿Qué es la documentación de una función y por qué es importante? 6.4 Generacion de la documentacion con ayuda del paquete roxygen 6.5 Antes de empezar…✏️ 6.6 Generacion de un bloque de documentacion con ayuda del paquete roxygen. 6.7 Otros campos de la documentacion.", " 6 Documentación de funciones Instructor/a: 29 de octubre de 2024 6.1 Diapositivas 6.2 Links importantes: Esta lección está basada en algunos manuales sobre documentación: Una viñeta del cranproject El manual de paqutes de r En esta viñeta de cranproject 6.3 ¿Qué es la documentación de una función y por qué es importante? 🙇️ Es la información complementaria que el desarrollador escribe sobre una función y que se accede con ? seguido el nombre de una función actual de un paquete p.ej. ?unafuncion. 📁 La documentación se almacena como un archivo .Rd (“R documentation) en la carpeta man/. 🔎 La documentación usa una síntesis especial, que es distinta a la de r y que está ligeramente basada en LaTeX. 📄 Se puede renderizar como html, pdf o texto sin formato según se necesite. 6.4 Generacion de la documentacion con ayuda del paquete roxygen En un paquete de r y en cualquier ecosistema de devtools no editamos un documento .Rd manualmente. La documentación usa una síntesis parecida a LaTex que puede ser fácil de estropear. Por ventaja existen paquetes como roxigen2. Usar roxigen nos permite usar comentarios especiales sobre el inicio de la función, esto nos da un par de ventajas: ✅ La documentación y la función estarán en un mismo lugar, por lo que si editas la función será mas fácil recordar actualizar la documentcion también. 🎉 Puedes usar markdown en lugar de la síntesis especial para los archivos .Rd 6.5 Antes de empezar…✏️ Vamos a crear un función para nuestro paquete. Supongamos que para nuestro paquete necesitamos una función que calcule la moda. Esta es una forma sencilla de calcular la moda: getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } unique(serievector): Crea un vector que contiene únicamente los valores únicos de la serie de números serievector. match(serievector, uniqv): Encuentra la posición de cada valor de serievector en el vector único uniqv. tabulate(match(serievector, uniqv)): Cuenta cuántas veces aparece cada valor en la serie serievector. which.max(tabulate(match(serievector, uniqv))): Encuentra el índice del valor máximo en el vector de frecuencias. uniqv[which.max(tabulate(match(serievector, uniqv)))]: Devuelve el valor correspondiente al índice calculado, que es la moda. Creamos un ejemplo para ver que funcione: serie_numeros <- c(1, 2, 2, 2, 2, 3, 3, 4, 4, 4) resultado <- getmode(serie_numeros) print(resultado) ## [1] 2 Bien ahora si podemos podemos empezar a usar el paquete de roxygen para documentar nuestra función.. comencemos. 6.6 Generacion de un bloque de documentacion con ayuda del paquete roxygen. Podemos insertar un esqueleto de comentarios de roxygen para ver su síntesis. Colocamos el cursor en algún lugar de la definición de nuestra función y buscamos en la pestaña Código > Insertar Roxygen Skeleton. #' Title #' #' @param serievector #' #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Ahora ya tenemos un esqueleto de la documentación que nos da una ventaja para su creación. Las líneas de comentarios de Roxygen siempre comienzan con #', el habitual para un comentario # mas un ' Veamos los comentarios de uno por uno: Empezamos con el titulo. Se sugiere poner en el titulo las acciones principales que realiza la función en este caso por ejemplo podremos usar: #' @title Encontrar la Moda de una Serie de Números #' #' @param serievector #' #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Muy bien!. El siguiente comentario que podemos ver es @param. Pero antes, vamos a añadir una pequeña descripción de la función y como usarla. Primero añadimos la pequeña descripción con @description: #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' @param serievector #' #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Ahora vamos a añadir el comentario @usage que nos indica como puedes mandar a llamar la función. #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' @usage getmode(serievector) #' @param serievector #' #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Ahora si vamos a añadir una pequeña descripción de nuestros argumentos. Si tuviéramos mas de un parámetro en nuestra función podríamos llamar las veces que sea necesario el comentario de parámetro con @param, veamoslo. Ahora añadimos una pequeña descripción a nuestro único parámetro que es serievector: #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' #' @param serievector Es una serie de números en forma de un vector simple de r. #' #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Después, podemos añadir un comentario de detalles de la función con @details. Por ejemplo, si en nuestro ejemplo tuviéramos ciertos valores no numéricos en nuestro vector de entrada, por ejemplo letras, ¿nuestra función podría leerlas?, o si le diéramos un vector sin caracteres ¿que pasaría?, veamos: serie_numeros <- c(0,2,2,"d", "d","d") resultado <- getmode(serie_numeros) print(resultado) ## [1] "d" serie_numeros <- c() resultado <- getmode(serie_numeros) print(resultado) ## NULL Entonces, esto es un ejemplo de lo que podríamos poner en el comentario @details. Hagamoslo describiendo esto. En details podemos agregar detalles un poco mas específicos que en la descripción de la función #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' #' @param serievector Es una serie de números en forma de un vector simple de r. #' #' @details si tu vector de entrada puede ser interpretado alternando números y #' letras escritas entre comillas "". Si un vector esta vacío, dará como #' resultado un NULL. #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Ya casi terminamos de llenar nuestra documentación, pero antes vamos a ver algunos otros arrobas que pudieran ser importantes. El @import e @importfrom importan funciones de otros paquetes en caso de que las necesitemos, el primero importa todas las funciones del paquete que que solicites, y el segundo importa solo algunas funciones especificas. En nuestra función no necesitamos llamar funciones de otros paquetes puesto que todas las que usamos están en r base. Pero imaginemos que tu función, por ejemplo necesita leer un archivo .tsv con la función read_tsv del paquete readr y después reconvertir la tabla resultante en un archivo con write.table pero solo necesitas esa función del paquete utils, entonces haríamos: #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' #' @param serievector Es una serie de números en forma de un vector simple de r. #' #' @details si tu vector de entrada puede ser interpretado alternando números y #' letras escritas entre comillas "". Si un vector esta vacío, dará como #' resultado un NULL. #' @import readr #' @importFrom utils write.table #' @return #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Así podemos importar las funciones que necesitemos de otros paquetes y se incluirán en la documentación y se cargaran automáticamente al cargar tu paquete. :eyes::exclamation: Para un correcto funcionamiento de tu paquete y al estar los paquetes necesarios incluidos en la documentación, no será necesario llamarlos de la forma ``library(“apackage”)```. Entonces llegamos a la sección @return. Esta descripción le servirá al usuario del paquete para conocer cual sera el resultado de la función, que puede ser un archivo, una tabla, un numero,etc. Entonces retomando la función que usamos al inicio, vamos a escribir una descripción corta del resultado de la función getmode(). #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' #' @param serievector Es una serie de números en forma de un vector simple de r. #' #' @details si tu vector de entrada puede ser interpretado alternando números y #' letras escritas entre comillas "". Si un vector esta vacío, dará como #' resultado un NULL. #' @return El carácter con mas frecuencia de el vector de entrada. #' @export #' #' @examples getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Por ultimo tenemos @export que es el encargado de renderizar la documentación para que pueda aparecer en la ventana de Ayuda (abajo a la derecha). esta opción la dejamos para funciones principales que el usuario va a utilizar, aunque puede que existan alguna funciones internas que no queremos que el usuario vea. En ese caso vamos a usar @noRd en lugar de este. Antes de terminar podemos incluir ejemplos de como funciona nuestra función para un mejor entendimiento, pongamos los que ya realizamos: #' @title Encontrar la Moda de una Serie de Números #' #' @description Esta función lee una serie de números en forma de vector y #' encuentra el elemento que mas se repite, es decir la moda. #' #' @param serievector Es una serie de números en forma de un vector simple de r. #' #' @details si tu vector de entrada puede ser interpretado alternando números y #' letras escritas entre comillas "". Si un vector esta vacío, dará como #' resultado un NULL. #' @return El carácter con mas frecuencia de el vector de entrada. #' @export #' #' @examples #' serie_números <- c(1, 2, 2, 2, 2, 3, 3, 4, 4, 4) #' resultado <- getmode(serie_números) #' print(resultado) getmode <- function(serievector) { uniqv <- unique(serievector) uniqv[which.max(tabulate(match(serievector, uniqv)))] } Ahora si, una vez teniendo listo el bloque de comentarios para la documentación, vamos a ejecutar devtools::load_all() para cargar nuestras funciones y hecho esto, ejecutamos devtools::document() o presionamos Ctrl/Cmd + Shift + D para convertir los comentarios en archivo .Rd y poder renderizarlo. 💯 Listo, tenemos nuestra documentación para una función. Así se verá cuando el paquete esté terminado. 6.7 Otros campos de la documentacion. @seealso para indicar funciones relacionadas y facilitar la búsqueda de funciones. @references añade algunas referencias. @author para especificar el autor de la función. "],["diseño-de-pruebas.html", "7 Diseño de pruebas 7.1 Diapositivas", " 7 Diseño de pruebas Mirna Vázquez Rosas-Landa 30 de octubre de 2024 7.1 Diapositivas "],["creación-de-viñetas.html", "8 Creación de viñetas 8.1 ¿Qué es una viñeta/vignette? 📝✨ 8.2 Características de una vignette 🌟 8.3 ¿Cómo consultar la viñeta de un paquete? ❓🔍 8.4 ¿Cómo crear una viñeta? ❓🔍 8.5 ¿Cómo guardar y actualizar la viñeta? 🔄💻 8.6 Veamos un ejemplo 🔍👨‍💻 8.7 Actividad", " 8 Creación de viñetas José Antonio Ovando Ricárdez 30 de octubre de 2024 8.1 ¿Qué es una viñeta/vignette? 📝✨ Es una guía extendida sobre cómo funciona el paquete. Es recomendable que muestre cómo utilizar las funciones del paquete, aplicado en un flujo de trabajo; por ejemplo: el análisis estadístico de una encuesta 📊 o el análisis de expresión diferencial de genes. Podemos estructurarlo como haríamos con la escritura de un capítulo de libro o de un artículo científico: debe mostrar el problema a resolver y la metodología paso a paso sobre cómo el paquete lo resuelve. Si el paquete contiene funciones que se complementan entre sí para alcanzar un fin específico, entonces debes mostrar su uso de forma compartamentalizada. 8.2 Características de una vignette 🌟 Debe mostrar un flujo de análisis explotando el potencial de tu paquete 📊🚀. Implementa tantas funciones de tu paquete como sea posible, pero no es necesario que incluya todas 🛠️✨. Los datos a usar deben ser pequeños o fáciles de acceder 📂🔍. Puedes crear múltiples viñetas para mostrar diferentes casos de análisis y cubrir una mayor cantidad de funciones 📝📚. 8.3 ¿Cómo consultar la viñeta de un paquete? ❓🔍 browseVignettes(package = "ggplot2") 8.4 ¿Cómo crear una viñeta? ❓🔍 biocthis::use_bioc_vignette("mi_vignette") Esta función tendrá tres efectos ✨: Generar el directorio vignettes en caso que no exista 📂🔧. Agregar dependencias en el archivo DESCRIPTION (por ejemplo, knitr necesario para construir viñetas dentro del paquete) 📄📦. Abrir un template en formato .Rmd para comenzar a escribir la viñeta, que se va a guardar en vignettes/mi_vignette.Rmd 📝💾. 8.5 ¿Cómo guardar y actualizar la viñeta? 🔄💻 Una vez que se ha generado el archivo vignettes/mi_vignette.Rmd, se hacen las modificaciones necesarias. Puedes usar el comando: edit_file("vignettes/mi_vignette.Rmd") Para guardar los cambios, debes hacer clic en el botón Knit o utiliza la combinación de teclas Ctrl/Cmd-Shift-K 💾✨. 8.6 Veamos un ejemplo 🔍👨‍💻 Busca la viñeta del paquete regutools en la página de Bioconductor 🌐: Viñeta de regutools en Bioconductor 📦📄 8.7 Actividad 8.7.1 Ejercicio 1: Identificación de viñetas en paquetes de interés en Bioconductor 📚🔍 En equipos selecciona dos paquetes almacenados en Bioconductor que sean de tu interés y responde las siguientes preguntas: ¿Ambos paquetes incluyen viñetas? 📝❓ ¿Qué aspectos de la viñeta del paquete A versus el paquete B te llaman más la atención? 🔍🤔 ¿Consideras que alguna viñeta está mejor desarrollada que la otra? Explica por qué 💭📊. 8.7.2 Ejercicio 2: Creación de viñetas en R 🛠️📄 Pasos: 1. Cargar los paquetes necesarios library(usethis) library(biocthis) Crear un nuevo paquete de R (si no tienes uno ya creado) # usethis::create_package("CDSB2024") Configurar el paquete para Bioconductor Ejecuta el siguiente comando para configurar el paquete con las mejores prácticas de Bioconductor: # biocthis::use_bioc_pkg_templates() Esto agregará varios archivos de configuración y plantillas útiles para trabajar con Bioconductor. Crear una viñeta con biocthis Ejecuta el siguiente comando para agregar una viñeta en formato R Markdown. Cambia “mi_vignette” por el título de la viñeta que prefieran. # usethis::use_vignette("mi_vignette_usethis") # biocthis::use_bioc_vignette("mi_vignette_biocthis") Esto creará un archivo R Markdown en la carpeta vignettes/ dentro del paquete. Editar la viñeta Abre el archivo creado en vignettes .Rmd. Incluye contenido que describa una función del paquete. Abrir la viñeta en el navegador y renderiza el archivo .Rmd # browseVignettes("CDSB2024") 8.7.3 Preguntas de Reflexión 🤔💭 ¿Cuál es la ventaja de documentar ejemplos de uso en una viñeta? 📚✨ ¿Qué estructura consideras útil para presentar ejemplos en una viñeta? 🏗️🔍 ¿Cómo aplicarías esta clase en tu proyecto colaborativo? 🤝📈 "],["compilación-e-instalación-de-paquetes.html", "9 Compilación e instalación de paquetes 9.1 Diapositivas 9.2 Metadatos de una paquetería 9.3 Licencias 9.4 Paqueterías de código fuente 9.5 ¿En dónde podemos encontrar el código fuente de un paquete? 9.6 Instalando la última versión en desarrollo 9.7 Instalando paquetes desde GitHub 9.8 Instalando un paquete local 9.9 Contribuyendo código", " 9 Compilación e instalación de paquetes Joselyn Cristina Chávez Fuentes 30 de octubre de 2024 9.1 Diapositivas 9.2 Metadatos de una paquetería Los metadatos de la paquetería se encuentran en el archivo DESCRIPTION. 9.2.1 Description El campo Description describe lo que hace tu paquetería. Suele ser extenso, si requieres escribir múltiples líneas, deben estar indentadas. Por ejemplo: # Description: Este paquete contiene todas las funciones generadas en el curso # de escritura de paqueterías en R. También contiene las funciones que cada # participante propuso para solucionar un problema relacionado con su trabajo. 9.2.2 Dependencias Las dependencias son las paqueterías que tu paquete necesita para funcionar. La lista de paquetes se escribe separada por comas y es recomendado que se escriban en orden alfabético. Existen tres tipos: Imports: Son paquetes que deben instalarse para que tu paquete funcione y por tanto se van a instalar en el momento que instales el paquete. Internamente existe una función que evalúa si los paquetes se encuentran instalados o no y solamente instala los faltantes. Esta dependencia hace solamente la instalación pero no ejecuta library(), por lo que los paquetes requeridos deberán ser cargados dentro de la escritura del paquete. Depends: Son paquetes que obligatoriamente deben estar para que tu paquetería funcione pero no se instalarán de manera automática. Aquí también se indica la versión de R requerida para el funcionamiento del paquete. Los paquetes que se listen aquí se van a cargar al mismo tiempo que se ejecute el library(mipaquete). Suggests: Se refiere a los paquetes que tu paquete puede utilizar y aprovechar para ser más poderoso en el análsis pero no los necesita para funcionar. Por ejemplo, paquetes que contienen sets de datos para hacer pruebas o análisis de práctica. Nota Importante Se recomienda listar los paquetes necesarios para el funcionamiento de nuestro paquete en Imports porque cuando se ponen en Depends se cargan los paquetes completos y probablemente solamente requerimos una o dos funciones. Cargar demasiados paquetes completos, sin ser necesario, sólo hace que nuestro paquete se vuelva pesado y lento. Es mejor llamar particularmente a las funciones usando la sintaxis explícita: Biostrings::translate() 9.2.3 ¿Cómo añadir dependencias? Usando usethis: usethis::use_package("ggplot2", type = "Imports") Editando manualmente el archivo DESCRIPTION. 9.3 Licencias Establece quién puede usar tu paquete. Existen diversas licencias pero hablaremos sobre las 3 más comunes: MIT (Massachusetts Institute of Technology): es simple y permisiva. Permite a cualquier persona usar y distribuir tu paquetería con una sola restricción: la distribución debe incluir la declaración de licencia del autor. Existe un texto base al cual se le pueden añadir cláusulas o excepciones. Este es un ejemplo: GPL-2 (General Public License): Permite usar y distribuir tu código con la condición que si se genera una versión modificada de tu código, su distribución debe ser también bajo esta licencia. Aunque está enfocada a la distribución de código abierto, permite dejar en claro quién es el autor del material y evitar la apropiación del código por terceros. Un ejemplo de la aplicación de esta licencia es el desarrollo de Linux. CCO: Esta licencia implica que cedes todos los derechos y el código puede ser utilizado con cualquier fin, excepto fines comerciales. Es el más utilizado en los paquetes. Concede el derecho a utilizar y distribuir el material sin requerir el permiso del autor. 9.4 Paqueterías de código fuente En algunas ocasiones necesitaremos instalar paquetes que no se encuentran compilados, por ejemplo: Paquetes en desarrollo de CRAN o Bioconductor. Versiones anteriores de paquetes de CRAN o Bioconductor. Paquetes que no se encuentran depositados en CRAN o Bioconductor, sino en repositorios personales como GitHub. Paquetes que estás desarrollando de forma local. El paquete remotes será de gran utilidad. Regularmente, los paquetes que instalamos desde algún repositorio como CRAN o Bioconductor son paquetes binarios que ya se encuentran compilados previamente. Existen algunas funciones que nos permiten instalar paquetes desde código fuente. Anteriormente, se solían utilizar las funciones install_* del paquete devtools; sin embargo, recientemente se creó el paquete remotes que contiene las mismas funciones pero está específicamente diseñado para ayudarnos a trabajar con paquetes desde código fuente. 9.5 ¿En dónde podemos encontrar el código fuente de un paquete? Si el paquete se encuentra disponible en CRAN, puedes encontrar el link al código fuente en la sección URL. Si el paquete se encuentra disponible en Bioconductor, puedes encontrar el link al código fuente en la sección Package Archives Si el paquete se encuentra en GitHub o GitLab, necesitarás conocer el nombre de usuario y el nombre del paquete. 9.6 Instalando la última versión en desarrollo Si el paquete se encuentra depositado en CRAN podemos usar la función remotes::install_dev("pkgname") Por ejemplo, para instalar la versión en desarrollo de dplyr usaremos el comando remotes::install_dev("dplyr") Si el paquete se encuentra en Bioconductor usaremos la siguiente función: remotes::install_bioc("pkgname") Por ejemplo, para instalar la versión en desarrollo de regutools, el paquete desarrollado por miembros de la CDSB, usaremos el comando remotes::install_bioc("regutools") 9.7 Instalando paquetes desde GitHub Para poder instalar un paquete desde GitHub necesitaremos conocer el usuario del creador y el nombre del repositorio. remotes::install_github("usuario/repositorio") Por ejemplo, para instalar el paquete starwarssay desarrollado por Erick Cuevas (Erickcufe) utilizaremos el siguiente comando: remotes::install_github("Erickcufe/starwarssay") Independientemente de si el paquete se encuentra en CRAN, Bioconductor, o ninguno de ellos, podemos instalar un paquete depositado en una cuenta de GitHub. Para poder instalar un paquete desde GitHub necesitaremos conocer el usuario del creador y el nombre del repositorio donde se encuentra depositado el paquete. Con esta información usaremos la siguiente función: 9.8 Instalando un paquete local Paso 1: Abre el proyecto del paquete que estás desarrollando. Paso opcional: Ejecuta la documentación si realizaste algún cambio. devtools::document() Paso 2: Construye el paquete: devtools::build() Paso 3: Instala el paquete desde tu proyecto actual: devtools::install() 9.9 Contribuyendo código Una ventaja de descargar el paquete de forma local es que puedes realizar cambios, probar que funciona de manera local y después contribuir (haciendo un pull-request). Usemos el paquete saludo Clona el repositorio en tu computadora. git clone https://github.com/ComunidadBioInfo/saludo.git Ahora puedes abrir el proyecto del paquete y agregar tu código. "],["creación-de-sitios-web-con-pkgdown.html", "10 Creación de sitios web con pkgdown 10.1 Diapositivas 10.2 Instalación 10.3 Configura el paquete para crear el sitio con pkgdown 10.4 Genera la estructura de pkgdown 10.5 Pre-visualiza el sitio de manera local 10.6 Personalizando el _pkgdown.yml 10.7 Las variables bslib 10.8 Layout 10.9 Accessibilidad 10.10 La página de inicio 10.11 La página de referencias 10.12 Articles 10.13 News 10.14 Publicando el sitio web", " 10 Creación de sitios web con pkgdown Joselyn Cristina Chávez Fuentes 31 de octubre de 2024 10.1 Diapositivas div.grey { background-color: #bfbfbf; } div.center { text-align:center; } 10.2 Instalación install.packages("pkgdown") 10.3 Configura el paquete para crear el sitio con pkgdown Este paso se ejecuta solamente una vez, dentro del proyecto del paquete. usethis::use_pkgdown_github_pages() Este paso genera las acciones automáticas de GitHub para renderizar el sitio. El archivo README.md será tu página de inicio, la documentación en man/ va a crear una sección de referencias, y las viñetas serán renderizadas como articles. 10.4 Genera la estructura de pkgdown Este paso se ejecuta solamente una vez. usethis::use_pkgdown() 10.5 Pre-visualiza el sitio de manera local Este paso lo puedes ejecutar para visualizar el sitio cada vez que hagas una modificación, antes de enviar los cambios a GitHub. pkgdown::build_site() 10.6 Personalizando el _pkgdown.yml 10.6.1 Metadatos URL Este es el link donde se va a renderizar el sitio, revisa que sea correcto y, de ser necesario, actualízalo. url: https://pkgdown.r-lib.org template Esta sección permite personalizar la apariencia general del sitio. template: bootstrap: 5 bootswatch: cerulean 10.6.2 Temas Light switch Puedes proporcionar un “light switch” para permitir a tus usuarios cambiar entre temas oscuros y claros configurando la opción de light-switch a true: template: light-switch: true Bootswatch themes La forma más fácil de cambiar toda la apariencia de tu sitio web es usar un tema de Bootswatch: template: bootstrap: 5 bootswatch: materia Puedes ver los temas disponibles en https://bootswatch.com/ Estos temas suelen no ser compatibles con el light switch, pero puedes intentar. Al cambiar el bootswatch theme necesitas renderizar el sitio para ver por completo los efectos del tema. build_site() Mientras estás experimentando, puedes acelerar las cosas simplemente reconstruyendo la página de inicio y el CSS ejecutando: build_home_index() init_site() y luego actualizando el navegador. Los bootswatch theme con barras de navegación altas (lux, pulse) también requieren que se modifique la variable pkgdown-nav-height. Debido a que los temas de bootswatch son proporcionados por el paquete bslib, se puede anidar el campo bootswatch debajo del campo bslib. template: bootstrap: 5 bslib: bootswatch: lux pkgdown-nav-height: 100px 10.7 Las variables bslib Hay tres variables clave que afectan al color: bg (fondo) determina el fondo de la página. fg (primer plano) determina el color del texto. primary establece el color del enlace y el color translúcido en la barra de navegación y la barra lateral. template: bootstrap: 5 bslib: bg: "#202123" fg: "#B8BCC2" primary: "#306cc9" También se pueden personalizar las fuentes predeterminadas utilizadas para la mayoría del texto (base_font), para los encabezados (heading_font) y para el código (code_font). La forma más fácil es proporcionar el nombre de una fuente de Google con la siguiente sintaxis: template: bootstrap: 5 bslib: base_font: {google: "Roboto"} heading_font: {google: "Roboto Slab"} code_font: {google: "JetBrains Mono"} 10.7.1 Syntax highlighting Los colores utilizados para el resaltado de sintaxis en bloques de código están controlados por la configuración theme: template: bootstrap: 5 theme: breeze-light Puedes elegir entre: a11y-dark, a11y-light, arrow-dark, arrow-light, atom-one-dark, atom-one-light, ayu-dark, ayu-light, ayu-mirage, breeze-dark, breeze-light, breezedark, dracula, espresso, github-dark, github-light, gruvbox-dark, gruvbox-light, haddock, kate, monochrome-dark, monochrome-light, monochrome, monokai, nord, oblivion, printing, pygments, radical, solarized-dark, solarized-light, solarized, tango, vim-dark, zenburn. 10.7.2 Navbar style Los campos bg y type de la barra de navegación controlan los colores del fondo y el primer plano respectivamente. Normalmente bg será light, dark, o primary: navbar: bg: primary 10.8 Layout Puedes personalizar el contenido de la barra de navegación, pie de página, utilizando los campos navbar y footer. Todos ellos utilizan una estructura similar que define por separado la estructura global y los componentes individuales. 10.8.1 Navbar Esta es la estructura default: navbar: structure: left: [intro, reference, articles, tutorials, news] right: [search, github, lightswitch] intro: “Get Started”, enlaza a una viñeta o artículo con el mismo nombre que el paquete. reference: si hay archivos . Rd. articles: si hay viñetas o artículos. tutorials: si hay algún tutorial. news: si existe NEWS.md. search: la barra de búsqueda. github: un enlace al repositorio de origen (con un icono), es determinado automáticamente a partir del archivo DESCRIPTION. lightswitch; un “interruptor de luz” para seleccionar el modo claro, modo oscuro o modo automático. Puedes utilizar el campo structure para reorganizar la barra de navegación: navbar: structure: left: [search] right: [reference, articles] Puedes usar la misma sintaxis para organizar el menú de artículos: navbar: components: articles: text: Articles menu: - text: Category A - text: Title A1 href: articles/a1.html - text: Title A2 href: articles/a2.html - text: ------- - text: "Category B" - text: Article B1 href: articles/b1.html 10.8.2 Footer Esta es la estructura por defecto:: footer: structure: left: developed_by right: built_with Que utiliza dos de los tres componentes incorporados: developed_by: una frase que describe a los principales autores del paquete. built_with: una frase que hace publicidad de la misma. package: el nombre del paquete. Puedes personalizar la organización del pie de página: footer: structure: left: pkgdown right: [developed_by, legal] components: legal: Provided without **any warranty**. 10.9 Accessibilidad Las configuraciones default de pkgdown tratan de hacer el sitio lo más accesible posible para todos, pero hay algunos puntos a tomar en cuenta: 10.9.1 Colores Si ajustas cualquier color del tema default, verifica que el contraste entre el fondo y el primer plano no haga difícil leer ningún texto. Puedes utilizar la herramienta de evaluación de accessibilidad en https://wave.webaim.org. El color default genera un contraste demasiado bajo contra el fondo gris pálido de la barra de navegación. Este color viene de la paleta “danger” de bootstrap, así que puedes arreglarlo sobreescribiendo esa variable en tu _pkgdown.yml: template: bootstrap: 5 bslib: danger: "#A6081A" Si utilizas entradas de barra de navegación personalizadas que sólo muestran un icono, asegúrate de utilizar también el campo aria-label para proporcionar una etiqueta accesible que describa el icono. cran: icon: fab fa-r-project href: https://cloud.r-project.org/package=pkgdown aria-label: View on CRAN 10.9.2 Imágenes Para hacer tu sitio completamente accessible, agrega una descripción del contenido de las imágenes en las viñetas usando el campo “fig.alt” de las opciones del chunk de R. 10.10 La página de inicio Los contenidos del home page son automáticamente generados desde el archivo index.md o el README.md. pkgdown les asigna diferentes prioridades, por lo que es possible tener contenidos diferentes en el repositorio de GitHub y la página de pkgdown si provees ambos archivos. La página de inicio también incluye una barra de contenidos con links importantes, como la guía de contribución, el código de conducta, etc. 10.11 La página de referencias pkgdown crea una página de referencia en reference/ para cada una de las funciones del paquete, basado en la documentación. pkgdown ejecuta todos los ejemplos de las funciones, insertando los resultados renderizados en los archivos HTML generados. Por defecto, pkgdown genera un índice de referencia que es sólo una lista de funciones ordenadas alfabéticamente. El índice es mucho más útil con la curación manual porque las funciones pueden agruparse y describirse en categorías. Cada entrada de referencia puede adoptar una de las tres formas siguientes: Un título, definido por los campos title y desc (descripción) opcionales. Un subtítulo, definido por los campos de subtítulo y desc (descripción) opcionales. Lista de temas definidos por un campo de contenido. Mientras editas el índice de referencias, puedes ejecuar la siguiente función para renderizar solamente el índice, lo que permite ver de forma rápida el efecto de los cambios sin tener que renderizar todo el sitio. pkgdown::build_reference_index() reference: - title: "Connecting to Spark" desc: > Functions for installing Spark components and managing connections to Spark contents: - spark_config - spark_connect - spark_disconnect - spark_install - spark_log 10.12 Articles pkgdown creará automáticamente todas las viñetas que se encuentran en la carpeta vignettes/, traduciéndolas a archivos HTML en articles/. Se puede nombrar el artículo de introducción con el nombre del paquete para generar una página “Get Started” automáticamente. 10.13 News Si el archivo NEWS.md está presente, se procesará en un changelog de una sola página basado en los títulos de las secciones del archivo. pkgdown asume que el archivo NEWS.md está formateado con encabezados de nivel uno (#) para especificar el nombre del paquete y el número de versión, y con encabezados de nivel dos (##) para proporcionar una organización temática para cada versión. # pkgdown 1.1.0 ## Bug Fixes * Lots of them 10.14 Publicando el sitio web Haz commit de los cambios y luego push. Ve al repositorio del paquete en GitHub y espera a que la acción de GitHub termine de renderizar el sitio. Ve al sitio web, el formato debe ser similar a https://usuario.github.io/paquete "],["proyectos-colaborativos-1.html", "11 Proyectos colaborativos 11.1 Propuesta 1 11.2 Propuesta 2 11.3 Propuesta 3 11.4 Propuesta 4 11.5 Propuesta 5", " 11 Proyectos colaborativos 11.1 Propuesta 1 11.2 Propuesta 2 11.3 Propuesta 3 11.4 Propuesta 4 11.5 Propuesta 5 "],["404.html", "Page not found", " Page not found The page you requested cannot be found (perhaps it was moved or renamed). You may want to try searching to find the page's new location, or use the table of contents to find the page you are looking for. "]]