La explosión de datos genómicos en investigación y clínica presenta un desafío fundamental en la computación distribuida: cómo permitir la consulta eficiente, escalable y segura de grandes cohortes de datos sensibles sin comprometer la privacidad ni requerir una centralización costosa. El protocolo Beacon de GA4GH aborda la interoperabilidad, pero su implementación a escala requiere una arquitectura que maneje petabytes de datos, miles de millones de ubicaciones genómicas y millones de individuos, manteniendo tiempos de respuesta en segundos y costos operativos mínimos.
sBeacon resuelve este problema mediante una arquitectura serverless que desacopla el almacenamiento de datos genómicos brutos de su indexación y consulta. Al no copiar los archivos VCF originales, sino solo indexar metadatos y referenciar los datos genómicos en S3, sBeacon minimiza la sobrecarga de ingesta y almacenamiento, al tiempo que permite consultas federadas. Este enfoque se alinea con el principio de 'data locality' y 'least privilege' en un entorno distribuido, donde los datos sensibles permanecen bajo el control de su propietario original.
Arquitectura del Sistema
La arquitectura de sBeacon se divide en dos procesos principales: onboarding de datos y consulta de datos. Durante el onboarding, los usuarios envían la ubicación de los datos genómicos (archivos VCF en S3) y metadatos asociados a un endpoint de API Gateway. Una función AWS Lambda orquesta la indexación, escribiendo los metadatos en S3 en formato ORC y utilizando Amazon Athena para construir tablas de metadatos. El CSIRO Ontoserver se emplea para construir un índice ontológico para consultas avanzadas de metadatos, cuyos resultados también se almacenan en S3.
Para la consulta, las peticiones de los usuarios llegan a API Gateway y son dirigidas a una función Lambda de microservicio. Esta función consulta una tabla de Amazon DynamoDB para términos ontológicos relevantes y luego utiliza Amazon Athena para consultar las tablas de metadatos en S3. Para las consultas de variantes genómicas, la función de microservicio invoca un 'Initiator Lambda function' que, a su vez, distribuye (fan-out) la ejecución de funciones 'splitQuery' y 'performQuery' a través de los archivos VCF y las regiones genómicas. La función 'performQuery' utiliza 'bcftools' y 'htslib' para realizar solicitudes HTTP de rango de bytes (byte-range requests) directamente a los archivos VCF en S3, leyendo solo la región de interés. Los resultados agregados se devuelven al usuario, garantizando que los datos genómicos brutos nunca salgan del bucket S3 de origen.
Flujo de Onboarding de Datos
- 1 Usuario Envía ubicación de datos genómicos (VCF en S3) y metadatos
- 2 API Gateway Recibe la petición de onboarding
- 3 AWS Lambda (Orquestador) Maneja la indexación de datos
- 4 Amazon S3 Almacena metadatos en formato ORC e índices
- 5 CSIRO Ontoserver Construye índice ontológico para metadatos
- 6 Amazon Athena Ejecuta CTAS queries para construir tablas de metadatos
Flujo de Consulta de Datos
- 1 Usuario Envía consulta a API Gateway
- 2 API Gateway Dirige la consulta a Lambda de Microservicio
- 3 AWS Lambda (Microservicio) Consulta DynamoDB para términos ontológicos
- 4 Amazon Athena Consulta tablas de metadatos en S3
- 5 AWS Lambda (Initiator) Invoca funciones 'splitQuery' y 'performQuery' en paralelo
- 6 AWS Lambda (performQuery) Lee VCFs de S3 usando bcftools/htslib (byte-range requests)
- 7 AWS Lambda (Microservicio) Recopila resultados y los formatea según protocolo Beacon
- 8 Usuario Recibe la respuesta de la consulta
| Capa | Tecnología | Justificación |
|---|---|---|
| storage | Amazon S3 | Almacenamiento de archivos VCF genómicos brutos y metadatos indexados en formato ORC. Sirve como fuente de datos para Athena y para las funciones Lambda de consulta de variantes. ACLs privadas, BucketOwnerPreferred ownership controls. |
| compute | AWS Lambda | Proporciona la capacidad de cómputo serverless para la orquestación de la ingesta, la lógica de microservicios, y la ejecución paralela de consultas de variantes genómicas ('fan-out'). vs AWS Step Functions (rechazado por limitaciones de payload y costo para este workload) Entornos de ejecución efímeros, /tmp de 1024 MB para performQuery, timeout de 10 segundos para bcftools. |
| data-processing | Amazon Athena | Motor de consultas serverless para los metadatos almacenados en S3 en formato ORC, utilizado tanto en la ingesta (CTAS queries) como en la fase de consulta. |
| messaging | Amazon API Gateway | Punto de entrada público para todas las operaciones de onboarding y consulta, gestionando la autenticación y el enrutamiento de peticiones a las funciones Lambda. Authorizer de Cognito User Pools para JWT, validación de token (firma, expiración, audiencia). |
| storage | Amazon DynamoDB | Almacena términos de ontología para consultas de metadatos, proporcionando una base de datos NoSQL de baja latencia para la resolución de términos. |
| security | Amazon Cognito | Gestiona la autenticación de usuarios y la autorización basada en roles (RBAC) a través de grupos, emitiendo JWTs que son validados por API Gateway y consumidos por Lambda. Grupos de Cognito mapeados a niveles de divulgación (boolean-access, count-access, record-access, admin). |
| orchestration | Terraform | Herramienta de Infraestructura como Código (IaC) para definir y desplegar todos los recursos de AWS necesarios para sBeacon. |
Trade-offs
Ganancias
- ▲▲ Escalabilidad
- ▲ Costo operativo
- ▲ Latencia de consulta
- ▲ Privacidad y control de datos
- ▲ Esfuerzo de ingesta
Costes
- △ Complejidad de monitoreo de concurrencia de Lambda
- △ Manejo explícito de reintentos en Lambda síncrona
- △ Latencia de 'cold start' en Lambda (mitigable con concurrencia provisionada)
- △ Límites de timeout de API Gateway para consultas de genoma completo
Fundamentos Teóricos
El diseño de sBeacon resuena con principios fundamentales de sistemas distribuidos y bases de datos. La estrategia de 'no mover los datos' y realizar consultas 'in-situ' sobre S3, utilizando solicitudes de rango de bytes, es una aplicación práctica del concepto de 'predicate pushdown' o 'data skipping' en bases de datos analíticas, donde el procesamiento se acerca a los datos para minimizar la transferencia de información irrelevante. Esto se ve en sistemas como Apache Parquet o ORC, donde los metadatos permiten saltar bloques de datos no pertinentes.
La federación de consultas sin una base de datos centralizada, manteniendo los datos bajo el control de sus propietarios, aborda directamente los desafíos de privacidad y soberanía de datos, un tema recurrente en la investigación de bases de datos distribuidas y sistemas de información federados desde los años 80 y 90. La arquitectura serverless, con sus funciones efímeras y aislamiento de cómputo, refuerza un modelo de seguridad de 'zero trust', un concepto que ha ganado tracción en la ciberseguridad moderna y que se alinea con la necesidad de proteger datos altamente sensibles como los genómicos.