Guía de Aprendizaje: R para Bioinformática

Módulo 1 — Fundamentos, Ecosistema y Estructura de Datos

enlace web: https://rpubs.com/daniloceschin/Rbioinfo-modulo1

Asignatura: Bioinformática
Carrera: Licenciatura en Genética
Institución: IUCBC – CIMETSA, Córdoba, Argentina
Docente: Dr. Danilo G. Ceschin


Cómo usar esta guía
Cada sección combina teoría concisa, bloques de código ejecutables y ejercicios. Se recomienda trabajar con RStudio abierto y ejecutar cada ejemplo a medida que se avanza. Los bloques marcados con # 🧪 EJERCICIO son para resolver de forma autónoma antes de ver la solución.


MÓDULO 1 — Fundamentos y Ecosistema de R


1.1 Perspectiva Histórica: De S a R

R no nació de la nada. Entender su historia explica por qué es hoy la herramienta dominante en bioinformática estadística.

Año Hito Significado
1976 Lenguaje S — Bell Labs (John Chambers) Primer entorno estadístico computacional
1993 Nace R — Ross Ihaka & Robert Gentleman, U. Auckland Reimplementación libre de S bajo licencia GNU
1997 CRAN lanzado Red global de repositorios y control de calidad
2001 Bioconductor — Robert Gentleman Repositorio especializado en bioinformática
2011+ RStudio / Posit IDE moderno + tidyverse, Quarto, Shiny

Filosofía GNU y reproducibilidad científica

R se distribuye bajo licencia GPL (GNU General Public License). En el contexto de la genética y la bioinformática, esto tiene implicaciones directas:

  • El código fuente es abierto y auditable — podés verificar exactamente qué hace cada función estadística.
  • Reproducibilidad total: un análisis hecho en R puede ser replicado por cualquier laboratorio del mundo sin costo de licencias.
  • La comunidad científica global contribuye activamente: más de 21.000 paquetes en CRAN (2025), muchos publicados como material suplementario de papers.

💡 Relevancia directa: En genómica, la reproducibilidad no es opcional — es un criterio de publicación. Journals como Nature, Cell y Genome Research exigen que el código de análisis esté disponible. R + Quarto hace esto trivial.


1.2 ¿Por qué R en Bioinformática y Genética?

Comparación con alternativas

Característica R Python Point-and-Click (SPSS, Galaxy básico)
Estadística nativa ✅ Diseñado para ello General purpose Limitado
Bioinformática ✅ Bioconductor ✅ Biopython, scanpy Según software
Reproducibilidad ✅ Quarto / R Markdown ✅ Jupyter ❌ Manual
Curva de aprendizaje Media Media Baja al inicio
Visualización genómica ✅ ggplot2, Gviz, ggbio ✅ matplotlib, plotly Variable
Costo Gratuito (GPL) Gratuito Freemium / pago
Dominio en genómica ✅ Ecosistema Bioconductor maduro Creciente (scRNA-seq) Nicho

R fue diseñado por y para estadísticos, lo que lo hace ideal para: - Análisis diferencial de expresión génica (DESeq2, edgeR, limma) - Análisis de variantes y GWAS - Genómica funcional (ChIP-seq, ATAC-seq) - Análisis de datos de célula única (scRNA-seq, CITE-seq) - Filogenética computacional - Análisis de datos de secuenciación Nanopore


1.3 CRAN y Bioconductor

Son los dos pilares del ecosistema de paquetes de R, y su distinción es fundamental para un genetista/bioinformático.

CRAN — Comprehensive R Archive Network

# Instalar un paquete desde CRAN
install.packages("ggplot2")
install.packages("tidyverse")   # colección de paquetes para análisis de datos

# Cargar en la sesión activa
library(ggplot2)

# Documentación
help(package = "ggplot2")
?ggplot                          # ayuda de una función específica
  • Más de 21.000 paquetes (2025)
  • Paquetes de uso general: estadística, visualización, manipulación de datos
  • Control de calidad: los paquetes deben pasar tests automáticos para ser aceptados

Bioconductor — El ecosistema de bioinformática en R

# Instalar el gestor (una sola vez)
install.packages("BiocManager")

# Instalar paquetes de Bioconductor
BiocManager::install("DESeq2")            # RNA-seq diferencial
BiocManager::install("edgeR")             # RNA-seq diferencial (modelo NB)
BiocManager::install("limma")             # arrays y RNA-seq con voom
BiocManager::install("Biostrings")        # manipulación de secuencias DNA/RNA/AA
BiocManager::install("GenomicRanges")     # coordenadas genómicas
BiocManager::install("VariantAnnotation") # análisis de variantes (VCF)
BiocManager::install("BSgenome.Hsapiens.UCSC.hg38")            # genoma humano hg38
BiocManager::install("TxDb.Hsapiens.UCSC.hg38.knownGene")     # anotación de genes
BiocManager::install("org.Hs.eg.db")      # base de datos de genes humanos

# Verificar versión instalada
BiocManager::version()

Categorías de paquetes en Bioconductor:

Categoría Ejemplos Uso
RNA-seq DESeq2, edgeR, limma Expresión diferencial
Single-cell scran, scater, SingleCellExperiment scRNA-seq, CITE-seq
Variantes VariantAnnotation, SNPRelate SNPs, indels, VCF
Secuencias Biostrings, ShortRead Manipulación FASTA/FASTQ
Genómica GenomicRanges, GenomicFeatures Coordenadas, BED, GTF
Visualización Gviz, ggbio, EnhancedVolcano Tracks genómicos, volcano plots
Anotación AnnotationHub, biomaRt Acceso a bases de datos públicas

🧬 Para esta asignatura: La mayoría de los análisis que realizaremos usan paquetes de Bioconductor. Entender su estructura es tan importante como conocer R base.


1.4 Entornos de Desarrollo (IDEs)

R nativo vs. RStudio

R nativo (consola) RStudio / Posit
Interfaz Solo texto Gráfica, multi-panel
Scripts Editor básico Resaltado sintáctico, autocompletado
Visualización Ventana separada Panel integrado
Gestión de proyectos Manual .Rproj automático
Integración Git No Sí, panel dedicado
Recomendado para HPC / clusters Análisis interactivo y desarrollo

📌 Nota para usuarios de HPC (CCAD/UNC): En el cluster, R se ejecuta desde la terminal o mediante scripts Slurm. Para trabajo interactivo exploratorio, RStudio local o Posit Cloud es lo recomendado.

Anatomía de RStudio: los 4 paneles

┌─────────────────────────────┬─────────────────────────────┐
│  1. SCRIPT / EDITOR         │  3. ENVIRONMENT / HISTORY   │
│                             │                             │
│  # Tu código reproducible   │  Objetos en memoria:        │
│  Ctrl+Enter → ejecutar línea│  vectores, matrices, dfs,   │
│  Ctrl+Shift+Enter → todo    │  listas, funciones          │
│                             │                             │
├─────────────────────────────┼─────────────────────────────┤
│       2. CONSOLA            │  4. FILES / PLOTS / HELP    │
│                             │                             │
│  > Output inmediato         │  Explorador de archivos     │
│  > Ejecución interactiva    │  Gráficos generados         │
│  > Mensajes de error        │  Paquetes instalados        │
│  > Warnings de Bioconductor │  Documentación integrada    │
└─────────────────────────────┴─────────────────────────────┘

Configuración recomendada para bioinformática:

# Establecer directorio de trabajo
# Mejor práctica: usar proyectos .Rproj en lugar de setwd()
setwd("/ruta/a/tu/proyecto")
getwd()

# Al iniciar siempre verificar el entorno
ls()           # objetos en memoria
sessionInfo()  # versiones de R y paquetes — CRÍTICO para reproducibilidad

1.5 Quarto y R Markdown: Ciencia Reproducible

En genómica, la reproducibilidad es un imperativo: los análisis deben poder re-ejecutarse para obtener exactamente los mismos resultados.

¿Qué es un documento reproducible?

Un único archivo .qmd que contiene: - Código R ejecutable en bloques (chunks) - Texto con narrativa científica, hipótesis, interpretaciones - Resultados (tablas, gráficos, estadísticos) generados automáticamente al renderizar

Estructura de un documento Quarto (.qmd)

---
title: "Análisis de Expresión Diferencial — BRCA1 KO vs Control"
author: "Tu Nombre"
date: today
format:
  html:
    toc: true
    code-fold: true
bibliography: referencias.bib
---

## Descripción del experimento

Análisis RNA-seq de 6 muestras control vs 6 con knock-out de BRCA1
(datos públicos: GEO accession GSE######).

## Setup y carga de datos

```{r}
#| label: setup
#| message: false
#| warning: false

library(DESeq2)
library(tidyverse)
library(EnhancedVolcano)

counts   <- read.csv("data/counts_matrix.csv", row.names = 1)
metadata <- read.csv("data/sample_metadata.csv")
```

## Análisis diferencial

```{r}
#| label: deseq2
#| cache: true   # no re-ejecutar si el código no cambió

dds <- DESeqDataSetFromMatrix(
  countData = counts,
  colData   = metadata,
  design    = ~Grupo
)
dds <- DESeq(dds)
res <- results(dds, contrast = c("Grupo", "KO", "Control"))
```

## Volcano plot

```{r}
#| label: volcano
#| fig-width: 8
#| fig-height: 6

EnhancedVolcano(as.data.frame(res),
  lab      = rownames(res),
  x        = 'log2FoldChange',
  y        = 'padj',
  title    = 'BRCA1_KO vs Control',
  pCutoff  = 0.05,
  FCcutoff = 1.5)
```

Renderizar

library(quarto)
quarto_render("analisis_BRCA.qmd")
# O usar el botón "Render" en RStudio

Formatos de salida

format: html       # interactivo, ideal para colaboradores
format: pdf        # material suplementario de publicaciones
format: docx       # revisión con co-autores
format: revealjs   # presentación de resultados

🔬 Práctica recomendada: Cada análisis bioinformático debería tener un documento Quarto asociado. El .qmd + los datos de input son suficientes para reproducir todo el análisis en cualquier computadora con R instalado.


## Recursos Adicionales

### Documentación oficial

Libros de acceso libre

Comunidad


Guía elaborada para Bioinformática — Licenciatura en Genética
IUCBC – CIMETSA · Córdoba, Argentina · 2026
Dr. Danilo G. Ceschin