OneKGPd-MCP
Acesso em tempo real ao conjunto de dados do Projeto 1000 Genomas
Documentação
Servidor MCP do Dataset do Projeto 1000 Genomas
Acesso em linguagem natural ao dataset do Projeto 1000 Genomas, hospedado online no Dnaerys variant store
Sequenciado e alinhado pelo New York Genome Center (GRCh38). 3202 amostras: 2504 amostras não relacionadas do painel da fase três + 698 amostras de 602 trios familiares - detalhes do dataset
Principais Recursos
-
acesso em tempo real a 138 044 723 variantes únicas e ~442 bilhões de genótipos individuais
-
seleção de variantes, amostras e genótipos com base em coordenadas, anotações, zigose, população
-
filtragem por VEP (impacto, biótipo, tipo de recurso, classe de variante, consequências), Significância Clínica ClinVar (202502), gnomADe + gnomADg 4.1, Escore AlphaMissense e anotações de Classe AlphaMissense
- anotado com VEP 115 / GENCODE 49
- transcritos do conjunto primário GENCODE
- composição completa das anotações
-
variantes retornadas anotadas com HGVSp, gnomADe + gnomADg, escore AlphaMissense + estatísticas da coorte
- anotações HGVSp são para transcritos canônicos para reduzir a carga cognitiva dos LLMs
-
amostras anotadas com: familyId, gender, paternalId, maternalId, relationship, children, population, superpopulation, indicador da fase 3
Serviço Online
Serviço MCP remoto via Streamable HTTP:
Exemplos
Complexos estruturais macromoleculares
Trate o Proteassomo 26S como uma máquina 3D mecanicamente redundante e mapeie cada variante missense dos indivíduos do KGP em todas as 33 subunidades. Realize uma análise espacial para determinar se a variação patogênica é estatisticamente particionada em direção à 'Tampa' distal (Zona C) em vez das interfaces mais conservadas evolutivamente do 'Núcleo' (Zona A) ou 'Portão' (Zona B). Identifique indivíduos com alta carga cumulativa (2+ variantes 'Provavelmente Patogênicas') para investigar a compensação entre subunidades, buscando mutações pareadas de 'enfraquecimento' e 'estabilização' nas dobradiças proteína-proteína. Por fim, defina a 'tolerância mecânica' do proteassomo estabelecendo a máxima disrupção estrutural cumulativa observada em um único indivíduo saudável com base nos escores AlphaMissense e nos valores calculados de ΔΔG.
Complexos estruturais macromoleculares
O Complexo MCM2-7 (O "Motor da Helicase de DNA") é uma obra-prima molecular. É um anel heterohexamérico onde cada subunidade é uma "engrenagem" distinta no motor de desenrolamento do DNA. Diferente dos anéis homoméricos (onde cada subunidade é igual), este complexo é assimétrico. Cada interface entre subunidades é única, e elas não queimam ATP na mesma taxa. A interface MCM2/5 é o "portão" que deve se abrir fisicamente para permitir que o DNA entre no anel e depois se feche. Este é um ponto mecânico de alto estresse.
Identifique indivíduos na coorte KGP que carregam variantes missense na interface MCM2/5. Especificamente, procure por variantes de 'inversão de carga' (ex.: Aspartato para Lisina). Nessas amostras específicas, analise o 'acoplamento compensatório': eles carregam uma variante secundária recíproca de inversão de carga na interface da subunidade oposta que restaura o 'encaixe' eletrostático?
Identifique indivíduos na coorte KGP que carregam variantes de alta patogenicidade nos motivos Walker A ou Walker B (o coração que queima ATP) de qualquer subunidade MCM no Complexo MCM2-7. Para esses indivíduos, realize uma análise de 'Fluxo Sistêmico': observe suas variantes na polimerase da fita líder (POLE) e no grampo deslizante (PCNA). Você detecta uma assinatura de 'Desaceleração Coordenada' onde o motor, o grampo e a polimerase carregam variantes que sugerem um garfo de replicação mais lento, mas altamente preciso?
Complexos estruturais macromoleculares
O Exossomo de RNA humano (núcleo Exo-9) é uma "máquina morta" que atua como um andaime. Em organismos inferiores, o anel em si pode degradar RNA. Em humanos, o anel de 9 subunidades perdeu todos os seus dentes catalíticos e é puramente um túnel estrutural que guia o RNA até as subunidades catalíticas (DIS3 ou EXOSC10) anexadas na parte inferior. Como o RNA é um polímero altamente carregado negativamente, os resíduos que revestem este poro são tipicamente carregados positivamente (Lisina, Arginina), mas não muito "pegajosos" ou o RNA vai travar. Então, para alcançar o "triturador" na parte inferior, ele deve deslizar através de um poro estreito formado pelo anel Exo-9.
A tarefa: analise todas as variantes missense na coorte KGP que mapeiam para os resíduos internos que revestem o poro do anel Exo-9. Procure por variantes de 'troca de carga' onde um resíduo positivo (K, R) é substituído por um negativo (D, E). Se um indivíduo é saudável apesar de ter um 'remendo negativo' no túnel que deveria repelir RNA, ele carrega uma variante compensatória nas subunidades da tampa (EXOSC1, 2, 3) que alarga a entrada? Use um mapa de superfície eletrostática 3D para determinar se a coorte 'saudável' mantém um gradiente eletrostático específico.
Epistasia Sinérgica na Homeostase Redox
A homeostase redox celular é mantida por dois sistemas antioxidantes paralelos: o sistema da glutationa e o sistema da tiorredoxina. A perda completa de GSR ou TXNRD1 é incompatível com o desenvolvimento de mamíferos, mas bancos de dados populacionais contêm indivíduos que carregam variantes previstas para prejudicar a função enzimática.
Identifique grupos de indivíduos na coorte KGP que carregam múltiplas variantes VEP de impacto 'Moderado' em ambos os sistemas. Raciocinando através das implicações estruturais do AlphaMissense, você consegue detectar um 'ato de equilíbrio' onde uma perda de eficiência na glutationa redutase é consistentemente pareada com variantes de alta confiança benignas ou potencialmente ativadoras no sistema da tiorredoxina? Sintetize um modelo de 'Robustez Redox' com base na co-ocorrência dessas variantes na coorte.
Arquitetura
Implementado como um serviço Java EE, acessando o dataset KGP via chamadas gRPC ao serviço público Dnaerys variant store.
-
fornece MCP sobre transportes Streamable HTTP, HTTP/SSE e STDIO
-
a implementação do serviço é baseada no framework Quarkus MCP Server
-
a população de amostras e os metadados são gerenciados por uma instância DuckDB embutida
-
Ferramentas MCP (14):
- Banco de dados genômico: findVariants, findVariantsInSamples, findSamples, findSamplesHomozygousReference, getDatasetInfo, getKinshipDegree, computeAlphaMissenseAvg, computeVariantBurden
- População e metadados: listPopulations, listSuperpopulations, getPopulationStats, getSuperpopulationSummary, getSampleMetadata, findSamplesByPopulation
- implementação
Instalação
O projeto pode ser executado localmente com MCP sobre transportes stdio e/ou http
- compile o projeto e empacote-o como um único über-jar:
- o jar está localizado em
target/onekgpd-mcp-runner.jare inclui todas as dependências
- o jar está localizado em
./mvnw clean package -DskipTests -Dquarkus.package.jar.type=uber-jar
pulando a compilação de testes
./mvnw clean package -Dmaven.test.skip=true -Dquarkus.package.jar.type=uber-jar
- execute-o localmente com o perfil dev
- os transportes stdio e http estão habilitados
- o transporte http está na porta 9000 (quarkus.http.port na configuração)
- o projeto espera que o JRE 21 esteja disponível em tempo de execução
java -Dquarkus.profile=dev -jar <full path>/onekgpd-mcp-runner.jar
Conectando-se com clientes MCP
-
para conectar via transporte http, remoto ou local, basta direcionar o cliente para um destino, ex.:
http://localhost:9000/mcpouhttps://db.dnaerys.org:443/mcp- NB: Claude Desktop não funcionará com a opção
http://localhost:9000/mcp. Esta opção é para clientes como Goose.
- NB: Claude Desktop não funcionará com a opção
-
para conectar via transporte stdio, o cliente MCP deve iniciar o aplicativo com o perfil dev e com o caminho completo para o arquivo jar
- ex.: para Claude Desktop, adicione aos arquivos de configuração (ex.:
claude_desktop_config.json):
- ex.: para Claude Desktop, adicione aos arquivos de configuração (ex.:
{
"mcpServers": {
"OneKGPd": {
"command": "java",
"args": ["-Dquarkus.profile=dev", "-jar", "/full/path/onekgpd-mcp-runner.jar"]
}
}
}
Verificação
Quantas variantes existem no Projeto 1000 Genomas?
Status da Cobertura de Testes
| Componente | Tipo | Testes | Status |
|---|---|---|---|
| Mapeadores de Entidade (9 classes) | Unitário | 314 | ✅ Completo |
| DnaerysClient | Unitário | 58 (7 desabilitados) | ✅ Completo |
| DnaerysClient | Integração | 5 (1 desabilitado) | ✅ Completo |
| OneKGPdMCPServer | Unitário | 26 | ✅ Completo |
| OneKGPdMCPServer | Integração | 5 | ✅ Completo |
| Outros | Unitário | 1 | ✅ Completo |
| Outros | Integração | 1 | ✅ Completo |
| Total | 410 testes | 402 passando, 8 desabilitados |
Detalhamento dos Testes:
- Testes unitários: 399 (7 desabilitados, 392 passando)
- Testes de integração: 11 (1 desabilitado, 10 passando)
Testes Desabilitados:
- 7 testes unitários do DnaerysClient (PaginationTests, limitação de streaming gRPC -
wiremock-grpc-extension:0.11.0ainda não pode simular RPCs de streaming) - 1 teste de integração do DnaerysClient (PaginationLogicTests, limitação de streaming gRPC -
wiremock-grpc-extension:0.11.0ainda não pode simular RPCs de streaming)
Executando Testes
# 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
A parte de testes deste projeto foi escrita por Claude. A parte divertida foi escrita por humanos.
Política de Privacidade
O Servidor MCP OneKGPd opera como uma camada de interface somente leitura para o dataset do Projeto 1000 Genomas. O servidor não coleta, armazena ou transmite nenhum dado do usuário. Nenhum dado de conversa é registrado. Nenhuma informação pessoal é coletada. Nenhum cookie, mecanismo de rastreamento ou autenticação é usado.
Suporte
- Problemas e perguntas: https://github.com/dnaerys/onekgpd-mcp/issues
- E-mail: mcp@dnaerys.org
Licença
Este projeto é licenciado sob a Apache License 2.0 - veja o arquivo LICENSE para detalhes.