¿Qué hace Estructura de Datos de Imagen Cerebral (BIDS)?
Resumen
La Estructura de Datos de Imagen Cerebral (BIDS) es un estándar comunitario para organizar y describir conjuntos de datos de neurociencia e investigación biomédica. Define una convención de nomenclatura de archivos consistente, una jerarquía de directorios y un esquema de metadatos para que los conjuntos de datos sean inmediatamente comprensibles tanto para humanos como para herramientas de software. BIDS se rige por la Especificación BIDS (actualmente v1.11.x) y es mantenido por la comunidad a través de la organización BIDS-Standard en GitHub.
Aunque BIDS se originó para MRI, ha crecido mucho más allá de la neuroimagen. La especificación ahora cubre 11 modalidades que abarcan imágenes, electrofisiología y datos de comportamiento:
- Imágenes: MRI (estructural, funcional, difusión, mapas de campo, perfusión/ASL), PET, microscopía
- Electrofisiología: EEG, MEG, iEEG (EEG intracraneal), EMG
- Otros: NIRS (espectroscopía de infrarrojo cercano), captura de movimiento, datos de comportamiento (sin imágenes), espectroscopía de MR
Los BEPs activos están extendiendo BIDS aún más, destacando BEP032 (electrofisiología con microelectrodos) que agregará soporte para registros extracelulares incluyendo sondas Neuropixels, llevando BIDS a una metodología prevalente en la investigación en neurociencia animal (ver también la habilidad neuropixels-analysis).
La adopción es requerida o fuertemente alentada por los principales repositorios de datos (OpenNeuro, DANDI), revistas líderes (NeuroImage, Human Brain Mapping, Scientific Data) y agencias de financiación (NIH, ERC).
El ecosistema Python para BIDS se centra en PyBIDS (pybids) para consultar e indexar conjuntos de datos BIDS, y el bids-validator (basado en Deno, disponible como paquete PyPI bids-validator-deno o directamente a través de Deno) para la verificación de cumplimiento. La conversión de DICOM se realiza típicamente con HeuDiConv, dcm2bids o BIDScoin.
Cuándo Usar Esta Habilidad
Aplique esta habilidad cuando:
- Organice datos de neurociencia en bruto (imágenes, electrofisiología, comportamiento) en estructuras de directorio compatibles con BIDS
- Consulte un conjunto de datos BIDS existente para encontrar archivos específicos por sujeto, sesión, tarea, corrida o modalidad
- Valide un conjunto de datos con la especificación BIDS antes de compartirlo o enviarlo
- Convierta datos DICOM de escáneres a formato BIDS
- Escriba o edite archivos de metadatos JSON complementarios
- Cree derivados compatibles con BIDS (datos preprocesados, resultados de análisis)
- Configure un
dataset_description.jsonpara un nuevo conjunto de datos - Trabaje con entidades BIDS (sujeto, sesión, tarea, adquisición, corrida, etc.)
- Configure
.bidsignorepara excluir archivos de la validación - Prepare datos para cargarlos en OpenNeuro, DANDI u otros repositorios compatibles con BIDS
Instalación
# Biblioteca central de consulta BIDS
uv pip install pybids
# Validador BIDS (basado en Deno, instalado a través del envoltorio PyPI)
uv pip install bids-validator-deno
# Alternativa: instalar directamente a través de Deno
# deno install -g -A npm:bids-validator
# Convertidores DICOM a BIDS (instalar según sea necesario)
uv pip install heudiconv # HeuDiConv - conversión DICOM basada en heurística
uv pip install dcm2bids # dcm2bids - conversión basada en archivo de configuración
# BIDScoin: uv pip install bidscoin
# Complementos útiles
uv pip install nibabel # E/S de archivos NIfTI/otras neuroimágenes
uv pip install pydicom # Lectura de archivos DICOM (usado por convertidores)
Flujos de Trabajo Principales
Doce áreas de flujo de trabajo, cada una con código de ejemplo, están documentadas en references/core_workflows.md:
- Estructura de directorio BIDS — el diseño requerido y dónde pertenece cada modalidad.
dataset_description.json— los campos requeridos y cómo generarlo.- Consultas con PyBIDS —
BIDSLayout, filtros de entidad, metadatos complementarios con herencia automática y construcción de rutas a partir de entidades. - Validación —
bids-validatora través del envoltorio PyPI (recomendado), a través de Deno directamente, el validador Node heredado y el uso de.bidsignorepara excluir archivos. - Entidades y nomenclatura de archivos — el orden de las entidades y la gramática de nomenclatura.
- Conversión de DICOM a BIDS — HeuDiConv (incluyendo la ruta turnkey ReproIn y la secuencia reconocimiento → heurística → convertir) y dcm2bids (basado en archivo de configuración).
- Archivos complementarios de metadatos — campos JSON requeridos y recomendados por modalidad.
- Archivos de eventos — tiempos de eventos de tarea fMRI y convenciones de columnas.
- Archivo de participantes —
participants.tsvy su diccionario de datos. - Derivados — el diseño de derivados y su
dataset_description.json. - PyBIDS avanzado — almacenamiento en caché de índices, inclusión de derivados, regresores de confusión y salida de DataFrame.
- BIDS-Apps — el patrón de invocación estándar, y fMRIPrep, MRIQC y QSIPrep.
Valide temprano y con frecuencia: PyBIDS valida la estructura cuando indexa un conjunto de datos, por lo que un error de indexación generalmente significa un problema de nomenclatura o metadatos, no un error de código.
Materiales de Referencia
Esta habilidad incluye documentación de referencia detallada:
- bids_schema.json: Esquema BIDS legible por máquina (de https://bids-specification.readthedocs.io/en/stable/schema.json). Esta es la fuente autorizada para definiciones de entidades, reglas de ordenamiento, plantillas de nombres de archivo, sufijos permitidos por tipo de datos y requisitos de campos de metadatos. Los esquemas específicos de BEP están en https://github.com/bids-standard/bids-schema/tree/main/BEPs.
- beps.yml: Lista actual de todas las Propuestas de Extensión BIDS con títulos, responsables, estado y enlaces (de bids-website)
- bids_specification.md: Resumen legible por humanos de la tabla de entidades, referencia de tipos de datos, reglas de estructura de directorios, espacios de plantilla y registro de cambios de la especificación
- metadata_fields.md: Campos JSON complementarios requeridos y recomendados para cada modalidad BIDS (anat, func, dwi, fmap, eeg, meg, pet, etc.)
- conversion_tools.md: Flujos de trabajo detallados para HeuDiConv, dcm2bids y BIDScoin, incluyendo ejemplos de heurística/configuración y solución de problemas
Actualice el esquema y los BEP con: python scripts/update_schema.py
Problemas Comunes y Soluciones
1. El validador informa "No es un conjunto de datos BIDS"
Causa: Falta dataset_description.json en la raíz.
Solución: Cree el archivo con al menos {"Name": "...", "BIDSVersion": "1.10.0"}.
2. Advertencia de sujetos inconsistentes
Causa: No todos los sujetos tienen el mismo conjunto de archivos (faltan algunas sesiones, corridas, etc.).
Solución: Esto es una advertencia, no un error. Use --ignoreSubjectConsistency si es intencional. Documente los datos faltantes en participants.tsv o un scans.tsv.
3. Falta SliceTiming
Causa: dcm2niix no pudo extraer el tiempo de corte de los encabezados DICOM.
Solución: Determine el orden de corte a partir del protocolo de exploración y agréguelo manualmente al archivo JSON complementario. Patrones comunes: ascendente, descendente, entrelazado (impar primero o par primero).
4. Confusión en la dirección de codificación de fase
Causa: Las etiquetas de los ejes (i/j/k vs x/y/z vs LR/AP/SI) son confusas.
Solución: En BIDS, use los ejes de imagen NIfTI: i=primer eje, j=segundo, k=tercero. - significa dirección negativa. Para adquisiciones axiales estándar: j es típicamente anteroposterior. Verifique con el protocolo de adquisición.
5. PyBIDS es lento en conjuntos de datos grandes
Causa: Indexación completa del sistema de archivos en cada llamada a BIDSLayout().
Solución: Use database_path para almacenar en caché el índice en un archivo SQLite:
layout = BIDSLayout("/data", database_path="/data/.pybids_cache.db")
6. PyBIDS no encuentra derivados
Causa: El directorio de derivados carece de su propio dataset_description.json.
Solución: Cada directorio de derivados debe tener dataset_description.json con "DatasetType": "derivative".
7. El tiempo del archivo de eventos está desfasado
Causa: Los tiempos de onset son relativos a la referencia incorrecta (por ejemplo, tiempo de disparo vs primer volumen).
Solución: Los inicios deben estar en segundos relativos al primer volumen de la adquisición de esa corrida. Tenga en cuenta los escaneos ficticios si fueron descartados.
8. Los archivos TSV fallan en la validación
Causa: Problemas de codificación o delimitador (espacios en lugar de tabuladores, caracteres BOM, finales de línea de Windows).
Solución: Asegúrese de que los valores estén separados por tabuladores con codificación UTF-8 y finales de línea Unix (\n). Use n/a (no NA, NaN o vacío) para valores faltantes.
Mejores Prácticas
-
Valide temprano y con frecuencia - Ejecute el validador BIDS después de cada conversión o modificación. Corrija los errores antes de que se acumulen.
-
Use herencia de metadatos - Coloque metadatos compartidos (por ejemplo,
TaskName, parámetros del escáner) en archivos complementarios de nivel superior en lugar de duplicarlos en el directorio de cada sujeto. -
Mantenga los datos fuente - Almacene los datos DICOM originales (u otros datos sin procesar) en
sourcedata/para que las conversiones sean reproducibles. Agreguesourcedata/a.bidsignore. -
Use una nomenclatura consistente desde el principio - Defina su esquema de nomenclatura BIDS antes de la recopilación de datos. Use la convención de nomenclatura ReproIn para protocolos de exploración para habilitar la conversión automática.
-
Documente su conjunto de datos - Escriba un
READMEcompleto que describa el diseño del estudio, los parámetros de adquisición, los problemas conocidos y cualquier desviación de BIDS. -
Use scans.tsv para metadatos a nivel de corrida - Registre los tiempos de adquisición por corrida y notas de calidad:
filename acq_time quality func/sub-01_task-rest_bold.nii.gz 2025-01-15T10:30:00 good -
Versione su conjunto de datos - Use
CHANGESpara documentar las modificaciones del conjunto de datos. Considere DataLad para el control de versiones completo de conjuntos de datos grandes. -
Desfigure las imágenes anatómicas - Elimine las características faciales de las imágenes T1w/T2w antes de compartirlas (por ejemplo, usando
pydeface,mri_defaceoafni_refacer). Almacene las versiones desfiguradas como datos principales o use archivos_defacemask. -
Use URIs BIDS para procedencia - En derivados, haga referencia a los archivos fuente usando URIs BIDS:
bids::sub-01/anat/sub-01_T1w.nii.gz. -
Prefiera herramientas comunitarias - Use BIDS-Apps establecidas (fMRIPrep, MRIQC, QSIPrep) en lugar de canalizaciones personalizadas cuando sea posible. Manejan correctamente la E/S de BIDS y producen derivados compatibles con BIDS.
-
Estudie los ejemplos de BIDS - El repositorio bids-examples es la colección canónica de conjuntos de datos BIDS prototípicos que cubren diferentes modalidades y casos de uso (MRI, fMRI, DWI, EEG, MEG, iEEG, PET, ASL, genética, derivados y más). Úselo como referencia al estructurar su propio conjunto de datos, como datos de prueba para herramientas BIDS, o para comprender cómo se debe organizar una modalidad específica. Cada ejemplo pasa el validador BIDS.
Propuestas de Extensión BIDS (BEPs)
Los BEP son propuestas impulsadas por la comunidad para extender BIDS a nuevas modalidades, derivados o metadatos. La lista completa con estado, responsables y enlaces está en references/beps.yml (obtenida de bids-website). Las vistas previas de esquemas específicos de BEP se muestran en https://github.com/bids-standard/bids-schema/tree/main/BEPs.
BEP actuales (a partir de la actualización del esquema):
| BEP | Título | Contenido | Estado |
|---|---|---|---|
| 004 | Imágenes ponderadas por susceptibilidad | raw | Buscando nuevo líder |
| 011 | Derivados de preprocesamiento estructural | derivative | Tiene PR (#518) |
| 012 | Derivados de preprocesamiento funcional | derivative | Tiene PR (#519), esquema implementado |
| 014 | Transformaciones afines y deformaciones de campo no lineales | derivative | Desarrollo de formato X5 |
| 016 | Derivados de imágenes ponderadas por difusión | derivative | Tiene PR (#2211) |
| 017 | Esquema genérico de datos de conectividad BIDS | derivative | En desarrollo |
| 021 | Derivados electrofisiológicos comunes | derivative | En desarrollo |
| 023 | Derivados de preprocesamiento de PET | derivative | En desarrollo |
| 024 | Tomografía computarizada | raw | Buscando contribuyentes |
| 026 | Registros con microelectrodos | raw | Buscando nuevo líder |
| 028 | Procedencia | metadata | Tiene PR (#2099) |
| 032 | Electrofisiología con microelectrodos | raw | Tiene PR (#2307), vista previa disponible — cubre sondas Neuropixels y otras sondas extracelulares; se relaciona con la habilidad neuropixels-analysis |
| 033 | Imágenes ponderadas por difusión avanzadas | raw | Buscando contribuyentes |
| 034 | Modelado computacional | derivative | Tiene PR (#967) |
| 035 | Mega-análisis con derivados no conformes | derivative | En desarrollo |
| 036 | Directrices de datos fenotípicos | raw | Revisión comunitaria |
| 037 | Estimulación cerebral no invasiva | raw | En desarrollo |
| 039 | Redes basadas en reducción de dimensionalidad | raw | En desarrollo |
| 040 | Ultrasonido funcional | raw | En desarrollo |
| 041 | Derivados de modelos estadísticos | derivative | Recopilando comentarios |
| 043 | Mapeo de términos BIDS | metadata | Recopilando comentarios |
| 044 | Estímulos | raw | Tiene PR (#2022), revisión comunitaria |
| 045 | Registros fisiológicos periféricos | raw | Tiene PR (#2267) |
| 046 | Tractografía de difusión | derivative | En desarrollo |
| 047 | Grabaciones de audio/video para experimentos conductuales | raw | Tiene PR (#2231) |
Estándares relacionados:
- BIDS-Stats Models: Especificación JSON para definir análisis de neuroimagen basados en GLM
- BIDS-Derivatives (BEP003): Estándar para resultados preprocesados/analizados (parcialmente fusionado en la especificación)
Ecosistema de Herramientas Relacionadas
| Herramienta | Propósito |
|---|---|
| fMRIPrep | Preprocesamiento de fMRI (produce derivados BIDS) |
| MRIQC | Control de calidad de MRI (produce derivados BIDS) |
| QSIPrep | Preprocesamiento de MRI de difusión |
| TemplateFlow | Plantillas y atlas de neuroimagen con nomenclatura similar a BIDS |
| Fitlins | Implementación de modelos estadísticos BIDS |
| DataLad | Control de versiones para conjuntos de datos grandes, se integra con BIDS |
| OpenNeuro | Repositorio gratuito de conjuntos de datos BIDS |
| DANDI | Archivo de datos de neurofisiología (usa BIDS para algunas modalidades) |
| HeuDiConv | DICOM a BIDS con archivos Python heurísticos |
| dcm2bids | DICOM a BIDS con configuración JSON |
| BIDScoin | DICOM a BIDS con GUI y configuración YAML |
| nwb2bids | Convierte archivos NWB (Neurodata Without Borders) a BIDS |
| CuBIDS | Curación y armonización de conjuntos de datos BIDS |
| bids2table | Indexación tabular eficiente de conjuntos de datos BIDS |
| bids-examples | Colección canónica de conjuntos de datos BIDS prototípicos para todas las modalidades |
Documentación
- Especificación BIDS: https://bids-specification.readthedocs.io
- Documentación del validador BIDS: https://github.com/bids-standard/bids-validator
- Documentación de PyBIDS: https://pybids.readthedocs.io
- Sitio web de BIDS: https://bids.neuroimaging.io