OneKGPd
1000 Genomes Project 数据集 MCP 服务器
通过自然语言访问 1000 Genomes Project 数据集,该数据集托管于 Dnaerys 变异存储 中。
由 New York Genome Center (GRCh38) 进行测序和比对。3202 个样本:包括来自第三阶段面板的 2504 个无关样本 + 来自 602 个家庭三联体的 698 个样本 - 数据集详情
主要功能
实时访问 138,044,723 个唯一变异和 ~4420 亿 个个体基因型
基于坐标、注释、合子性、群体进行变异、样本和基因型选择
通过 VEP(影响、生物型、特征类型、变异类别、后果)、ClinVar 临床意义 (202502)、gnomADe + gnomADg 4.1、AlphaMissense 分数和 AlphaMissense 类注释进行过滤
使用 VEP 115 / GENCODE 49 进行注释
GENCODE 主要集 转录本
返回的变异带有 HGVSp、gnomADe + gnomADg、AlphaMissense 分数 以及全队列统计信息的注释
HGVSp 注释针对 典型转录本,以降低 LLM 的认知负荷
样本注释包括:家庭 ID、性别、父亲 ID、母亲 ID、亲缘关系、子女、群体、超群体、第三阶段指标
在线服务
通过 Streamable HTTP 提供的远程 MCP 服务:
示例
大分子结构复合物
将 26S 蛋白酶体视为一个机械冗余的 3D 机器,并映射来自 KGP 个体的所有 33 个亚基中的错义变异。进行空间分析,以确定致病变异在统计学上是否更多地分布在远端的“盖”(C 区),而不是进化上更受约束的“核心”(A 区)或“门控”(B 区)界面。识别具有高累积负担(2 个以上“可能致病”变异)的个体,以研究亚基间的补偿作用,寻找蛋白质-蛋白质铰链处的配对“减弱”和“稳定”突变。最后,通过基于 AlphaMissense 分数和计算出的 ΔΔG 值,确定单个健康个体中观察到的最大累积结构破坏,从而定义蛋白酶体的“机械耐受性”。
大分子结构复合物
MCM2-7 复合物(“DNA 解旋酶马达”)是一件分子杰作。它是一个异六聚体环,每个亚基都是 DNA 解旋马达中一个独特的“齿轮”。与同聚体环(每个亚基都相同)不同,该复合物是不对称的。亚基之间的每个界面都是独一无二的,它们燃烧 ATP 的速率也不尽相同。MCM2/5 界面是必须物理打开以允许 DNA 进入环中然后迅速关闭的“门”。这是一个高应力的机械点。
识别 KGP 队列中在 MCM2/5 界面携带错义变异的个体。具体来说,寻找“电荷反转”变异(例如,天冬氨酸变为赖氨酸)。在这些特定样本中,分析“补偿性耦合”:它们是否在相对的亚基界面上携带了第二个、相互的电荷反转变异,从而恢复了静电“锁扣”?
识别 KGP 队列中在 MCM2-7 复合物的任何 MCM 亚基的 Walker A 或 Walker B 基序(ATP 燃烧核心)中携带高致病性变异的个体。对于这些个体,进行“系统通量”分析:观察它们在先导链聚合酶 (POLE) 和滑动钳 (PCNA) 中的变异。你是否检测到了“协调减速”的特征,即马达、钳和聚合酶都携带了暗示复制叉变慢但高度精确的变异?
大分子结构复合物
人类 RNA 外泌体(Exo-9 核心)是一个充当支架的“死机器”。在低等生物中,环本身可以降解 RNA。在人类中,9 亚基环失去了所有的催化齿,纯粹是一个引导 RNA 进入底部连接的催化亚基(DIS3 或 EXOSC10)的结构隧道。由于 RNA 是一种带强负电荷的聚合物,排列在这个孔隙上的残基通常带正电荷(赖氨酸、精氨酸),但不能太“粘”,否则 RNA 会堵塞。因此,为了到达底部的“粉碎机”,它必须滑过由 Exo-9 环形成的狭窄孔隙。
任务:分析 KGP 队列中映射到 Exo-9 环内部孔隙排列残基的所有错义变异。寻找正电荷残基 (K, R) 被负电荷残基 (D, E) 取代的“电荷交换”变异。如果一个个体尽管在隧道中有一个本应排斥 RNA 的“负电荷斑块”却依然健康,那么它们是否在帽亚基 (EXOSC1, 2, 3) 中携带了扩大入口的补偿性变异?使用 3D 静电表面图来确定“健康”队列是否维持了特定的静电梯度。
氧化还原稳态中的协同上位性
细胞氧化还原稳态由两条平行的抗氧化系统维持:谷胱甘肽系统和硫氧还蛋白系统。GSR 或 TXNRD1 的完全缺失与哺乳动物的发育不相容,但群体数据库中包含携带预测会损害酶功能的变异的个体。
识别 KGP 队列中在两个系统中携带多个“中等”影响 VEP 变异的个体簇。通过 AlphaMissense 结构含义进行推理,你能否检测到一种“平衡行为”,即谷胱甘肽还原酶的效率损失是否始终与硫氧还蛋白系统中高置信度的良性或潜在激活变异配对?基于这些变异在队列中的共现,合成一个“氧化还原稳健性”模型。
架构
作为 Java EE 服务实现,通过 gRPC 调用公共 Dnaerys 变异存储服务访问 KGP 数据集。
通过 Streamable HTTP、HTTP/SSE 和 STDIO 传输提供 MCP
服务实现基于 Quarkus MCP Server 框架
样本群体和元数据由嵌入式 DuckDB 实例管理
MCP 工具:
基因组数据库:countSamples, countSamplesHomozygousReference, countVariants, countVariantsInSamples, getDatasetInfo, getKinshipDegree, selectSamples, selectSamplesHomozygousReference, selectVariants, selectVariantsInSamples, computeAlphaMissenseAvg, computeVariantBurden
群体和元数据:listPopulations, listSuperpopulations, getPopulationStats, getSuperpopulationSummary, getSampleMetadata, selectSamplesByPopulation
安装
项目可以在本地运行,支持通过 stdio 和/或 http 传输的 MCP
构建项目并将其打包为单个 über-jar:
jar 文件位于
target/onekgpd-mcp-runner.jar中,包含所有依赖项
./mvnw clean package -DskipTests -Dquarkus.package.jar.type=uber-jar跳过测试编译
./mvnw clean package -Dmaven.test.skip=true -Dquarkus.package.jar.type=uber-jar使用 dev profile 在本地运行
启用了 stdio 和 http 传输
http 传输端口为 9000 (config 中的 quarkus.http.port)
项目要求运行时提供 JRE 21
java -Dquarkus.profile=dev -jar <full path>/onekgpd-mcp-runner.jar连接 MCP 客户端
要通过 http 传输(远程或本地)连接,只需将客户端指向目标, 例如
http://localhost:9000/mcp或https://db.dnaerys.org:443/mcp注意: Claude Desktop 不支持
http://localhost:9000/mcp选项。此选项适用于 Goose 等客户端。
要通过 stdio 传输连接,MCP 客户端应使用 dev profile 并提供 jar 文件的完整路径来启动应用程序
例如,对于 Claude Desktop,添加到配置文件(例如
claude_desktop_config.json):
{
"mcpServers": {
"OneKGPd": {
"command": "java",
"args": ["-Dquarkus.profile=dev", "-jar", "/full/path/onekgpd-mcp-runner.jar"]
}
}
}验证
1000 Genome Project 中存在多少个变异?
测试覆盖状态
组件 | 类型 | 测试 | 状态 |
实体映射器 (9 类) | 单元 | 314 | ✅ 完成 |
DnaerysClient | 单元 | 58 (7 已禁用) | ✅ 完成 |
DnaerysClient | 集成 | 5 (1 已禁用) | ✅ 完成 |
OneKGPdMCPServer | 单元 | 26 | ✅ 完成 |
OneKGPdMCPServer | 集成 | 5 | ✅ 完成 |
其他 | 单元 | 1 | ✅ 完成 |
其他 | 集成 | 1 | ✅ 完成 |
总计 | 410 个测试 | 402 通过, 8 已禁用 |
测试细分:
单元测试:399 (7 已禁用, 392 通过)
集成测试:11 (1 已禁用, 10 通过)
已禁用的测试:
7 个 DnaerysClient 单元测试 (PaginationTests, 流式 gRPC 限制 -
wiremock-grpc-extension:0.11.0尚无法模拟流式 RPC)1 个 DnaerysClient 集成测试 (PaginationLogicTests, 流式 gRPC 限制 -
wiremock-grpc-extension:0.11.0尚无法模拟流式 RPC)
运行测试
# 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本项目的部分测试由 Claude 编写。有趣的部分由人类编写。
隐私政策
OneKGPd MCP 服务器作为 1000 Genomes Project 数据集的只读接口层运行。 服务器不收集、存储或传输任何用户数据。不记录任何对话数据。 不收集个人信息。不使用 cookie、跟踪机制或身份验证。
支持
许可证
本项目采用 Apache License 2.0 许可 - 有关详细信息,请参阅 LICENSE 文件。
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dnaerys/OneKGP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server