关于 tooluniverse-population-genetics-1000genomes
面向遗传学研究者的 ToolUniverse 技能,用于检索 1000 Genomes(IGSR)的人群、样本和数据集,并结合 GWAS 信息开展人群分层分析。
主要功能
- 01搜索 1000 Genomes 人群
- 02按人群或名称查找样本
- 03浏览数据集及其类型
- 04查询 GWAS 性状和基因变异
- 05提供分层分析的解读框架
适用场景
- 01列出特定超人群的人群代码
- 02查找 YRI 等人群的样本
- 03检索某基因或性状的 GWAS SNP
- 04对照人群数据分析 GWAS 分层
MCP 相关
此技能通过 ToolUniverse 工具查询 IGSR 的人群、样本和数据集,并调用 GWAS 工具获取关联及变异信息。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mims-harvard/ tooluniverse --skill tooluniverse-population-genetics-1000genomes安装后在 Claude Code 中输入/tooluniverse-population-genetics-1000genomes确认已加载。
详细介绍
计算,而非描述
当分析需要计算(统计、数据处理、评分、数据丰富)时,通过 Bash 编写并运行 Python 代码。不要描述你会怎么做——直接执行并报告实际结果。使用 ToolUniverse 工具检索数据,然后用 Python(pandas、scipy、statsmodels、matplotlib)进行分析。
使用 1000 Genomes(IGSR)开展群体遗传学分析
使用 IGSR 工具搜索 1000 Genomes 的群体和样本、探索数据集,并结合 GWAS 工具开展按群体分层的分析。
适用场景
- “列出 1000 Genomes Project 中所有非洲(AFR)群体”
- “查找 YRI(约鲁巴)群体的样本”
- “有哪些 1000 Genomes 数据集可用?”
- “哪些 2 型糖尿病 GWAS SNP 具有群体特异性效应?”
- “查找 GWAS 研究中映射到 TCF7L2 的所有 SNP”
不适用于(请改用其他技能)
- gnomAD 中的等位基因频率 -> 使用
tooluniverse-population-genetics - ClinVar / OMIM 变异解读 -> 使用
tooluniverse-variant-interpretation - GWAS 精细定位 -> 使用
tooluniverse-gwas-finemapping
阶段 1:搜索 1000 Genomes 群体
IGSR_search_populations:superpopulation(字符串/null,取值为 AFR/AMR/EAS/EUR/SAS 之一)、query(字符串/null,按名称进行自由文本搜索)、limit(整数)。
返回 {status, data: {total, populations: [{code, name, description, sample_count, superpopulation_code, superpopulation_name, latitude, longitude}]}, metadata: {source, filter_superpopulation, filter_query}}。
超级群体代码:
| 代码 | 祖源 |
|---|---|
| AFR | 非洲 |
| AMR | 混合美洲 |
| EAS | 东亚 |
| EUR | 欧洲 |
| SAS | 南亚 |
// List all AFR populations
{"superpopulation": "AFR", "limit": 10}
// Search by name (free-text)
{"query": "Yoruba", "limit": 5}
// List all populations
{"limit": 26}
响应示例:
{
"status": "success",
"data": {
"total": 3,
"populations": [
{"code": "YRI", "name": "Yoruba", "description": "Yoruba in Ibadan, Nigeria",
"sample_count": 188, "superpopulation_code": "AFR", "superpopulation_name": "African Ancestry"}
]
}
}
阶段 2:按群体搜索样本
IGSR_search_samples:population(字符串/null,群体代码,例如 "YRI")、data_collection(字符串/null,数据集标题)、sample_name(字符串/null,特定样本,例如 "NA12878")、limit(整数)。
返回 {status, data: {total, samples: [{name, sex, biosample_id, populations: [{code, name, superpopulation}], data_collections: [...]}]}}。
// Find all YRI samples
{"population": "YRI", "limit": 10}
// Look up the reference sample NA12878
{"sample_name": "NA12878", "limit": 1}
// Find samples in the 30x high-coverage collection
{"data_collection": "1000 Genomes 30x on GRCh38", "limit": 5}
注意:population 接受群体代码(例如 "YRI"、"GBR"、"CHB"),而非超级群体代码。如果从超级群体开始搜索,请先使用 IGSR_search_populations 获取群体代码。
阶段 3:列出数据集
IGSR_list_data_collections:limit(整数)。
返回 {status, data: {total, collections: [{code, title, short_title, sample_count, population_count, data_types, website}]}}。
{"limit": 20}
可用的主要数据集(共 18 个):
| 数据集 | 描述 | 数据类型 |
|---|---|---|
| 1000 Genomes on GRCh38 | 2709 个样本,26 个群体 | 序列、比对、变异 |
| 1000 Genomes 30x on GRCh38 | 高覆盖度重测序 | 序列、比对、变异 |
| 1000 Genomes phase 3 release | 原始 phase 3 | 序列、比对、变异 |
| Human Genome Structural Variation Consortium | HGSVC 结构变异发现 | 序列、比对 |
| MAGE RNA-seq | RNA-seq 数据 | - |
| Geuvadis | 表达 + 基因型 | - |
阶段 4:GWAS 群体分层背景
搜索某性状的 GWAS 关联
gwas_search_associations:trait(字符串,自由文本)、limit(整数)。
返回包含 rsID、p 值、映射基因和 EFO 性状 ID 的 GWAS 关联。
{"trait": "type 2 diabetes", "limit": 10}
获取特定性状的变异(按 EFO ID)
gwas_get_variants_for_trait:trait(字符串,EFO ID,例如 "EFO_0001645")、limit(整数)。
{"trait": "EFO_0001645", "limit": 10}
从 GWAS Catalog 查找某基因中的 SNP
gwas_get_snps_for_gene:gene_symbol(字符串)、limit(整数)。
返回映射到该基因的 SNP,包括 rsID、基因组位置和功能类别。
{"gene_symbol": "TCF7L2", "limit": 10}
GWAS 中的人群分层工作流
步骤 1 -- 查找感兴趣的人群:
// Get all EUR populations
{"superpopulation": "EUR", "limit": 10}
// -> Returns codes like GBR, FIN, CEU, TSI, IBS
步骤 2 -- 获取目标人群的样本:
// Get YRI samples (AFR)
{"population": "YRI", "limit": 100}
步骤 3 -- 获取该基因或性状的 GWAS SNP:
// GWAS hits for TCF7L2 (T2D gene)
{"gene_symbol": "TCF7L2", "limit": 20}
步骤 4 -- 与人群数据交叉比对,进行分层分析。
常见人群代码
| 代码 | 人群 | 超级人群 |
|---|---|---|
| YRI | 尼日利亚伊巴丹的约鲁巴人 | AFR |
| LWK | 肯尼亚韦布耶的卢希亚人 | AFR |
| GWD | 冈比亚曼丁卡人 | AFR |
| CEU | 犹他州居民(CEPH) | EUR |
| GBR | 英格兰/苏格兰的英国人 | EUR |
| FIN | 芬兰的芬兰人 | EUR |
| TSI | 意大利的托斯卡纳人 | EUR |
| CHB | 北京的汉族人 | EAS |
| JPT | 东京的日本人 | EAS |
| CHS | 南方汉族人 | EAS |
| MXL | 洛杉矶的墨西哥裔 | AMR |
| PUR | 波多黎各的波多黎各人 | AMR |
| GIH | 休斯敦的古吉拉特印度人 | SAS |
| PJL | 来自拉合尔的旁遮普人 | SAS |
结果解读的推理框架
证据分级
| 等级 | 标准 | 示例 |
|---|---|---|
| 强 | 超级人群间 AF 差异 > 0.2,GWAS p < 5e-8,并在多个队列中重复验证 | rs7903146(TCF7L2)的 EUR 中 AF = 0.30、EAS 中 AF = 0.05,GWAS p = 1e-40 |
| 中等 | AF 差异为 0.05-0.2,一个祖源中的 GWAS p < 5e-8,其他祖源中达到名义显著性 | AFR 中 AF = 0.15、EUR 中 AF = 0.08 的变异,仅在 EUR 中 GWAS p < 5e-8 |
| 弱 | AF 差异 < 0.05,GWAS p < 5e-8,但仅有一项研究,未在不同祖源间重复验证 | 各人群中 AF 相近的常见变异,在一个队列中达到显著性 |
| 人群特异性 | 变异在一个超级人群中常见(AF > 0.01),在其他人群中罕见(AF < 0.01) | 镰状细胞变异(rs334)在 AFR 中 AF 约为 0.10,在其他人群中 < 0.001 |
解读指南
- 按祖源解读等位基因频率:由于遗传漂变、选择和人口历史,等位基因频率在超级人群(AFR、AMR、EAS、EUR、SAS)间存在差异。AFR 人群的遗传多样性最高,单倍型因重组而被打断的时间也最长。疾病风险等位基因可能在一个祖源中常见、在另一个祖源中罕见,导致不同人群的遗传风险不同。
- Fst 显著性阈值:Fst 衡量人群分化程度(0 = 无分化,1 = 不同等位基因完全固定)。人类人群的全局 Fst 平均约为 0.12。位点特异性 Fst > 0.3 表示强分化(可能受到选择)。在人类中,除已知选择目标(例如影响肤色的 SLC24A5)外,Fst > 0.5 极为罕见。将位点 Fst 与全基因组分布进行比较,以识别离群值。
- LD 解读:连锁不平衡(LD)模式因祖源而异。由于人口历史更久远,AFR 人群的 LD 区块更短,因此精细定位需要更密集的基因分型。EUR 和 EAS 人群的 LD 区块更长。当 GWAS 命中位点与多个变异处于 LD 时,在 AFR 祖源数据中更有可能确定因果变异。报告 r-squared 数值:r2 > 0.8 = 强 LD,0.2-0.8 = 中等,< 0.2 = 弱。
- 人群分层:GWAS 中未控制的人群结构会增加假阳性。1000 Genomes 的超级人群标签为分层分析提供了框架。混合祖源样本(例如 AMR)需要进行局部祖源解卷积,才能准确解读。
- 样本量背景:1000 Genomes 在 26 个人群中约有 2500 个样本。对于较小人群(N < 100),人群特异性等位基因频率的精度有限。对于罕见变异(AF < 0.01),gnomAD 等更大型资源能提供更可靠的估计。
综合问题
- 感兴趣变异的等位基因频率在不同超群体之间是否存在显著差异(> 5%),这能否解释疾病患病率或 GWAS 效应值的差异?
- GWAS 关联是否在不同祖源人群中得到重复验证,还是仅存在于特定人群中,可能是由于 LD 结构差异或人群特异性选择所致?
- 在精细定位中,AFR 人群的 LD 模式是否比 EUR 人群更能缩小关联信号范围,从而帮助确定可能的因果变异?
- 1000 Genomes 数据集中的人群标签和样本量是否足以支持分析,还是目标人群的代表性不足?
- 观察到的关联是否可能由人群分层(病例与对照之间未受控制的祖源差异)解释,而非真实的遗传效应?
工具参数速查
| 工具 | 关键参数 | 备注 |
|---|---|---|
| IGSR_search_populations | superpopulation, query, limit | superpopulation:AFR/AMR/EAS/EUR/SAS |
| IGSR_search_samples | population, data_collection, sample_name, limit | population = 人群代码(例如 YRI) |
| IGSR_list_data_collections | limit | 共 18 个集合 |
| gwas_search_associations | trait, limit | 自由文本性状搜索 |
| gwas_get_variants_for_trait | trait, limit | trait = EFO ID |
| gwas_get_snps_for_gene | gene_symbol, limit | 返回映射的 SNP |