La búsqueda global no está activada.
Salta al contenido principal
Foro

Foro de debate módulo 2

¿Cómo Influyen los Parámetros en el Análisis de RNA-Seq? / How Do Parameters Influence RNA-Seq Analysis?

¿Cómo Influyen los Parámetros en el Análisis de RNA-Seq? / How Do Parameters Influence RNA-Seq Analysis?

de Coral del Val Muñoz - Número de respuestas: 4

Ahora que hemos llegado al Módulo 2, nos adentramos en el preprocesamiento y análisis exploratorio de datos, con un enfoque especial en el análisis de expresión génica a partir de RNA-Seq. Sabemos que RNA-Seq nos permite obtener información valiosa sobre la expresión de genes, pero ¿qué factores pueden modificar drásticamente nuestros resultados?

¿Por qué es tan importante la normalización en RNA-Seq?
El método de normalización que elijamos puede cambiar significativamente las conclusiones que sacamos del análisis de expresión génica. Diferentes técnicas, como Counts per Million (CPM), Transcripts per Million (TPM) y Reads per Kilobase Million (RPKM), ofrecen enfoques distintos para interpretar los datos. ¿conocéis las diferencias?

Pero, además, hay estrategias de normalización entre muestras como Quantile normalization, Trimmed Mean of M-values (TMM) y Upper Quartile normalization, que pueden corregir sesgos técnicos y mejorar la comparabilidad entre muestras.

¿Qué más puede afectar los resultados?
Más allá de la normalización, hay otros aspectos clave que debemos considerar:
Tamaño de las librerías: ¿Cómo influye en la sensibilidad y en la capacidad de detectar genes diferencialmente expresados?
Estrategias de filtrado de genes: ¿Qué pasa si eliminamos genes con baja expresión? ¿Cómo afecta esto a nuestros modelos?
Sesgos técnicos y ruido en los datos: ¿Qué técnicas podemos usar para minimizar el impacto de factores como la profundidad de secuenciación o el efecto de lotes?

Para profundizar en estos temas, os dejamos algunas lecturas:
Johnson, K.A., Krishnan, A. Robust normalization and transformation techniques for constructing gene coexpression networks from RNA-seq data. Genome Biology 23, 1 (2022). DOI: 10.1186/s13059-021-02568-9

Abrams, Z.B., Johnson, T.S., Huang, K. et al. A protocol to evaluate RNA sequencing normalization methods. BMC Bioinformatics 20 (Suppl 24), 679 (2019). DOI: 10.1186/s12859-019-3247-x


----------------------------

Now that we’ve reached Module 2, we’re diving into data preprocessing and exploratory analysis, with a special focus on gene expression analysis using RNA-Seq. We know that RNA-Seq provides valuable insights into gene expression, but what factors can drastically alter our results?

Why is normalization so important in RNA-Seq?

The normalization method we choose can significantly impact the conclusions drawn from gene expression analysis. Different techniques, such as Counts per Million (CPM), Transcripts per Million (TPM), and Reads per Kilobase Million (RPKM), offer distinct approaches to interpreting data. Are you familiar with the differences between them?

Additionally, between-sample normalization strategies, such as Quantile normalization, Trimmed Mean of M-values (TMM), and Upper Quartile normalization, help correct technical biases and improve comparability across samples.

What else can affect the results?

Beyond normalization, several other key factors should be considered:

 Library size: How does it influence sensitivity and the ability to detect differentially expressed genes?
Gene filtering strategies: What happens if we remove low-expression genes? How does this affect our models?
Technical biases and data noise: What techniques can be used to minimize the impact of factors such as sequencing depth or batch effects?

Key Readings to Explore These Topics Further:

Johnson, K.A., Krishnan, A. Robust normalization and transformation techniques for constructing gene coexpression networks from RNA-seq data. Genome Biology 23, 1 (2022). DOI: 10.1186/s13059-021-02568-9

Abrams, Z.B., Johnson, T.S., Huang, K. et al. A protocol to evaluate RNA sequencing normalization methods. BMC Bioinformatics 20 (Suppl 24), 679 (2019). DOI: 10.1186/s12859-019-3247-x


En respuesta a Coral del Val Muñoz

Re: ¿Cómo Influyen los Parámetros en el Análisis de RNA-Seq? / How Do Parameters Influence RNA-Seq Analysis?

de Ignacio Montero Ordóñez -
Hola:

Por aportar algo a este hilo. Las diferencias entre CPM, TPM y RPKM.

CPM es una medida que normaliza los conteos brutos dividiendo el número de lecturas asignadas a cada gen entre el número total de lecturas en millones. No tiene en cuenta el tamaño del gen por lo que no es útil para comparar genes de distintos tamaños. Esto es un problema porque un gen más grande tiene más probabilidades de ser detectado que otro más pequeño.

TPM normaliza primero el número de lecturas por la longitud del gen y luego escala los valores a un millón de lecturas. No tiene unidades.

RPKM similar a TPM, pero después de ajustar al tamaño del gen, se normalizan en función del total de lecturas en millones.

CPM es mejor para comparar entre muestras y TPM y RPKM para comparar dentro de una muestra distintos genes.
En respuesta a Ignacio Montero Ordóñez

Re: ¿Cómo Influyen los Parámetros en el Análisis de RNA-Seq? / How Do Parameters Influence RNA-Seq Analysis?

de Coral del Val Muñoz -

Hola Ignacio, gracias por participar

¡Muy buen resumen! Efectivamente, la elección de la métrica de normalización (CPM, TPM, RPKM) puede cambiar de forma notable la interpretación de tus datos de RNA-Seq. Añado algunas puntualizaciones que suelen ser útiles al profundizar en este tema:

  1. CPM (Counts Per Million)
  • Se calcula dividiendo los conteos brutos de un gen entre el total de lecturas en millones.
  • Ventaja: Es sencillo para comparar la expresión de un mismo gen entre distintas muestras (cuando el tamaño del gen no varía, evidentemente).
  • Desventaja: No ajusta por longitud de gen, así que no es la mejor opción para comparar genes de diferentes longitudes en una misma muestra.
RPKM (Reads Per Kilobase per Million)
  • Ajusta primero por la longitud de cada gen (normaliza las lecturas por kilobase del gen) y luego escala por el total de lecturas en millones.
  • Usos comunes: Se ha usado históricamente para comparar la expresión entre genes dentro de una misma muestra, corrigiendo en parte la probabilidad de detección mayor en genes largos.
  • Limitación: Si tienes datos de RNA-Seq de tipo paired-end, a menudo se utiliza la variante FPKM (Fragments Per Kilobase per Million) en lugar de RPKM (que se diseñó para lecturas de una sola dirección).
TPM (Transcripts Per Million)
  • También normaliza por longitud del gen, pero la principal diferencia frente a RPKM/FPKM es el orden de las normalizaciones. Primero ajusta por la longitud y, tras ello, se escala cada valor a un millón.
  • Ventaja clave: Aporta una medida en la que la suma de la expresión de todos los genes en una muestra equivale a un millón, facilitando la comparación directa entre genes dentro de la misma muestra. Además, TPM tiende a ser más estable cuando se comparan genes entre muestras, porque la proporción de cada gen respecto al total se mantiene.
  • No tiene unidades, pero su interpretación es muy intuitiva: si un gen tiene un TPM de 50, significa que ese gen representa el 0,005% (50/1.000.000) de las moléculas transcritas en la muestra.

¿Cuál elegir en la práctica?

  • CPM suele emplearse para comparar la abundancia de un mismo gen entre muestras diferentes (ej., estudios de expresión diferencial), donde la longitud génica es la misma para ese gen.
  • TPM está ganando popularidad por su consistencia al comparar genes dentro de la misma muestra y, hasta cierto punto, entre muestras, pues las sumas totales están mejor definidas.
  • RPKM/FPKM se sigue usando en muchos laboratorios y artículos más antiguos, pero cada vez se recomiendan menos debido a que TPM resulta más estable y fácil de interpretar en múltiples condiciones.

--- ---- -- ----

 

“Great summary! Indeed, choosing the normalization metric (CPM, TPM, RPKM) can significantly alter the interpretation of your RNA-Seq data. Below are a few clarifications that are often helpful when delving deeper into this topic:

  1. CPM (Counts Per Million)
  • Calculated by dividing the raw counts of a gene by the total number of reads in millions.
  • Advantage: It’s straightforward for comparing the expression of the same gene across different samples (as long as gene length doesn’t vary, of course).
  • Disadvantage: It does not account for gene length, so it’s not the best option for comparing genes of different lengths within the same sample.
RPKM (Reads Per Kilobase per Million)
  • It first normalizes for the length of each gene (normalizing reads per kilobase of the gene) and then scales by the total reads in millions.
  • Common Uses: Historically used to compare expression among genes within the same sample, partly correcting for the higher probability of detection in longer genes.
  • Limitation: If you have paired-end RNA-Seq data, the FPKM (Fragments Per Kilobase per Million) variant is often used instead of RPKM (which was designed for single-end reads).
TPM (Transcripts Per Million)
  • Also normalizes by gene length, but the main difference compared to RPKM/FPKM is the order of normalization. It first adjusts for length, then scales each value to one million.
  • Key Advantage: It provides a metric in which the sum of the expression of all genes in a sample adds up to one million, making it easier to directly compare genes within the same sample. Moreover, TPM tends to be more stable when comparing genes between samples, because the proportion of each gene relative to the total remains consistent.
  • It does not have units, but its interpretation is quite intuitive: if a gene has a TPM of 50, it means that gene represents 0.005% (50/1,000,000) of the transcribed molecules in the sample.

Which one should you choose in practice?

  • CPM is commonly used to compare the abundance of the same gene across different samples (e.g., differential expression studies) where the gene length is the same for that gene.
  • TPM is gaining popularity for its consistency when comparing genes within the same sample and, to some extent, across samples, since the total sums are better defined.
RPKM/FPKM is still used in many labs and older publications, but is increasingly less recommended because TPM is more stable and easier to interpret under multiple conditions.”

En respuesta a Coral del Val Muñoz

Re: ¿Cómo Influyen los Parámetros en el Análisis de RNA-Seq? / How Do Parameters Influence RNA-Seq Analysis?

de Pablo Calvete -
Buenos dias:
Quería preguntar cuales son las diferencias entre las primeras estrategias de normalización y las segundas, es decir entre CPM. TPM y RPKM con Quantile normalization, Trimmed Mean of M-values (TMM) y Upper Quartile normalization.
Por otro lado, me resultaría muy útil si me dijeran o intentaran explicar cuales son las líneas de código empleadas para realizar estas normalizaciones en R.
Muchas gracias por todo el trabajo y de antemano ante estas preguntas.
En respuesta a Pablo Calvete

Re: ¿Cómo Influyen los Parámetros en el Análisis de RNA-Seq? / How Do Parameters Influence RNA-Seq Analysis?

de Coral del Val Muñoz -
Hola Pablo,
No me extiendo en los primeros porque estan explicados arriba pero intento hacerte una comparación entre las diferencias de unos y otros y darte un par de pinceladas de como hacerlo en R con uno de los paquetes. La cuestion es que unos son unidades de expresión y los otros son métodos de normalización.

Unidades de expresión

  • CPM (Counts Per Million) es una unidad que normaliza las cuentas por el tamaño de la biblioteca de cada muestra, pero no tiene en cuenta la longitud del gen. Se utiliza principalmente para comparar la expresión de un mismo gen entre diferentes muestras, pero no es adecuado para comparar la expresión entre genes dentro de la misma muestra.

  • RPKM (Reads Per Kilobase Million) o FPKM (Fragments Per Kilobase Million, en el caso de datos de paired-end) normaliza tanto por el tamaño de la biblioteca como por la longitud del gen. Esto permite comparar tanto entre muestras como entre genes dentro de una muestra, aunque tiene limitaciones en experimentos complejos.

  • TPM (Transcripts Per Million) también normaliza por tamaño de biblioteca y por longitud del gen, pero el orden de los pasos es diferente respecto a RPKM. En TPM, primero se normaliza por la longitud del gen y luego por el total de genes de la muestra, asegurando que la suma total de TPM en cada muestra sea un millón. Esto hace que la comparación entre genes y entre muestras sea más directa y confiable que con RPKM.


Métodos de normalización

  • Quantile normalization es un método que iguala la distribución de expresión de todos los genes en todas las muestras, de modo que todas tengan la misma distribución estadística. Es muy usado en microarrays, pero en RNA-seq puede eliminar diferencias biológicas reales si no se usa con precaución.

  • TMM (Trimmed Mean of M-values) es un método robusto que corrige las diferencias de composición entre las bibliotecas. Lo hace excluyendo genes extremos (muy altamente o muy poco expresados) y calculando un factor de normalización sobre los genes intermedios. Es el método por defecto en edgeR y muy recomendado para RNA-seq.

  • Upper Quartile normalization es una normalización parcial que divide las cuentas de cada gen por el cuartil superior de las cuentas de la muestra correspondiente. Esto ayuda a reducir el impacto de unos pocos genes altamente expresados en la normalización.

En resumen:
  • CPM solo normaliza por biblioteca y sirve para comparar entre muestras.

  • RPKM y TPM también consideran la longitud del gen, pero TPM es más fiable para comparar entre genes y muestras.

  • De los métodos de normalización, TMM es el más robusto para corregir sesgos de composición en RNA-seq, Quantile iguala distribuciones (pero puede borrar diferencias biológicas), y Upper Quartile ayuda a reducir el efecto de genes muy expresados.

Ahora unos ejemplos aproximados de como hacerlo en R

A. CPM, RPKM, TPM en edgeR

library(edgeR)

# counts: matriz de conteo (genes x muestras)
dge <- DGEList(counts=counts)

# CPM
cpm_matrix <- cpm(dge)

# RPKM (requiere vector con longitudes de los genes en bases)
gene_lengths <- c(1000, 2000, 1500, ...)  # En bases (ejemplo)
rpkm_matrix <- rpkm(dge, gene.length=gene_lengths)

# TPM (edgeR no tiene función directa, pero se puede calcular así):
# 1. Divide counts por la longitud del gen en kilobases
rate <- counts / (gene_lengths / 1000)
# 2. Suma total para cada muestra
norm_factor <- colSums(rate)
# 3. Calcula TPM
tpm <- t(t(rate) / norm_factor) * 1e6

B. TMM, Upper Quartile y Quantile

library(edgeR)
# TMM normalization (por defecto)
dge <- calcNormFactors(dge, method="TMM")

# Upper Quartile normalization
dge_uq <- calcNormFactors(dge, method="upperquartile")

# Quantile normalization
library(preprocessCore)
# Requiere matriz de expresión (log transformada idealmente)
log_cpm <- cpm(dge, log=TRUE)
log_cpm_quantile <- normalize.quantiles(as.matrix(log_cpm))
colnames(log_cpm_quantile) <- colnames(log_cpm)
rownames(log_cpm_quantile) <- rownames(log_cpm)