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# 🧪 EJERCICIOson para resolver de forma autónoma antes de ver la solución.
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 |
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:
💡 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.
| 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
Son los dos pilares del ecosistema de paquetes de R, y su distinción es fundamental para un genetista/bioinformático.
# 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
# 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.
| 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.
┌─────────────────────────────┬─────────────────────────────┐
│ 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
En genómica, la reproducibilidad es un imperativo: los análisis deben poder re-ejecutarse para obtener exactamente los mismos resultados.
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
---
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)
```
library(quarto)
quarto_render("analisis_BRCA.qmd")
# O usar el botón "Render" en RStudio
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
Guía elaborada para Bioinformática — Licenciatura en
Genética
IUCBC – CIMETSA · Córdoba, Argentina · 2026
Dr. Danilo G. Ceschin