1 Introducción a R y RStudio

Instructor: Leonardo Collado Torres

1.1 R

1.3 RStudio

remotes::install_github(c(
    "gadenbuie/rsthemes"
))
remotes::install_cran("suncalc")
rsthemes::install_rsthemes(include_base16 = TRUE)
usethis::edit_r_profile()

## From https://www.garrickadenbuie.com/project/rsthemes/
if (interactive() && requireNamespace("rsthemes", quietly = TRUE)) {
    # Set preferred themes if not handled elsewhere..
    rsthemes::set_theme_light("Solarized Light {rsthemes}") # light theme
    rsthemes::set_theme_dark("base16 Monokai {rsthemes}") # dark theme
    rsthemes::set_theme_favorite(c(
        "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
        rsthemes::use_theme_auto(lat = 39.2891, lon = -76.5583)
    }, action = "append")
}
## https://blog.rstudio.com/2013/06/10/rstudio-cran-mirror/
options(repos = c(CRAN = "https://cloud.r-project.org"))
usethis::create_project("~/Desktop/cdsb2021_scRNAseq_notas")
## Inicien un archivo para sus notas
usethis::use_r("01-notas.R")

O por ejemplo el archivo 01-visualizar-mtcars.R

## Creemos el archivo R/01-visualizar-mtcars.R
usethis::use_r("01-visualizar-mtcars.R")

con el siguiente contenido:

## Cargar paquetes que usaremos en este código
library("sessioninfo")
library("here")
library("ggplot2")

## Hello world
print("Soy Leo")

## Crear directorio para las figuras
dir.create(here::here("figuras"), showWarnings = FALSE)

## Hacer una imagen de ejemplo
pdf(here::here("figuras", "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)
sessioninfo::session_info()
## Para poder conectar tu compu con GitHub
usethis::create_github_token() ## Abrirá una página web, escoje un nombre único
## y luego da click en el botón verde al final. Después copia el token
## (son 40 caracteres)

gitcreds::gitcreds_set() ## Ojo, copia el token, no tu password de git!
## Si no, terminaras en la situación descrita en
## https://github.com/r-lib/usethis/issues/1347
## Configura tu usuario de GitHub
usethis::edit_git_config()
# [user]
#   name = Leonardo Collado Torres
#   email = lcolladotor@gmail.com

## Para inicializar el repositorio de Git
usethis::use_git()

## Para conectar tu repositorio local de Git con los servidores de GitHub
usethis::use_github()

Resultado ejemplo: https://github.com/lcolladotor/cdsb2021_scRNAseq_notas. El que hice en vivo está disponible vía https://github.com/lcolladotor/cdsb2021_scRNAseq_notas_en_vivo (o https://github.com/lcolladotor/rnaseq_2021_notas_en_vivo para un ejemplo de febrero 2021).

Una vez que termines, agrega la liga al repositorio con tus notas del curso en el Google Sheet del curso. (De ser necesario, pide permisos para editar el archivo.)

1.4 Material del curso

  • Pueden descargar la versión estática con usethis::use_course('ComunidadBioInfo/cdsb2021_scRNAseq')
  • Pueden verlo en línea a través de ComunidadBioInfo.github.io/cdsb2021_scRNAseq
  • Pueden clonarlo desde GitHub de tal forma que podrán actualizarlo fácilmente usando git pull
git clone https://github.com/ComunidadBioInfo/cdsb2021_scRNAseq.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:ComunidadBioInfo/cdsb2021_scRNAseq.git

O desde R con:

## Opción más nueva:
library("gert")
repo <- git_clone(
    "https://github.com/ComunidadBioInfo/cdsb2021_scRNAseq",
    "~/Desktop/cdsb2021_scRNAseq"
)
setwd(repo)

## Otra opción:
git2r::clone(
    "https://github.com/ComunidadBioInfo/cdsb2021_scRNAseq",
    "~/Desktop/cdsb2021_scRNAseq"
)

1.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.407   0.145   0.438
options(width = 120)
sessioninfo::session_info()
## ─ 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)
##  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

Patrocinadores

Agradecemos a nuestros patrocinadores: