2 Ejercicio usando usethis
, here
y postcards
Instructoras: Elisa Márquez Zavala, Citlali Gil Aguillon
Contenido adaptado del Curso de RNASeq de Leonardo Collado Torres
2.1 here
Este paquete es bastante útil
El directorio que toma como base será en el que nos encontremos al momento de cargar el paquete here
, heuristicamente busca la raíz del proyecto y se posiciona en él.
# se descargó previamente, así que solo se carga
library("here") # busca la raiz del proyecto en el que se encuentre
En ciertas ocasiones puede haber algun error, ya que puede chocar con otros paquetes (como plyr
). para evitar esto podemos usar here::here
(que básicamente aclara que la función solicitada es del paquete here
)
::here() here
Podemos checar en qué directorio nos encontramos con getwd()
, si no es el que deseamos podemos cambiarlo con setwd()
getwd() # regresa la path en donde nos encontramos
setwd("direccion/deseada") # nos lleva a la path indicada
Pero con here
podemos no especificar la path
getwd() # para checar en donde nos encontramos
::here() # para checar dónde te encuentras
here
# nos movemos al subdirectorio R
setwd(here::here("R")) # podemos cambiar de directorio, aun así `here está en la raíz
A continuación ofrecemos algunos ejemplos de cómo podría emplearse here::here
# como ejemplo: vamos a guardar datos en archivo y cargarlos
<- 1
a <- 23
c save(a, c, file = here::here("datos-prueba.RData"))
# rm(a,c)
load(here::here("datos-prueba.RData"))
# creamos un directorio
dir.create(here::here("subdirectorio"), showWarnings = FALSE)
# podemos crear un archivo, indicando el subdirectorio, (en este caso el primer argumento)
file.create(here::here("subdirectorio", "nombrearchivo"))
# abrimos el nuevo archivo creado
file.show(here::here("subdirectorio", "nombrearchivo")) # podemos editarlo!!
# por ejemplo si quisieramos ver nuestros archivos del directorio
list.files(here::here(), recursive = TRUE)
2.2 usethis
usethis
puede ser más amigable, por ejemplo para la creación de nuevos archivos .R es capaz de agruparlos en la carpeta R (dando un orden al proyecto)
::use_r("notas-prueba.R") # no importando en qué path estemos usethis
En el siguiente ejercicio veremos algunos usos de usethis
2.3 Vinculando RStudio con Git y GitHub
Ahora vamos a vincular nuestro proyecto de Rstudio con Github, esto es muy util para tener un control de nuestros archivos, poder compartirlos o usar el de otrxs
2.3.1 Prerrequisitos
Debemos tener una cuenta de Github. Si no tienes este es el momento para crear una cuenta!
También debemos instalar git
en nuestras computadoras ya que el paquete gitcreds
lo requiere
Despues de instalar git debemor reiniciar nuestro RStudio para que pueda anexarse
Y la instalación de los siguientes paquetes:
# paquetes que vamos a requerir
install.packages(c("gitcreds", "gert", "gh"))
# cargarlos de manera separada
library("gitcreds")
library("gert")
library("gh")
2.3.2 Creando token de acceso personal (PAT)
Para conectar nuestro repositorio de Rstudio con Github solicitamos un token, esto para que github otorgue permiso a nuestra computadora
Emplearemos el siguiente bloque de código para solicitar dicho token (elige un nombre significativo)
Otra manera de solicitar el token es ingresando a https://github.com/settings/tokens, esta opción no dará una recomendación de los parámetros a seleccionar
El parámetro de expiración del token puede cambiarse para que no expire (por seguridad no lo recomienda Github), de otra manera considera su tiempo de vigencia
Una vez generado el token debes guardarlo, pues no volverá a aparecer.
Siempre puedes volver a generar uno nuevo (no olvides borrar el token anterior)
# Para iniciar conexión con GitHub
::create_github_token() # redirige a github donde eligiras nombre especifico del token
usethis# copia el token para después ingresarlo con gitcreds_set()
::gitcreds_set() # aquí colocas el token (NO tu contraseña de github!!!) gitcreds
NOTA: en el comando
gitcreds::gitcreds_set()
NO debemos poner nuestro token entre parentesis, sino que al ejecutar el comando la misma función nos pedirá ingresar el token
El siguiente paso será configurar nuestro usuario de github en el archivo .gitconfig
# Configurar usuario de gitHub
::edit_git_config() # que abre el archivo .gitconfig
usethis# colocaremos nombre y correo de cuenta de github. SOLO borrar los # y respetar los demas espacios
# [user]
# name = N O M B R E
# email = correodeGithub
2.3.3 Inicializar repositorio de Git y Github
Ahora vamos a inicializar el repositorio en Git (de manera local en tu computadora) y enseguida solicitamos que se conecte con los servidores de Github
# inicializar el repositorio de Git
::use_git() #
usethis
# conectar tu repositorio local de Git con los servidores de GitHub
::use_github() usethis
Git es el software mientras que GitHub es la plataforma web (basada en Git) que permite la colaboración
LISTO!!
Comando útil para checar configuración
::gh_whoami() # para checar cómo quedó la configuración gh
2.3.4 Probar otros comandos de gert
Una vez que ya vinculamos nuestro repositorio con github podemos seguir actualizandolo. Vamos a checar brevemente algunos de los comandos que son útiles para ello:
Checaremos git_add
, git_commit
, git_log
y git_push
# escribimos un nuevo archivo, volvemos a usar here::here para especificar path
writeLines("hola", here::here("R", "prueba-here.R"))
# otra manera es usar use_r
::use_r("archivo-prueba-github.R") # añade archivo al directorio R del proyecto actual
usethis
# Por ejemplo podríamos probar añadir algo nuevo
::git_add("R/archivo-prueba-github.R")
gert
# añadimos commit de lo que se hizo
::git_commit("se subio archivo prueba")
gert
# nos da info de los commits
::git_log()
gert
# sube tus cambios del repo local a los de github
::git_push() # COMANDO IMPORTANTE gert
Puede ser más amigable usar el recuadro de Git que aparece en RStudio para hacer todo lo anterior!
Recuerden subir sus repositorios al Google Sheet
2.4 Ejercicio postcards
- Similar a https://pages.github.com/
postcards
tiene 4 templados de páginas web https://github.com/seankross/postcards- Tu página web debe describir decir algo sobre ti, tus intereses, y tus proyectos además de cómo contactarte
2.4.1 Crear el repositorio
- Podemos crearlo desde RStudio o desde github.com
(opción 1) Desde RStudio
¡Cuidado!: Antes de crear un proyecto, revisen dónde están parados (getwd()
) en su directorio y dónde quieren que se cree
## Creen el RStudio project. Es MUY importante que el usuario debe sea igual que en github
::create_project("Su_Usuario.github.io") usethis
Nuevo proyecto :
## Configura Git y GitHub
# Con use_git() preguntará si desean hacer un commit, y después pedirá reiniciar Rstudio para que obtengan un nuevo botón llamado "git()"
::use_git() usethis
Nuevo botón
::use_github() usethis
Creen su templado usando postcards
corriendo una de las 4 líneas (la que tenga el templado que más les gustó). Va a crear un archivo index.Rmd
## Solo uno de estos, de acuerdo al templado que más les gustó
::create_postcard(template = "jolla")
postcards::create_postcard(template = "jolla-blue")
postcards::create_postcard(template = "trestles")
postcards::create_postcard(template = "onofre") postcards
(opción 2) Desde github
- Creen un nuevo repositorio, público y sin archivo README en https://github.com/new llamado “usuario.github.io” con su nombre exacto en github
¡Cuidado! El repositorio debe ser público y sin README
Creen un nuevo proyecto en RStudio: File > New_project > New directory > Postcards Website
Elijan el templado que más les gustó
Ya con el proyecto creado, hay que configurar git y github
## Configura Git y GitHub
# Con use_git() preguntará si desean hacer un commit, y después pedirá reiniciar Rstudio para que obtengan un nuevo botón llamado "git()"
::use_git() usethis
Nuevo botón:
- Ahora que tienen el botón Git, hagan click y en la esquina derecha habrá un símbolo con dos rectángulos morados y un rombo blanco, denle click.
Ahora el botón Add Remote y ahí podrán nombrar este acceso remoto como gusten, y agregar la URL de su repositorio en github.
Da click en Add y después asignen el nombre de rama master
Ahora pueden crear la rama, y sobreescribir el acceso cuando se los pregunte.
2.4.2 Modificar y subir a github nuestro postcard
Ya que hayan creado con cualquiera de las 2 opciones anteriores pueden continuar:
Llenen su información usando el formato
Markdown
. Por ejemplo https://github.com/andrewejaffe/andrewejaffe.github.io/blob/master/index.Rmd#L17-L31.Agreguen sus perfiles estilo https://github.com/andrewejaffe/andrewejaffe.github.io/blob/master/index.Rmd#L7-L12
Den click en el botón azul de
knit
en RStudio. Es equivalente armarkdown::render("index.Rmd")
. Esto creará el archivoindex.html
.Hagan un
commit
para guardar los archivos nuevos incluyendoindex.html
y luego unpush
para subir los archivos a GitHub con alguna de las siguientes dos maneras:
(opción 1) Botón de Git
* Para guardar los archivos nuevos, incluyendo index.html
, debemos hacer un commit
. Podemos hacerlo con el nuevo botón de git, primero seleccionando los archivos:
Cuando hayamos seleccionado todos los archivos, veremos que la columna Status cambia a una “A” de agregado o added y podemos darle al botón Commit
justo arriba de Status. Esto abrirá una nueva pestaña donde podremos poner un mensaje sobre nuestro commit
y después darle al botón Commit
.
Una vez terminado, en esa misma pantalla podemos darle un push
para subir los archivos a GitHub con el botón de Push
con una flecha verde arriba de Commit message.
(opcion 2) Línea de comandos
Otra manera de hacer es vía línea de comandos, primero pueden agregar los archivos con gert::git_add()
o hacer directamente un commit de todos los archivos y luego un pull:
## Guardamos los archivos nuevos con el commit
::git_commit_all("mensaje sobre el commit")
gert
## Subimos los archivos a github
::git_push() gert
(extra) . Pueden copiar y pegar emojis en sus páginas o utilizar fontawesome para agregar diferentes símbolos (como github o twitter):
- En código YAML
# Utlilizando `r fontawesome::fa("font-awesome-logo-full", fill = "forestgreen")` en código YAML
Se ve así:
- En el texto
# Utlilizando `r fontawesome::fa("font-awesome-logo-full", fill = "forestgreen")` en el texto
- (opcional). Anuncien su nueva página web en Twitter usando el hashtag
#rstats
y/o etiquen al autor depostcards
https://twitter.com/seankross. Pueden después incluir su página web en su introducción en el canal#bienvenida
del Slack de la CDSB ^^.
Recuerden subir sus repositorios al Google Sheet
- Acá podemos ver varias de las páginas web que hicieron lxs participantes del taller.
En el taller de #scRNAseq aprendimos a usar #postcards de @seankross y #usethis de @JennyBryan @jimhester_ et al para hacer páginas web✨
— ComunidadBioInfo (@CDSBMexico) August 13, 2021
El objetivo: aumentar la presencia de Latinxs en la red 🌐
Instructoras 🦆: Elisa @naielisha y @argininaa #rstatsEShttps://t.co/O6AoxRqp6o pic.twitter.com/rGWb1l38hk
2.5 Detalles de la sesión de R
## Información de la sesión de R
Sys.time()
## [1] "2021-08-19 15:15:47 UTC"
proc.time()
## user system elapsed
## 0.544 0.141 0.570
options(width = 120)
::session_info() sessioninfo
## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
## setting value
## version R version 4.1.0 (2021-05-18)
## os Ubuntu 20.04.2 LTS
## system x86_64, linux-gnu
## ui X11
## language (EN)
## collate en_US.UTF-8
## ctype en_US.UTF-8
## tz UTC
## date 2021-08-19
##
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
## package * version date lib source
## bookdown 0.23 2021-08-13 [1] RSPM (R 4.1.0)
## bslib 0.2.5.1 2021-05-18 [1] RSPM (R 4.1.0)
## cli 3.0.1 2021-07-17 [2] RSPM (R 4.1.0)
## digest 0.6.27 2020-10-24 [2] RSPM (R 4.1.0)
## evaluate 0.14 2019-05-28 [2] RSPM (R 4.1.0)
## highr 0.9 2021-04-16 [2] RSPM (R 4.1.0)
## htmltools 0.5.1.1 2021-01-22 [1] RSPM (R 4.1.0)
## jquerylib 0.1.4 2021-04-26 [1] RSPM (R 4.1.0)
## jsonlite 1.7.2 2020-12-09 [2] RSPM (R 4.1.0)
## knitr 1.33 2021-04-24 [2] RSPM (R 4.1.0)
## magrittr 2.0.1 2020-11-17 [2] RSPM (R 4.1.0)
## R6 2.5.0 2020-10-28 [2] RSPM (R 4.1.0)
## rlang 0.4.11 2021-04-30 [2] RSPM (R 4.1.0)
## rmarkdown 2.10 2021-08-06 [1] RSPM (R 4.1.0)
## sass 0.4.0 2021-05-12 [1] RSPM (R 4.1.0)
## sessioninfo 1.1.1 2018-11-05 [2] RSPM (R 4.1.0)
## stringi 1.7.3 2021-07-16 [2] RSPM (R 4.1.0)
## stringr 1.4.0 2019-02-10 [2] RSPM (R 4.1.0)
## withr 2.4.2 2021-04-18 [2] RSPM (R 4.1.0)
## xfun 0.25 2021-08-06 [2] RSPM (R 4.1.0)
##
## [1] /__w/_temp/Library
## [2] /usr/local/lib/R/site-library
## [3] /usr/local/lib/R/library