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.
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
.
├── 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
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
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
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
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
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
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
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
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
| 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 |
