OneKGPd-MCP

Acceso en tiempo real al conjunto de datos del Proyecto 1000 Genomas

Documentación

Servidor MCP del Conjunto de Datos del Proyecto 1000 Genomas

Acceso en lenguaje natural al conjunto de datos del Proyecto 1000 Genomas, alojado en línea en Dnaerys variant store

Secuenciado y alineado por New York Genome Center (GRCh38). 3202 muestras: 2504 muestras no relacionadas del panel de la fase tres + 698 muestras de 602 tríos familiares - detalles del conjunto de datos

Características Clave

  • acceso en tiempo real a 138 044 723 variantes únicas y ~442 mil millones de genotipos individuales

  • selección de variantes, muestras y genotipos basada en coordenadas, anotaciones, cigosidad, población

  • filtrado por VEP (impacto, biotipo, tipo de característica, clase de variante, consecuencias), Significado Clínico de ClinVar (202502), gnomADe + gnomADg 4.1, Puntuación AlphaMissense y anotaciones de Clase AlphaMissense

  • las variantes devueltas se anotan con HGVSp, gnomADe + gnomADg, puntuación AlphaMissense + estadísticas a nivel de cohorte

    • las anotaciones HGVSp son para transcritos canónicos para reducir la carga cognitiva de los LLM
  • muestras anotadas con: familyId, gender, paternalId, maternalId, relationship, children, population, superpopulation, indicador de fase 3

Servicio en Línea

Servicio MCP remoto vía Streamable HTTP:

Ejemplos

Complejos estructurales macromoleculares

Trata el Proteasoma 26S como una máquina 3D mecánicamente redundante y mapea cada variante missense de los individuos del KGP en las 33 subunidades. Realiza un análisis espacial para determinar si la variación patogénica está estadísticamente particionada hacia la 'Tapa' distal (Zona C) en lugar de las interfaces más conservadas evolutivamente del 'Núcleo' (Zona A) o 'Compuerta' (Zona B). Identifica individuos con una alta carga acumulativa (2+ variantes 'Probablemente Patogénicas') para investigar la compensación entre subunidades, buscando mutaciones pareadas de 'debilitamiento' y 'estabilización' en las bisagras proteína-proteína. Finalmente, define la 'tolerancia mecánica' del proteasoma estableciendo la máxima disrupción estructural acumulada observada en un solo individuo sano basada en puntuaciones AlphaMissense y valores ΔΔG calculados.

Complejos estructurales macromoleculares

El Complejo MCM2-7 (El "Motor Helicasa de ADN") es una obra maestra molecular. Es un anillo heterohexamérico donde cada subunidad es un "engranaje" distinto en el motor de desenrollado del ADN. A diferencia de los anillos homoméricos (donde cada subunidad es igual), este complejo es asimétrico. Cada interfaz entre subunidades es única, y no todas consumen ATP a la misma velocidad. La interfaz MCM2/5 es la "compuerta" que debe abrirse físicamente para permitir que el ADN entre al anillo y luego se cierre de golpe. Este es un punto mecánico de alto estrés.

Identifica individuos en la cohorte KGP que porten variantes missense en la interfaz MCM2/5. Específicamente, busca variantes de 'inversión de carga' (p. ej., Aspartato a Lisina). En estas muestras específicas, analiza el 'acoplamiento compensatorio': ¿portan una variante secundaria recíproca de inversión de carga en la interfaz de la subunidad opuesta que restaura el 'pestillo' electrostático?

Identifica individuos en la cohorte KGP que porten variantes de alta patogenicidad en los motivos Walker A o Walker B (el corazón que consume ATP) de cualquier subunidad MCM en el Complejo MCM2-7. Para estos individuos, realiza un análisis de 'Flujo Sistémico': observa sus variantes en la polimerasa de la hebra conductora (POLE) y la abrazadera deslizante (PCNA). ¿Detectas una firma de 'Desaceleración Coordinada' donde el motor, la abrazadera y la polimerasa portan variantes que sugieren una horquilla de replicación más lenta pero altamente precisa?

Complejos estructurales macromoleculares

El Exosoma de ARN humano (núcleo Exo-9) es una "máquina muerta" que actúa como andamio. En organismos inferiores, el anillo en sí puede degradar ARN. En humanos, el anillo de 9 subunidades ha perdido todos sus dientes catalíticos y es puramente un túnel estructural que guía el ARN hacia las subunidades catalíticas (DIS3 o EXOSC10) unidas en la parte inferior. Dado que el ARN es un polímero altamente cargado negativamente, los residuos que recubren este poro son típicamente cargados positivamente (Lisina, Arginina), pero no demasiado "pegajosos" o el ARN se atascará. Entonces, para llegar a la "trituradora" en la parte inferior debe deslizarse a través de un poro estrecho formado por el anillo Exo-9.

La tarea: analiza todas las variantes missense en la cohorte KGP que se mapean a los residuos internos que recubren el poro del anillo Exo-9. Busca variantes de 'intercambio de carga' donde un residuo positivo (K, R) se reemplaza por uno negativo (D, E). Si un individuo está sano a pesar de tener un 'parche negativo' en el túnel que debería repeler el ARN, ¿porta una variante compensatoria en las subunidades de la tapa (EXOSC1, 2, 3) que ensancha la entrada? Usa un mapa de superficie electrostática 3D para determinar si la cohorte 'sana' mantiene un gradiente electrostático específico.

Epistasis Sinérgica en la Homeostasis Redox

La homeostasis redox celular se mantiene mediante dos sistemas antioxidantes paralelos: el sistema del glutatión y el sistema de la tiorredoxina. La pérdida completa de GSR o TXNRD1 es incompatible con el desarrollo de mamíferos, sin embargo, las bases de datos de población contienen individuos que portan variantes predichas para afectar la función enzimática.

Identifica grupos de individuos en la cohorte KGP que porten múltiples variantes VEP de impacto 'Moderado' en ambos sistemas. Razonando a través de las implicaciones estructurales de AlphaMissense, ¿puedes detectar un 'acto de equilibrio' donde una pérdida de eficiencia en la glutatión reductasa se empareja consistentemente con variantes de alta confianza benignas o potencialmente activadoras en el sistema de la tiorredoxina? Sintetiza un modelo de 'Robustez Redox' basado en la co-ocurrencia de estas variantes en la cohorte.

Más ejemplos


Arquitectura

Implementado como un servicio Java EE, accediendo al conjunto de datos KGP mediante llamadas gRPC al servicio público de Dnaerys variant store.

  • proporciona MCP sobre transportes Streamable HTTP, HTTP/SSE y STDIO

  • la implementación del servicio se basa en Quarkus MCP Server framework

  • la población de muestras y los metadatos se gestionan mediante una instancia DuckDB embebida

  • Herramientas MCP (14):

    • Base de datos genómica: findVariants, findVariantsInSamples, findSamples, findSamplesHomozygousReference, getDatasetInfo, getKinshipDegree, computeAlphaMissenseAvg, computeVariantBurden
    • Población y metadatos: listPopulations, listSuperpopulations, getPopulationStats, getSuperpopulationSummary, getSampleMetadata, findSamplesByPopulation
    • implementación

Instalación

El proyecto se puede ejecutar localmente con MCP sobre transportes stdio y/o http

  • compila el proyecto y empaquétalo como un único über-jar:
    • el jar se encuentra en target/onekgpd-mcp-runner.jar e incluye todas las dependencias
./mvnw clean package -DskipTests -Dquarkus.package.jar.type=uber-jar

omitiendo la compilación de pruebas

./mvnw  clean package -Dmaven.test.skip=true -Dquarkus.package.jar.type=uber-jar
  • ejecútalo localmente con el perfil de desarrollo
    • tanto los transportes stdio como http están habilitados
    • el transporte http está en el puerto 9000 (quarkus.http.port en la configuración)
    • el proyecto espera que JRE 21 esté disponible en tiempo de ejecución
java -Dquarkus.profile=dev -jar <full path>/onekgpd-mcp-runner.jar

Conexión con clientes MCP

  • para conectarse mediante el transporte http, remoto o local, simplemente dirige el cliente a un destino, p. ej. http://localhost:9000/mcp o https://db.dnaerys.org:443/mcp

    • NB: Claude Desktop no funcionará con la opción http://localhost:9000/mcp. Esta opción es para clientes como Goose.
  • para conectarse mediante el transporte stdio, el cliente MCP debe iniciar la aplicación con el perfil de desarrollo y con la ruta completa al archivo jar

    • p. ej. para Claude Desktop agrega a los archivos de configuración (p. ej. claude_desktop_config.json):
{
  "mcpServers": {
    "OneKGPd": {
      "command": "java",
      "args": ["-Dquarkus.profile=dev", "-jar", "/full/path/onekgpd-mcp-runner.jar"]
    }
  }
}

Verificación

¿Cuántas variantes existen en el Proyecto 1000 Genomas?

Estado de Cobertura de Pruebas

ComponenteTipoPruebasEstado
Mapeadores de Entidades (9 clases)Unitarias314✅ Completo
DnaerysClientUnitarias58 (7 deshabilitadas)✅ Completo
DnaerysClientIntegración5 (1 deshabilitada)✅ Completo
OneKGPdMCPServerUnitarias26✅ Completo
OneKGPdMCPServerIntegración5✅ Completo
OtrosUnitarias1✅ Completo
OtrosIntegración1✅ Completo
Total410 pruebas402 aprobadas, 8 deshabilitadas

Desglose de Pruebas:

  • Pruebas unitarias: 399 (7 deshabilitadas, 392 aprobadas)
  • Pruebas de integración: 11 (1 deshabilitada, 10 aprobadas)

Pruebas Deshabilitadas:

  • 7 pruebas unitarias de DnaerysClient (PaginationTests, limitación de gRPC de streaming - wiremock-grpc-extension:0.11.0 aún no puede simular RPC de streaming)
  • 1 prueba de integración de DnaerysClient (PaginationLogicTests, limitación de gRPC de streaming - wiremock-grpc-extension:0.11.0 aún no puede simular RPC de streaming)

Ejecución de Pruebas

# Unit tests only (no server required)
./mvnw test

# Integration tests (requires db.dnaerys.org access)
./mvnw verify -DskipITs=false

# Update test baselines after data changes
./mvnw verify -DskipITs=false -DupdateBaseline=true

La parte de pruebas de este proyecto está escrita por Claude. La parte divertida está escrita por humanos.


Política de Privacidad

El Servidor MCP OneKGPd opera como una capa de interfaz de solo lectura para el conjunto de datos del Proyecto 1000 Genomas. El servidor no recopila, almacena ni transmite ningún dato de usuario. No se registra ningún dato de conversación. No se recopila información personal. No se utilizan cookies, mecanismos de seguimiento ni autenticación.

Soporte

Licencia

Este proyecto está licenciado bajo la Licencia Apache 2.0 - consulta el archivo LICENCIA para más detalles.