一句话查完 11GB 生物医学数据:Biomni 数据湖的完整使用清单
【免费下载链接】BiomniBiomni: a general-purpose biomedical AI agent项目地址: https://gitcode.com/GitHub_Trending/bi/Biomni
Biomni 是一个生物医学 AI 智能体,它内置了约 11GB 的 BioMni 数据湖,覆盖 75 个常用数据集。做生物医学数据检索时,你用自然语言提问,比如"帮我查 UniProt 里人胰岛素的信息",它会自己拼好接口请求,把结果整理成表返回。
数据分散、接口各异:生物医学检索的真实痛点
做生物医学研究的人多半被这个问题折磨过:数据散落在几十个数据库里,UniProt 走 REST,Ensembl 有独立 API,ChEMBL 又是另一套参数写法,每个库都要单独读文档、拼请求、处理返回格式。更麻烦的是,基因表达、蛋白互作、临床药物这些关键数据往往分散在不同服务器、不同文件格式里,光把数据找齐就要半天。Biomni 的思路是反着来的:把约 11GB 常用数据一次性拉到本地做数据湖,把在线数据库统一封装成自然语言可调用的工具,检索这件事就从"手工拼 URL"变成"说一句人话"。
自然语言怎么变成一次 UniProt API 调用:检索链路说明
整条链路分三步。第一步,你输入一句话,比如"找一下人胰岛素的 UniProt 记录"。第二步,Biomni 从 biomni/tool/schema_db/ 加载对应数据库的模式文件,比如查 UniProt 就加载uniprot.pkl,里面写清了各端点支持哪些参数、返回什么字段,相当于把接口说明书塞给大语言模型当上下文。第三步,模型按模板输出一个含full_url的 JSON,代码校验后直接发请求,拿到结果再格式化返回。以 biomni/tool/database.py 里的query_uniprot()为例:传prompt参数就自动翻译,传endpoint参数就跳过翻译直接查,两条路都走得通。
11GB 数据盘点:基因组、蛋白质、药物三大类存了什么
数据湖里基因组学相关文件最密集:gtex_tissue_gene_tpm.parquet是 GTEx 项目的人体各组织基因表达量,gwas_catalog.pkl存 GWAS 全基因组关联研究结果,omim.parquet记录遗传病与致病基因的关系,GeneBass 则提供两类预测结果——genebass_missense_LC_filtered.pkl是错义变异(单个碱基改变导致氨基酸被替换)的过滤表,genebass_pLoF_filtered.pkl是功能丧失预测,即判断某个突变会不会让基因"罢工"。蛋白质这块以实验证据为主:affinity_capture-ms.parquet来自亲和捕获质谱(把目标蛋白连同它结合的伙伴一起拉下来再做质谱鉴定),two-hybrid.parquet是酵母双杂交测到的蛋白互作,proteinatlas.tsv汇总了 Human Protein Atlas 的蛋白表达位置。药物发现方向的数据量最大:BindingDB_All_202409.tsv收录蛋白质和小分子的实测结合常数,八个ddinter_*.csv文件按器官系统分类存放 DDInter 的药物相互作用记录,broad_repurposing_hub_molecule_with_smiles.parquet和txgnn_prediction.pkl则是药物重定位(给已有老药找新适应症)要用的分子库和 TxGNN 模型预测值。
模式文件、统一入口与异常处理:缓存与容错细节
快和稳都来自工程约束。第一,每个数据库在 biomni/tool/schema_db/ 里都有一个对应的.pkl模式文件,目录里实际放着 33 个(ensembl.pkl、chembl.pkl、pdb.pkl……),模型只能在模式写明的端点和参数里做选择,乱编一个接口字段的机会很小。第二,所有对外 REST 请求都汇到 biomni/tool/database.py 中同一个_query_rest_api()入口,超时、状态码异常统一拦截并转成带error字段的结构化返回,调用方不需要各自写 try/except。第三,数据湖本身有"目录"机制:biomni/env_desc.py 给每个数据文件配了一句说明,智能体接到任务先按相关性挑选条目,只把用得上的文件注入上下文,而不是把 11GB 全量读进内存;首次创建智能体时自动下载,之后重复提问不再重复拉取,这就是它省时的关键。
3 个真实研究场景:标志物、药物重定位、蛋白注释怎么用
场景一,生物标志物发现。提出问题:哪个组织最依赖 BRCA1,能不能当肿瘤标志物?一句话操作:问它"查 GTEx 里 BRCA1 在哪些组织表达最高"。得到的价值:GTEx 表达表直接列出各组织 TPM 值,高表达组织就是候选取材部位,不用再自己解析 parquet。
场景二,药物重定位。提出问题:阿尔茨海默病有没有可以借来的老药?一句话操作:让它调 TxGNN 预测,对应 biomni/tool/pharmacology.py 里的retrieve_topk_repurposing_drugs_from_disease_txgnn()。得到的价值:top-k 候选药物带排名返回,药筛团队省掉一轮文献初筛。
场景三,蛋白质功能注释。提出问题:新筛到一条蛋白序列,结构域是什么?一句话操作:让它走 InterPro 接口查结构域。得到的价值:家族归属和保守结构域一次查清,同源判断不用手动比对。
上手入口:数据湖在代码里的 5 个位置
想动手验证,从这几处开始:biomni/agent/a1.py 是智能体初始化入口,A1(path='./data')首次运行会自动下载约 11GB 数据湖,传空列表expected_data_lake_files=[]可跳过;biomni/env_desc.py 是 75 个数据湖文件加代码库清单的总目录;biomni/tool/schema_db/ 存放 33 个数据库模式文件;biomni/tool/database.py 收着全部在线数据库查询函数;biomni/model/retriever.py 负责检索与排序。
Biomni 数据湖把"翻文档、拼请求"这类琐事收进代码里,研究者只负责说清科学问题。自然语言查数据的这条路,正在切实降低生物信息学研究的入门门槛。
【免费下载链接】BiomniBiomni: a general-purpose biomedical AI agent项目地址: https://gitcode.com/GitHub_Trending/bi/Biomni
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考