Guía completa para configurar el entorno, descargar datos y validar la instalación.
- Python 3.10+
- Conda (recomendado) o pip
- ~40 GB de espacio para datos (10GB) (subset sleep-cassette) y su procesamiento (30GB)
conda env create -f environment.yml
conda activate sleep-stNota: El archivo
environment.ymlincluye todas las dependencias necesarias, incluyendo TensorFlow para modelos de deep learning.
El proyecto usa Sleep-EDF Database Expanded de PhysioNet.
- Ir a physionet.org y crear una cuenta
- Aceptar los términos del dataset Sleep-EDF Expanded
Opción A: Script Python (recomendado)
# Activar entorno
conda activate sleep-st
# Dry-run (muestra lo que hará sin descargar)
python src/download.py --method wget --subset sleep-cassette --out data/raw --dry-run
# Descargar subset "sleep-cassette" (~153 sesiones)
python src/download.py --method wget --subset sleep-cassette --out data/raw --clean
# O descargar base completa con wfdb
python src/download.py --method wfdb --out data/raw --cleanNota: Usá
python src/download.py --helppara ver todas las opciones disponibles.
Opción B: wget directo (requiere validación manual)
wget -r -N -c -np -e robots=off -P data/raw \
https://physionet.org/files/sleep-edfx/1.0.0/sleep-cassette/Si PhysioNet requiere login:
export PHYSIONET_USERNAME=tu_usuario
export PHYSIONET_PASSWORD=tu_passwordO el script lo preguntará interactivamente.
| Flag | Descripción |
|---|---|
--clean |
Borra descargas previas antes de empezar |
--processed-root |
Carpeta de salidas procesadas (default: data/processed) |
--skip-validation |
Salta validación post-descarga |
--qa-report PATH |
Guarda reporte de hashes en PATH |
--strict-validation |
Convierte warnings en errores |
El script de descarga ejecuta validación automática. También podés ejecutarla manualmente:
python -m src.check_data \
--raw-root data/raw \
--processed-root data/processed \
--version 1.0.0 \
--report tmp/raw_sha256_report.csvNota: Usá
python -m src.check_data --helppara ver todas las opciones.
- Convierte
SC-subjects.xlspara confirmar sujetos presentes - Calcula hashes SHA-256 y compara con
SHA256SUMS.txt - Verifica artefactos procesados (
manifest.csv, recortes)
| Resultado | Significado |
|---|---|
OK |
Todos los checks pasaron |
WARNING |
Archivos faltantes o regenerables |
ERROR |
Hashes incorrectos o archivos críticos faltantes |
Tip: Si hay errores, ejecutá
python src/download.py ... --cleany reintentá.
Los archivos de Sleep Cassette siguen este esquema:
| Parte | Significado |
|---|---|
SC |
Sleep Cassette |
4 |
Constante del estudio |
ss |
Número de sujeto (00-99) |
N |
Noche del registro (1 o 2) |
L |
Letra del lote (E, F, G) |
0 |
Dígito fijo para PSG |
| Parte | Significado |
|---|---|
SC4ssNL |
Mismo prefijo que el PSG |
X |
Letra del técnico anotador |
Ejemplo: SC4001E0-PSG.edf → Sujeto 00, noche 1, lote E.
El manifest es un inventario de sesiones disponibles:
python src/manifest.py \
--version 1.0.0 \
--subset sleep-cassette \
--raw-root data/raw \
--out data/processed/manifest.csvNota: Usá
python src/manifest.py --helppara ver todas las opciones.
- Crea
manifest.csvcon columnas:subject_id,subset,version,psg_path,hypnogram_path,status - Muestra resumen: sesiones totales, pares completos, faltantes
Nota: El emparejamiento PSG/Hipnograma se realiza por prefijo canónico (primeros 7 caracteres).
Una vez descargados y validados los datos, continuá con el Data Pipeline para preprocesar las sesiones.