Skip to content

API de iris

API REST construida con FastAPI + orjson. Expone el pipeline de anotación de variantes y la consulta de genes con sus variantes asociadas.

Arranque rápido

# Variables de entorno requeridas (al menos una para que los stores funcionen)
export IRIS_CLINVAR_TSV=/data/clinvar/clinvar.tsv.gz
export IRIS_MCPS_DIR=/data/mcps/
export IRIS_GENCODE_GTF=/data/gencode.v46.annotation.gtf.gz
export IRIS_LOFTEE_TABIX=/data/wes-svm.loftee.tabix.tsv.gz

uvicorn iris.applications.api.main:app --reload

La documentación interactiva estará disponible en /docs (Swagger UI) y /redoc (ReDoc).

Configuración de stores

Cada store se activa configurando su variable de entorno correspondiente. Un store con path vacío queda registrado como available: false y devuelve 503 si se intenta usar.

Variable Store Tipo
IRIS_CLINVAR_TSV clinvar Annotator
IRIS_MCPS_DIR mcps_af Annotator + Region
IRIS_LOFTEE_TABIX loftee Annotator
IRIS_CADD_TABIX cadd Annotator (próximo)
IRIS_DBNSFP_TABIX dbnsfp Annotator (próximo)
IRIS_GENCODE_GTF gencode Gene

Perfiles de anotación

Los perfiles agrupan stores en pipelines nombrados. Se definen en applications/api/profiles.toml y se pueden ver en tiempo de ejecución llamando a GET /genomics/profiles.

Perfil Stores (en orden) Uso típico
clinical clinvar → mcps_af → loftee Interpretación clínica
research clinvar → mcps_af → cadd → dbnsfp → loftee Análisis de investigación
minimal clinvar → mcps_af Screening rápido
gene_view clinvar → loftee Vista génica (mcps ya viene del region store)

Resolución del pipeline

La llamada puede combinar un perfil base con overrides:

pipeline = profile_stores − exclude + add

Ejemplo:

{
  "profile": "clinical",
  "add":     ["cadd"],
  "exclude": ["mcps_af"]
}

Resultado: ["clinvar", "loftee", "cadd"]