Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

11 Commits

Folders and files

Repository files navigation

Machine Learning para Predecir la Evolución del Cáncer

Hackatón del 10º Simposio Argentino de Jóvenes Investigadores en Bioinformática (10SAJIB)

Logo del 10º SAJIB

Introducción

Este proyecto, desarrollado en el marco de la Hackaton del 10mo Simposio Argentino de Jóvenes Investigadores en Bioinformática, se enfoca en el desarrollo y evalución de modelos predictivos para el cáncer de próstata, una de las neoplasias más frecuentes.

El objetivo principal es predecir la recaída bioquímica en pacientes que hayan atravesado una prostatectomía combinando datos transcriptómicos y clínicos mediante diferentes técnicas de machine learning.


Contenido


Objetivo

El objetivo será desarrollar modelos predictivos capaces de estratificar a los pacientes según su riesgo de recaída, explorando distintas metodologías de machine learning y evaluando su desempeño en un conjunto de datos de prueba independiente (held-out data).

Este ejercicio busca no solo familiarizar a los estudiantes con el manejo de datos ómicos y clínicos en oncología, sino también resaltar el papel de la bioinformática y la IA en la medicina de precisión.

📘 Nota: Para un contexto más detallado sobre el trasfondo biológico y la importancia clínica, consulte Consigna.md


Estructura del proyecto

.
├── data/                     # Datos utilizados en el proyecto
│   ├── raw/                  # Datos crudos originales
│   │   └── data.csv
│   ├── interim/              # Datos intermedios generados durante el procesamiento
│   │
│   └── validation/           # Datos independientes para validación del modelo
│       └── datos_hack_PCa_validacion.csv
│
├── notebooks/                # Notebooks de análisis y modelado
│   ├── 01_Exploration.ipynb
│   ├── 02_Cleaning.ipynb
│   ├── 03_Feature_Selection.ipynb
│   ├── 03.1_Differential_expression.Rmd
│   ├── 04_Model_training_100_top_diff_exp.ipynb
│   └── 05_Validation.ipynb
│
├── models/                  # Modelos entrenados y pipelines de preprocesamiento
│   ├── preprocessor/        # Objetos de preprocesamiento serializados
│   ├── mlp_best_*.joblib
│   ├── rf_best_*.joblib
│   ├── svm_best_*.joblib
│   └── xgb_best_*.joblib
│
├── reports/                  # Resultados y figuras generadas
│   └── figures/
│
├── environment.yml           # Especificación del entorno de ejecución
├── LICENSE                   # Licencia del proyecto
├── README.md                 # Este documento
└── Consigna.md               # Consigna original de la hackatón

Metodología

El flujo de trabajo se diseño siguiendo las etapas clásicas de un proyecto de machine learning o ciencia de datos. Cada fase se documentó en los notebooks correspondeintes, buscando maximizar la reproducibilidad y trazabilidad del proceso

1. Exploración y análisis de datos

Se inició con una exploración detallada de los datos clínicos y transcriptómicos para comprender su estructura y distribución. Esta etapa incluyó:

  • Estadísticas descriptivas de las variables clínicas
  • Evaluación de valores faltantes y distribución de variables.
  • Visualización de correlaciones y patrones globales en los datos mediante Análisis de Componentes Principales.
  • Análisis exploratorio de la variabildiad de la expresión génica.

📓 El desarrollo de esta etapa y sus resultados se puede visualizar en 01_Exploration.ipynb

2. Preprocesamiento

Para garantizar la calidad de los datos antes de modelar y explorar diferentes alternativas, se llevaron a cabo etapas de preprocesamiento que incluyen:

  • Eliminación o imputación de valores faltantes
  • Estandarización y normalización de variables numéricas
  • Codificación de variables categóricas mediante One-Hot y ordinal encoding.

📓 El desarrollo de esta etapa y sus resultados se puede visualizar en 02_Cleaning.ipynb

3. Selección de características

Para reducir las dimensionalidad se seleccionaron las características más informativas para el modelado predictivo utilizando enfoques estadísticos. Esta etapa fue importante para permitir reducir el ruid y mejorar el rendimiento de los modelos.

📓 El desarrollo de esta etapa y sus resultados se puede visualizar en 03_Feature_Selection.ipynb

3.1 Análisis de expresión diferencial

Dentro de estas técnicas exploradas para la selección de características y aprovechando que se contaba con datos transcriptómicos se optó por priorizar característcas biológicamente relevantes.

Los genes identificados como significativamente expresados se utilizaron como criterio para la selección de características.

📓 El desarrollo de esta análisis se puede ver en 03.1_Differential_expression.Rmd

4. Entrenamiento de modelos predictivos

Se exploraron diferentes algoritmos de machine learning supervisado, incluyendo:

  • Random Forest
  • Gradient Boosting (XGBoost)
  • Support Vector Machines (SVM)
  • Multi-Layer Perceptron

Cada modelo se entrenó bajo distintos esquemas de representación de variables (numéricas, categoricas y ordinales) y se optimizó usando validación cruzada y búsqueda de hiperparámetros.

📓 El desarrollo de esta análisis se puede ver en 04_Model_training_100_top_diff_exp.ipynb

5. Evaluación y validación

Los modelos fueron evaluados con un set de datos independientes que no fueron utilizados durante su entrenamiento para estimar la capacidad de generalizar de los mismos.

📓 El desarrollo de esta análisis se puede ver en 05_Validation.ipynb

Diagrama del Flujo de trabajo

flowchart TD
    A[Datos crudos] --> B1

    subgraph Preprocesamiento
        B1[Imputación / eliminación de NA]
        B2[Normalización y estandarización]
        B3[Codificación de variables categóricas]
        B1 --> B2 --> B3
    end

    subgraph Selección[Selección de características]
        C[Análisis diferencial de expresión]
    end

    B1 --> C
    B3 --> C
    subgraph Entrenamiento
        E1[Random Forest]
        E2[XGBoost]
        E3[SVM]
        E4[MLP]
    end

    Selección --> E1
    Selección --> E2
    Selección --> E3
    Selección --> E4
    
    F[Datos de Evaluación]

    subgraph Evaluación
        F1[AUC-ROC]
        F2[Accuracy / F1-score]
        F3[Matriz de confusión]
    end

    F --> Evaluación

    E1 --> Evaluación
    E2 --> Evaluación
    E3 --> Evaluación
    E4 --> Evaluación

Loading

Conclusiones


Integrantes

Nombre Rol
Bizzotto, Juan Líder del proyecto
Cartas, Irene Participante
Fernandez, Teresa Graciela Participante
Garcia, Justo Participante
Habas, Clara Participante
De Gracia, Lydier Participante
Vargas, Liliana Participante

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages