1 Introducción a R y RStudio
1.1 R
- R: es gratis, de acceso libre, utilizado para muchos campos de trabajo, fuerte en la bioinformática a través de Bioconductor
- Instalación a través de CRAN: https://cran.r-project.org/
- Para explorar que se puede hacer con R:
- R Weekly https://rweekly.org/
- R Bloggers https://www.r-bloggers.com/
- Twitter https://twitter.com/search?q=%23rstats&src=typed_query
- Twitter en español https://twitter.com/search?q=%23rstatsES&src=typed_query
- TidyTuesday https://twitter.com/search?q=%23TidyTuesday&src=typed_query
- DatosDeMiercoles https://twitter.com/search?q=%23datosdemiercoles&src=typed_query
- Para pedir ayuda hay muchas opciones
- Material en el que estoy involucrado:
- https://twitter.com/lcolladotor
- https://www.youtube.com/c/LeonardoColladoTorres/playlists
- LIBD rstats club https://docs.google.com/spreadsheets/d/1is8dZSd0FZ9Qi1Zvq1uRhm-P1McnJRd_zxdAfCRoMfA/edit?usp=sharing
- https://twitter.com/CDSBMexico y https://twitter.com/LIBDrstats
- https://twitter.com/Bioconductor
1.2 GitHub
- Permite compartir código
- Se complementa con Git que es para tener un control de versiones de tu código
- Puedes tener páginas web estáticas
- https://pages.github.com/
- https://github.com/lcolladotor/rnaseq_LCG-UNAM_2023. En especial https://github.com/lcolladotor/rnaseq_LCG-UNAM_2023/tree/gh-pages se convierte en http://lcolladotor.github.io/rnaseq_LCG-UNAM_2023/
- Página personal: https://github.com/lcolladotor/lcolladotor.github.com se convierte en http://lcolladotor.github.io/. Está todo hecho con https://github.com/lcolladotor/lcolladotorsource
- Tip: usen el mismo nombre de usuario en GitHub, Twitter, Gmail, etc.
- How to be a Modern Scientist: https://lcolladotor.github.io/bioc_team_ds/how-to-be-a-modern-scientist.html
1.3 RStudio
- RStudio Desktop es gratis http://www.rstudio.com/products/rstudio/download/preview/
- Nos ayuda a realizar muchas cosas con R de forma más rápida
- Demo
rsthemes
- Demo
::install_github(c(
remotes"gadenbuie/rsthemes"
))::install_cran("suncalc")
remotes::install_rsthemes(include_base16 = TRUE) rsthemes
::edit_r_profile()
usethis
## From https://www.garrickadenbuie.com/project/rsthemes/
if (interactive() && requireNamespace("rsthemes", quietly = TRUE)) {
# Set preferred themes if not handled elsewhere..
::set_theme_light("Solarized Light {rsthemes}") # light theme
rsthemes::set_theme_dark("base16 Monokai {rsthemes}") # dark theme
rsthemes::set_theme_favorite(c(
rsthemes"Solarized Light {rsthemes}",
"base16 Monokai {rsthemes}",
"One Dark {rsthemes}"
))
# Whenever the R session restarts inside RStudio...
setHook("rstudio.sessionInit", function(isNewSession) {
# Automatically choose the correct theme based on time of day
## Used rsthemes::geolocate() once
::use_theme_auto(lat = 39.2891, lon = -76.5583)
rsthemesaction = "append")
},
}
## https://blog.rstudio.com/2013/06/10/rstudio-cran-mirror/
options(repos = c(CRAN = "https://cloud.r-project.org"))
- Es actualizado con bastante frecuencia
- RStudio cheatsheets https://posit.co/resources/cheatsheets/
- RStudio projects: usalos para organizar tu código
::create_project("~/rnaseq_2023_notas") usethis
## Start a setup file
::use_r("01-notas.R") usethis
O por ejemplo el archivo 02-visualizar-mtcars.R
## Creemos el archivo R/02-visualizar-mtcars.R
::use_r("02-visualizar-mtcars.R") usethis
con el siguiente contenido:
library("sessioninfo")
library("here")
library("ggplot2")
## Hello world
print("Soy Leo")
## Directorios
<- here::here("figuras")
dir_plots <- here::here("processed-data")
dir_rdata
## Crear directorio para las figuras y archivos
dir.create(dir_plots, showWarnings = FALSE)
dir.create(dir_rdata, showWarnings = FALSE)
## Hacer una imagen de ejemplo
pdf(file.path(dir_plots, "mtcars_gear_vs_mpg.pdf"),
useDingbats = FALSE
)ggplot(mtcars, aes(group = gear, y = mpg)) +
geom_boxplot()
dev.off()
## Para reproducir mi código
options(width = 120)
::session_info() sessioninfo
- Un video de mi club de R sobre RStudio y el uso de
here
:
También hay videos en el canal de YouTube de la CDSB sobre here
como pueden ver aquí.
Para una guía más detallada de cómo organizar tus archivos, revisa https://lcolladotor.github.io/bioc_team_ds/organizing-your-work.html#.YflDV-rMJD8. En particular, LieberInstitute/template_project.
Acá está la guía de mi equipo de configuración de R: https://lcolladotor.github.io/bioc_team_ds/config-files.html#r-setup.
Configura
usethis
con GitHub vía https://usethis.r-lib.org/articles/articles/git-credentials.html
## Para poder conectar tu compu con GitHub
::create_github_token() ## Abrirá una página web, escoje un nombre único
usethis## y luego da click en el botón verde al final. Después copia el token
## (son 40 caracteres)
- Para Mac o Windows:
::gitcreds_set() ## Ojo, copia el token, no tu password de git!
gitcreds## Si no, terminaras en la situación descrita en
## https://github.com/r-lib/usethis/issues/1347
- Para Linux:
En el servidor de RStudio de la LCG-UNAM no funciona bien gitcreds::gitcreds_set()
(porque esa función solo corre bien en macOS o winOS) así que tenemos que editar el archivo .Renviron
donde nuestro token no se guarda de forma privada, y por lo cual hoy en día no es lo que recomienda Jenny Bryan. Pero es lo que funciona en este caso tal como lo hablamos con el autor de gitcreds
vía GitHub. Usando el siguiente comando podemos abrir el archivo .Renviron
.
::edit_r_environ() usethis
Después guarden su token de GitHub usando la siguiente sintáxis (ojo con la línea en blanco al final, las mayúsculas al inicio, y el que no hay espacios antes y después del =
).
GITHUB_PAT=TU_CLAVE_DE_40_LETRAS
Después de guardar el .Renviron
, vayan a Session
hasta arriba y reinicien la sesión de R para que se cargue el .Renviron
antes de continuar.
- Continuemos con tu configuración de GitHub
## Configura tu usuario de GitHub
::edit_git_config() usethis
[user]
name = Leonardo Collado Torres
email = lcolladotor@gmail.com
## Para inicializar el repositorio de Git
::use_git()
usethis
## Para conectar tu repositorio local de Git con los servidores de GitHub
::use_github() usethis
Resultado ejemplo: https://github.com/lcolladotor/rnaseq_2021_notas. El que hice en vivo está disponible vía https://github.com/lcolladotor/rnaseq_2023_notas_en_vivo.
Una vez que termines, agrega la liga al repositorio con tus notas del curso en el la página del curso.
1.4 Material del curso
- Pueden descargar la versión estática con
usethis::use_course('lcolladotor/rnaseq_LCG-UNAM_2023')
- Pueden verlo en línea a través de lcolladotor.github.io/rnaseq_LCG-UNAM_2023
- Pueden clonarlo desde GitHub de tal forma que podrán actualizarlo fácilmente usando git pull
git clone https://github.com/lcolladotor/rnaseq_LCG-UNAM_2023.git
## Si tienen su SSH key configurarda pueden usar
## Info sobre SSH keys de GitHub:
## https://docs.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
git clone git@github.com:lcolladotor/rnaseq_LCG-UNAM_2023.git
O desde R con:
## Opción más nueva:
library("gert")
<- git_clone(
repo "https://github.com/lcolladotor/rnaseq_LCG-UNAM_2023",
"~/rnaseq_LCG-UNAM_2023"
)setwd(repo)
## Otra opción:
::clone(
git2r"https://github.com/lcolladotor/rnaseq_LCG-UNAM_2023",
"~/rnaseq_LCG-UNAM_2023"
)
1.5 Actividad postcards (opcional)
- 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
- Ejemplo https://amy-peterson.github.io/ vía https://github.com/amy-peterson/amy-peterson.github.com
- http://jtleek.com/ vía https://github.com/jtleek/jtleek.github.io
- http://aejaffe.com/ vía https://github.com/andrewejaffe/andrewejaffe.github.io
- https://hadley.nz/ vía https://github.com/hadley/hadley.github.com
- https://emarquezz.github.io/ vía https://github.com/emarquezz/emarquezz.github.io
- https://bpardo99.github.io/ vía https://github.com/bpardo99/bpardo99.github.io
- https://daianna21.github.io/ vía https://github.com/daianna21/daianna21.github.io.
## Creen el RStudio project
::create_project("Su_Usuario.github.io")
usethis
## Configura Git y GitHub
::use_git()
usethis::use_github() usethis
Creen su templado usando postcards
. Va a crear un archivo index.Rmd
## Solo uno de estos, de acurdo 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
- 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. - Comparte tu repositorio vía el Slack de la CDSB en el canal
intro_rnaseq_lcg_2023
. - (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 ^^ al cual pueden unirse a través de esta liga.