Este repositorio contiene un pipeline automatizado en Bash, Python y R para realizar Análisis de Expresión Diferencial (DEA) comparando cohortes de TCGA (Cáncer) y GTEx (Tejido normal).
El flujo de trabajo permite limpiar los datos (eliminando muestras pediátricas de TARGET), explorar las categorías disponibles, filtrar subconjuntos de interés y ejecutar el análisis estadístico utilizando Limma.
.
├── cohort_TCGA_TARGET_GTEx/
│ └── delete_target_samples.sh # Script de limpieza de datasets
├── filtered_datasets/ # Directorio de salida para matrices filtradas
├── DEA_limma/ # Directorio con scripts R para realizar el analisis de expresion diferencial
├── DEA_output/ # Directorio de salida para resultados de Limma
├── listar_categorias.sh # Script de exploración de metadatos
├── filtrar_samples.py # Script de generación de datasets y cambios de ID de genes de Ensembl a HUGO Symbol
├── run_dea.sh # Script de ejecución del análisis (Limma) para un dataset filtrado
├── run_dea.sh # Script de ejecución del análisis (Limma) para un dataset filtrado
├── map_genes.py # Convierte Identificadores de genes Ensembl a nomenclatura HUGO
├── run_dea_for_all_tissues_combinations.sh # Script automatizado para hacer DEA con todas las combinaciones descritas en el archivo all_tissues_combinations.tsv
├── all_tissues_combinations.tsv # Archivo von todas las combinaciones logicas de tegidos sanos vs enfermos en el dataset
├── Interpretacion_de_resutlados.md # Docuementacion: Explicacion de graficas de resultados
└── README.md # Documentacion
- Entorno Unix/Linux (Bash) con Herramientas estándars awk, sed, grep
- R 4.5
- Python 3.12 o superior
Librerias R: Instalar usando:
Rscript DEA_limma/requirements/check_and_install_packages.rLibrerias Python: Instalar usando:
pip3 install polars pandasAntes de empezar a usar las herramientas de este repositorio, es necesario descargar el dataset que combina los datos de TCGA, GTEx y TARGET desde UCSC XENA Browser.
- Descargar los siguientes archivos desde A combined cohort of TCGA, TARGET and GTEx samples:
- Descomprimir en caso de que haga falta
- Mover los 4 archivos dentro del directorio cohort_TCGA_TARGET_GTEx
El siguiente paso es correr por única vez el archivo delete_target_samples.sh para eliminar todas las muestras correspondientes a la base de datos TARGET (que viene incluida en este datasets). A fines de comparacion con analisis de expresion diferencial, no queremos incluir las muestras de origen pediatrico de esta base de datos.
cd cohort_TCGA_TARGET_GTEx
bash delete_target_samples.shEsto creara el archivo expected_counts_without_TARGET_samples.tsv el cual usaremos en todos los analisis de expresion diferencial para obtener las muestras correspondientes a la categoria deseada.
Sigue estos pasos secuenciales para ejecutar el análisis:
-
Exploración de Categorías Para definir qué grupos comparar, utiliza este script que lista todas las categorías disponibles en los metadatos. El output muestra el recuento de muestras por tejido/enfermedad para GTEx y TCGA.
bash listar_categorias.sh
-
Generación del Dataset Una vez decididos los grupos a comparar (basado en el paso anterior), utiliza este script para crear la matriz de conteos filtrada. El script acepta múltiples categorías como argumentos.
Sintaxis: bash filtrar_samples.py "CATEGORIA_1" "CATEGORIA_2" ...
Ejemplo de uso (Adenocarcinoma de Colon vs. Colon Normal):bash filtrar_samples.py "TCGA Colon Adenocarcinoma" "GTEX Colon"
Notas:
- Este paso generará dos archivos (filtered_metadata.txt y filtered_counts.txt) listos para el análisis de expresion - diferencial en la carpeta filtered_datasets/.
- El script tambien cambia los identificadores de genes desde la nomenclatura ENSEMBL a la nomenclatura HUGO Symbol. Para ello usa al archivo cohort_TCGA_TARGET_GTEx/probeMap_gencode.v23.annotation.gene.probemap como referencias de mapeo.
-
Análisis de Expresión Diferencial (DEA) Finalmente, ejecuta el análisis estadístico. Este script toma el dataset generado en el paso anterior y utiliza Limma para encontrar genes diferencialmente expresados.
bash run_dea.sh 'run-name'
'run-name' es un nombre para la corrida. Los resultados finales (PCA, tablas de genes, volcanoplots y heatmaps) se guardarán automáticamente en la carpeta DEA_output/run-name.
Alternativamente al proceso de 3 pasos descrito anteriormente, se creo el archivo all_tissues_combinations.tsv que contiene las 24 combinaciones logicas de comparaciones entre tegidos sanos y con cancer (para no comparar, por ejemplo, tegido sano de colon con tejido enfermo de mama). Usando el script run_dea_for_all_tissues_combinations.sh se corre el flujo completo de seleccion de categorias (obteniendolas del archivo antes mencionado), filtrado y analisis de expresion diferencial. Los resultados se guardaran en la carpeta DEA_output.
bash run_dea_for_all_tissues_combinations.shLuego de elegir las categorias, filtrar las muestras y hacer el DEA, los resultados se almacenan en la carpeta DEA_output dentro de una nueva carpeta con el nombre usado como parametro al correr el script run_dea.sh.
Dentro de este directorio encontraremos:
- Archivo de control de calidad del dataset usado en el DEA: Contiene el grafico del analisis de componentes principales (PCA)
- Archivos de resultados:
- Grafico VolcanoPlot
- Grafico HeatMap
- Tabla de valores estadisticos resultados del DEA (ordenados en primera instancia por p valor ajustado y en segunda instancia por valor absoluto de LogFC)
- Tabla de valores estadisticos resultados del DEA con el top 50 de genes diferencialmente expresados (primeras 50 filas del archivo anterior).
- Tabla de métricas de expresión (media/mediana) para genes que superaron los umbrales adj.P.Val < 0.01 y |logFC| >= 3, separadas por tejidos sano y enfermo.
En el archivo Interpretacion de resultados se explica como se genero y como interpretar cada resultado.