Recursos extras · práctica con código

Recursos extras / faltantes

La práctica de Posit Cloud y R que veremos en video
Complemento de los bloques B y C

Dra. Yalbi I. Balderas-Martínez
Ing. Luis Alberto Meza Cova
LABBIC · INER

Qué encontrarás aquí

Durante la sesión en vivo, el servicio de Ensembl/biomaRt no estuvo disponible, así que la práctica con código de los bloques B y C quedó pendiente.

Aquí la reunimos completa para explicarla en videos: el setup de Posit Cloud, las consultas con biomaRt, GenomicRanges y karyoploteR, y el flujo del gen humano al ortólogo en ratón con IMPC.

Nota

Los conceptos (Human Cell Atlas, CELLxGENE, Mouse Cell Atlas, ortología, las 3R) se vieron en vivo; aquí está solo la parte práctica que faltó.

Setup · Posit Cloud

Antes de cualquier práctica: dejar el entorno de R / Bioconductor funcionando en la nube.

A continuación, el paso a paso para abrir el proyecto y verificar que biomaRt carga.

Posit Cloud

  1. https://posit.cloud
  2. Iniciar sesión
  3. Abrir el enlace al proyecto del curso
  4. Esperar a que se cree la copia personal (10–30 s)
  5. Ejecutar el chunk de prueba
library(biomaRt)
library(GenomicRanges)
sessionInfo()

Tip

Si imprime la información de la sesión sin errores, el entorno está listo.

Nota

Si library(biomaRt) falla o el proyecto no carga, abre la copia oficial del proyecto del curso y vuelve a intentar.

Bloque B · R y Bioconductor

La práctica de Yalbi: del cariotipo al detalle de los genes de una región, con código reproducible.

Por qué consultar con código

De la vista del cariotipo completo bajamos al detalle: ¿qué genes contiene una región?

Lo que se hace clic por clic, lo automatizamos.

  • Reproducibilidad — el análisis queda como código que cualquiera puede volver a correr
  • Escala — mil genes con el mismo esfuerzo que uno
  • Trazabilidad — cada paso documentado y auditable

Tres paquetes centrales

Los tres son de Bioconductor (software libre, revisado por pares, para genómica en R).

Paquete Qué hace · para qué Quién lo creó
biomaRt Trae datos de Ensembl con código: genes, coordenadas, ortólogos Durinck et al., 20051
GenomicRanges Representa y opera regiones del genoma Lawrence et al., 20132
karyoploteR Dibuja datos sobre el cariotipo (ideograma) Gel & Serra, 20173

Nota

Ensembl: base de datos pública de genomas. GenomicRanges es tan central que cientos de paquetes de Bioconductor lo usan como cimiento.

biomaRt · cuatro pasos

Un mart es un catálogo consultable de Ensembl; aquí, el de genes humanos.

Cuatro pasos de una consulta biomaRt: conectar al mart de Ensembl, definir atributos, definir filtros y ejecutar, que devuelve una tabla de genes

mart <- useEnsembl("genes", dataset = "hsapiens_gene_ensembl")

genes <- getBM(
  attributes = c("hgnc_symbol", "start_position", "end_position"),
  filters    = c("chromosome_name", "start", "end"),
  values     = list("7", 72726578, 74142672),
  mart       = mart
)

Atributos útiles

Atributo Devuelve
hgnc_symbol Símbolo del gen
ensembl_gene_id ID Ensembl
entrezgene_id ID NCBI
gene_biotype Codificante, lncRNA, pseudogén
description Descripción funcional
go_id, name_1006 Términos GO

listAttributes(mart) lista todos los disponibles.

GenomicRanges

Representación estándar de regiones del genoma en Bioconductor.

region <- GRanges(
  seqnames = "7",
  ranges   = IRanges(start = 72726578, end = 74142672)
)

width(region)       # tamaño en pb
findOverlaps(...)   # solapamiento
intersect(...)      # intersección
region + 1e5        # extender 100 kb a cada lado

Una región sobre el cromosoma 7 definida por inicio (start), fin (end) y ancho (width), con la idea de extenderla a cada lado

Nota

Pieza central del análisis genómico en R. Se integra con rtracklayer, Biostrings, VariantAnnotation, etc.

karyoploteR

Dibuja datos sobre el ideograma (el dibujo del cariotipo con sus bandas).

kp <- plotKaryotype(genome = "hg38")
kpAddBaseNumbers(kp)
kpRect(kp, chr = "chr7",
       x0 = 72726578, x1 = 74142672,
       y0 = 0, y1 = 1, col = "red")
kpText(kp, chr = "chr7", x = 73434625,
       y = 1.1, labels = "del(7)(q11.23)")

Tip

Funciones específicas para densidades, heatmaps, líneas, puntos: kpHeatmap, kpDensity, kpLines, kpPoints.

Census · consultar desde R

Lo que en el navegador (CELLxGENE) haces a mano, en R lo automatizas — igual que biomaRt.

library(cellxgene.census)
census <- open_soma()                 # abrir el corpus
expr <- get_seurat(
  census, organism = "Homo sapiens",
  var_value_filter = "feature_name == 'ELN'"
)

Nota

Census: API (TileDB-SOMA) para traer el corpus de CELLxGENE a R o Python. Misma idea que biomaRt con Ensembl: pedir datos con código, reproducible.

Manos al código · el notebook en Posit Cloud

Posit Cloud = RStudio en el navegador. Corres el notebook del bloque sustituyendo tus coordenadas; los chunks ya están escritos.

Sección del notebook Qué hace
1. Setup Carga los paquetes (ya instalados)
2. Variables Pones tu cromosoma y coordenadas
3. Genes · biomaRt Genes de la región + filtrar codificantes
4. GenomicRanges Tamaño de la región y solapamientos
5. karyoploteR Dibuja la región y los genes en el cariotipo
6. (Opcional) Expresión HCA/CELLxGENE: ¿en qué células?
7. Guardar mis_genes.rdsinsumo del bloque C

Nota

Lo nuevo del ejercicio es sustituir las coordenadas y leer la tabla; el código ya está hecho. Al final, guarda mis_genes.rds (lo usa el bloque C).

Ejercicio 1 · 25 min

Cada quien toma su variante del tablero de Miro y, en su notebook:

  1. Conectar a Ensembl
  2. Recuperar genes codificantes en la región
  3. Filtrar a los de relevancia clínica
  4. Visualizar la región en el cariotipo

Nota

El notebook tiene los chunks pre-armados. Sustituyen las coordenadas y revisan el resultado.

Ejercicio 2 · 15 min

Continuación del ejercicio 1:

  • Recuperar términos Gene Ontology (GO: vocabulario estándar de las funciones de los genes) para los genes encontrados
  • Identificar funciones relevantes para el fenotipo de interés
  • Preparar la lista para el bloque siguiente (ortólogos en ratón)

Tip

Al terminar, guarda mis_genes.rds: es el insumo de la práctica del bloque C.

Bloque C · del gen humano al ratón con código

La práctica de Meza: del gen humano a su ortólogo en ratón y su fenotipo, con código.

  • Ortólogos murinos con biomaRt
  • Fenotipos del knockout vía API REST del IMPC
  • Tabla integrada con tu propia lista de genes

Ortólogos con biomaRt

ortologos <- getBM(
  attributes = c("hgnc_symbol",
                 "mmusculus_homolog_associated_gene_name",
                 "mmusculus_homolog_orthology_type"),
  filters    = "hgnc_symbol",
  values     = genes_humanos,
  mart       = mart_h
)

Nota

one2one, one2many, many2many; vacío = sin ortólogo identificable.

IMPC vía API REST

Pedimos la info del IMPC con una API: forma estándar de pedir datos a un servicio web. REST = la petición va por una URL; JSON = el formato de texto en que responde (fácil de procesar en R).

url <- paste0(
  "https://www.ebi.ac.uk/mi/impc/solr/genotype-phenotype/select",
  "?q=marker_symbol:", gen_simbolo,
  "&fl=marker_symbol,mp_term_name,p_value",
  "&rows=20&wt=json"
)

resp <- request(url) |> req_perform() |> resp_body_json()

Nota

Mismos campos que en la web del IMPC: mp_term_name (el fenotipo: rasgo o anomalía observable) y p_value (< 1e-4 = efecto real, no azar).

Ejercicio

  1. Recuperar la lista de genes del bloque B (mis_genes.rds)
  2. Ortólogos con biomaRt
  3. Fenotipos en IMPC
  4. Tabla integrada y categorías
  5. Identificar un gen “con fenotipo” y uno “sin fenotipo”

Nota

La tabla integrada y la lista priorizada (con sus tres categorías y las 3R) se explicaron en vivo en el bloque C; aquí produces esa tabla con tu propia lista de genes.

Recursos

1.
2.
Lawrence, M. et al. Software for Computing and Annotating Genomic Ranges. PLoS Computational Biology 9, e1003118 (2013).
3.
4.
Groza, T. et al. The International Mouse Phenotyping Consortium: comprehensive knockout phenotyping. Nucleic Acids Research 51, D1038-D1045 (2023).
Inicio