用途
Dataset Discovery 是 ToolUniverse 中用于“为任意科学问题寻找并评估研究数据集”的技能。当用户提出“帮我找关于 X 的数据”“哪里能拿到 Y 的数据”、想分析变量之间的关系、需要特定研究设计(纵向、横断面、实验)或询问特定调查/队列时使用。
主要能力
该技能把研究问题映射到所需的研究设计,并据此搜索、评估、下载和分析数据集。核心流程分五步:
-
理解研究问题所需的数据要求:先确定最低数据要求,包括所需研究设计、所需变量和所需人群。
- 研究设计判断:问“X 是否预测 Y 随时间的变化”需要纵向数据(同一批人重复测量),横断面数据无法回答;问“X 是否与 Y 相关”横断面即可;问“干预 X 是否导致结果 Y”需要实验(带对照的临床试验);问“X 涉及哪些基因/蛋白”需要组学数据。
- 变量:列出具体的暴露、结果和混杂变量,注明测量类型(连续、分类、生物标志物还是自报),确定最低限度需要的混杂因素(年龄、性别几乎总是必需)。
- 人群:年龄范围、地域、临床状态、样本量要求;功效分析示例:检测小效应(r=0.1)在 80% 功效下约需 800 名受试者。
-
搜索策略:从最宽泛到最具体,使用 find_tools 发现可用的数据集搜索工具,不依赖记忆中的工具名。分三层:
- 第一层——跨仓库搜索:使用索引数千个仓库的工具,按研究主题关键词、变量名、人群描述搜索,寻找 DOI 注册数据集、仓库列表、政府数据门户。re3data_search_repositories / re3data_get_repository 是 3,000+ 研究数据“仓库”本身的注册表(不是单个数据集),覆盖所有学科,适合回答“这类数据该去哪个仓库找”。
- 第二层——领域专用仓库:健康调查(CDC、NHANES 按变量名搜索;DHS Program 的 DHSProgram_search_indicators/_get_data 覆盖国际/中低收入国家的生育、母婴死亡率、营养、免疫、HIV 指标,可按国家和年份筛选);开放基因组学(SRA、ENA、ArrayExpress、GEO、DDBJ 的 DDBJ_search_entries/_get_entry/_get_cross_references,以及 GEA/MetaboBank、中国的 GSA 的 GSA_get_accession);受控访问的人类基因组学(dbGaP 的 DbGaP_search_studies/_get_study 和 EGA 的 EGA_get_study/_get_dataset/_get_study_datasets,均需单独的数据访问申请,工具只返回研究/数据集元数据,不返回底层基因型数据);蛋白质组学(PRIDE、MassIVE);代谢组学(MetaboLights、Metabolomics Workbench);临床(ClinicalTrials.gov 带结果的试验数据);联盟研究门户(AD Knowledge Portal、NF-OSI、PsychENCODE、HTAN、DREAM 等,Synapse_search_entities 按关键词查找公开的 Synapse 项目/文件夹/文件/表/数据集,node_type 可缩小范围,Synapse_get_entity 返回整理后的注释,Synapse_list_children 浏览项目;匿名只读,受限实体会返回明确的“非公开”错误,不下载文件内容,数据访问仍走 synapse.org)。
- 第三层——基于文献的发现:许多数据集不在任何仓库中,而是描述在论文方法部分。搜索 PubMed/EuropePMC 中分析过你感兴趣关系的论文,读其方法部分的“我们使用了来自[数据集名称]的数据”,检查补充材料中是否有存放的数据(GEO/SRA 登录号)。这往往是寻找小众数据集最有效的策略。
-
评估数据集适用性:对每个候选数据集评估变量(是否包含具体暴露和结果变量、测量方式是否符合需要、关键混杂因素是否可用)、设计匹配(纵向是否跟踪同一批人、多少轮、随访间隔;注意“重复横断面”不是纵向;实验是否有对照和随机化)、样本(是否足够大、人群是否匹配、是否有需要的亚组)、获取(公开下载、需注册、需合作协议、受限)、质量(是否来自知名研究、是否被同行评议论文使用、应答率/缺失模式)。
-
下载与分析:不停留在找到数据集,而是通过 Bash 编写并运行 Python 代码实际下载和分析,不描述“会怎么做”而是执行。资料提供了数据加载示例代码,涵盖 CSV/TSV、Excel、Stata、SAS(XPT 与 sas7bdat)、Parquet、JSON、固定宽度文件,以及从 URL 下载后按格式解析、REST API 分页(如 GDC、ClinicalTrials.gov)的写法;还给出合并(按参与者/样本 ID)、筛选人群、处理缺失值、用 statsmodels 做回归、用 matplotlib 可视化的示例。要求始终运行代码并报告实际数字(β、p 值、置信区间、N)。
-
如实报告:报告结构为最佳可用数据集(名称、内容、获取方式、关键局限)、分析结果(实际统计量)、备选数据集(按适用性排序及权衡)、无法回答的问题(若无数据集匹配所需研究设计则明确说明)、建议的下一步。诚实规则:绝不在横断面数据上声称能回答时间性问题;区分“数据存在但需注册”与“数据不存在”;报告实际计算的统计量而非假设分析;说明用现有数据能做出的最强分析,即使弱于所问。
使用方式
该技能以技能形式提供,通过 ToolUniverse 的工具发现机制(find_tools)动态查找数据集搜索工具,而非硬编码工具名。资料中给出的具体工具名包括 re3data_search_repositories、re3data_get_repository、DHSProgram_search_indicators、DHSProgram_get_data、DDBJ_search_entries、DDBJ_get_entry、DDBJ_get_cross_references、GSA_get_accession、DbGaP_search_studies、DbGaP_get_study、EGA_get_study、EGA_get_dataset、EGA_get_study_datasets、Synapse_search_entities、Synapse_get_entity、Synapse_list_children 等。分析阶段通过 Bash 运行 Python 代码。
适用场景
需要为科研问题寻找数据集、需要特定研究设计(纵向、横断面、实验)、需要组学/蛋白质组/代谢组/临床/健康调查数据、需要查找特定调查或队列、需要评估数据集是否适合某个分析、需要实际下载并分析数据时。
限制
受控访问的人类基因组学数据(dbGaP、EGA)需要单独的数据访问申请,工具只返回元数据而非底层数据;Synapse 受限实体返回“非公开”错误且不下载文件内容,数据访问仍走 synapse.org;若没有数据集匹配所需研究设计,技能要求明确说明无法回答。资料未提供该技能的收费、价格、平台支持范围等信息。