论文阅读笔记(十一)——BioInformatics Agent (BIA)

论文阅读笔记(十一)——BioInformatics Agent (BIA): Unleashing the Power of Large Language Models to Reshape Bioinformatics Workflow

目录

  • 论文阅读笔记(十一)——BioInformatics Agent (BIA): Unleashing the Power of Large Language Models to Reshape Bioinformatics Workflow
    • 摘要
    • 简介
    • Method
      • 元数据处理和数据获取
      • 2.2 工作流程工具调用器
    • 结果
      • Automated single-cell data collection
      • Experimental design generation
      • Advanced analytics and reporting
      • Optimistic outcome and strenuous challenges
      • Discussion and Conclusion

摘要

生物信息学在理解生物现象中起着至关重要的作用,但生物数据的指数级增长和技术的快速进步加大了深入探索这一领域的障碍。因此,我们提出了生物信息代理(BIA),这是一种利用大语言模型(LLM)技术的智能代理,通过自然语言促进自主的生物信息学分析。BIA的主要功能包括提取和处理原始数据和元数据,查询本地部署和公共数据库的信息。它还承担了工作流程设计的制定,生成可执行代码,并提供全面的报告。本文专注于单细胞RNA测序(scRNA-seq)数据,展示了BIA在信息处理和分析以及执行复杂任务和交互方面的卓越能力。此外,我们分析了代理的失败执行,并展示了包括自我改进和领域适应在内的潜在增强策略。未来展望包括将BIA的实际应用扩展到多组学数据,以减轻生物信息学界的工作负担,并推动对生命科学奥秘的更深入研究。BIA可在以下网址获取:https://github.com/biagent-dev/biagent。

简介

在这里插入图片描述

图1:BioInformatics Agent(BIA)的总体框架概述。
BIA包括以下关键步骤:1).输入处理:接收和预处理用户的输入或查询,并将输入分类为预定义的类别2).生成过程:给定处理过的输入和上下文理解,BIA部署工具并生成工作流3).响应评估和过滤:检查生成的响应的一致性,适当性和遵守预定义规则。4).反馈回路:用于微调模型的反馈,通过强化学习或自适应请求随着时间的推移提高其性能。5).交付:最后将生成和处理的结果通过界面交付给用户,用户可以再次使用这些结果进行模型推理。

随着多组学测序技术的不断进步和成本的逐渐降低,组学数据和相关分析工具的产出以空前的速度增长。这一趋势为生物科学领域的研究人员带来了重大机遇和新的挑战。

例如,处理全基因组测序(WGS)数据的特定工作流程涉及使用数十种软件工具,并需要研究人员具备软件安装、参数调用和故障排除能力。 此外,深入分析还要求熟练掌握扩展的编码和可视化工具。这些前提条件构成了生物科学领域各种利益相关者的巨大障碍,例如主要从事实验工作的湿实验室生物学家和通常缺乏编程培训的临床医生。 实际上,生物信息学社区一直在积极应对这些挑战。许多项目,例如Galaxy Project,正在构建低门槛、可重复使用且广泛的平台,以便研究人员高效地存储、管理和分析大量数据。Bioconductor包括超过2000个R软件包,而一系列shell工具和Python软件包已经增加到数百个,并且不断发展和改进。然而,这些努力仍然受到先前技术的限制。目前,大多数旨在构建可重复使用的分析管道的解决方案在很大程度上依赖于人工劳动,并且适应性不足,强调了对更复杂和灵活的方法的需求。

先前的工作已经部署并实施了基于LLM的工具,如Dr BioRight和BioMonia,以对用户需求进行理解并通过对话模型提供解决方案。

在我们的实验中,我们设计了BioInformatics Agent(BIA),使用了来自OpenAI的最先进语言模型GPT-4,通过Web API服务(模型ID:gpt-4-0125-preview)来制定基于提供解决方案的生物信息学实验协议。该代理能够执行整个单细胞分析管道,包括数据检索、调用适当的API进行处理,通过自主规划编写结论,成为生物信息学研究的有力促进者。 通过安装BIA,我们设想生物信息学研究人员可以从繁重的数据集和重复性的工作中解脱出来,从而专注于更重要的研究问题。

Method

BIA通过与大语言模型(LLMs)的文本交互来实现操作,促进通过与用户对话进行数据提取、分析和报告生成。BIA通过与LLM的文本提示交互来实现。总体上,与LLM的交互通过四个结构化的叙述段进行组织:

  1. 思考段引发对任务进展的反思评估;
  2. 行动和行动输入段指导LLM调用特定工具并指定其所需输入,从而促进工具参与;
  3. 最后,观察阶段允许LLM解释已执行工具的结果。

因此,LLM的响应被仔细分析,以启动工具驱动的操作或形成针对用户的结论性反馈,有效地关闭交互循环并增强系统的分析能力。特定领域的工具对于增强基于LLM的代理的自主性和功能性至关重要。在这种背景下,我们介绍了一套由领域专家为BIA量身定制的广泛工具。这些工具根据其操作角色系统地分为三类:

  1. 在线数据库管理
  2. 元数据提取
  3. 生物信息学工作流程。

以下部分描述了这些工具的使用和实现。

元数据处理和数据获取

首先,安装了与主要在线公共存储库(如欧洲核苷酸档案库(ENA)、国家生物技术信息中心(NCBI)、欧洲生物信息学研究所(EBI)等)交互的工具,便于下载DNA和RNA数据集及其相关的元数据信息。

search online db(query)工具为用户查询提供一个代理,向公共存储库的搜索引擎查询基于元信息的相关样本,并返回匹配样本的ID列表。

download online db(ids)工具使用给定的ID从存储库中下载数据,包括元数据、处理过的计数矩阵和原始数据。

这些工具是使用ffq[1]实现的,用于获取序列读取文件和基本元信息,使用GEOparse[2]增强来自GEO样本的元数据。

在本文中,BIA通过多轮对话来确定特定研究及其数据,明确仅使用单细胞RNA数据并仅选择智人(Homo sapiens)的数据。

[1] Metadata retrieval from sequence databases with ffq
[2] Python library to access gene expression omnibus database (geo)

在获取所选样本的计数矩阵时,BIA适应各种数据格式,包括SRA、FASTQ、MTX、TSV、RData。read count data(ids)工具首先尝试将作者上传的处理过的计数矩阵转换为标准注释数据(Anndata)格式[3]。 计数矩阵的格式多样,具有任意的列和行排列。读取这些数据需要了解矩阵结构,因此不能进行硬编码。

[3] anndata: Annotated data

我们通过LLMs的编码技巧解决了这个挑战,通过提示LLMs提供上传文件的简短摘要和基于文件扩展名选择的代码模板。 我们在Python环境中执行完成的回复代码,并获得最终的Anndata对象。对于没有作者提供数据的样本,BIA根据标准实践从序列读取数据构建Anndata,即使用默认设置将公共FASTQ文件与Cell Ranger软件对齐。然后,BIA对Anndata对象进行数据质量检查、预处理和格式转换任务。

第二个关键功能涉及元数据的识别和组织,元数据指的是包括患者人口统计数据、临床数据以及每个样本的治疗和干预在内的结构化信息。 数据库之间元数据记录的不一致性阻碍了数据重用,而在生物信息学中,仔细控制混杂变量对于可靠的数据解释至关重要。在这里,为了丰富样本元数据的质量,我们利用LLMs从作者提供的非结构化原始描述中提取由专家定义的结构化数据。

metadata extraction(ids)功能遍历给定样本ID的列表,并从每个样本的元信息中返回一组预定义的元字段。这些由专家选择的元字段可以作为下游分析的有效过滤器。为了收集字段值,我们首先获得样本的文本描述,即分别来自GEO和ArrayExpress的SOFT和SDRF文件。这些原始信息然后与目标元字段的说明结合形成一个文本提示。最后,我们调用LLMs使用该提示并从回复中提取每个元字段的相应数据。

2.2 工作流程工具调用器

生物信息学工具箱是广泛的,并且经历快速更新,具有高度灵活的工作流程定制,这对代理在工具调用和适应能力方面构成了重大挑战。为了解决这一问题,我们主要采用以下策略。

我们从公开可用的资源(例如最佳实践、scanpy)中获取scRNAseq生物信息学分析用例作为输入数据中的元数据,并由人类专家将这些用例描述为嵌入数据。然后,根据需要清理和格式化这些数据以确保数据质量。我们应用OpenAI的嵌入模型(模型ID:text-embedding-3-small)将处理过的文本数据转换为向量表示(即嵌入),并使用Chromadb软件包构建嵌入数据库。这些嵌入可以通过查找查询嵌入的最近邻来检索最相关的用例。然后,我们构建了一个生物信息学工具调用封装器,同时确保动态性和灵活性(图2)。


图2:信息学工具调用程序的流聊天。用户通过在调用程序中提供详细的任务描述以及可选的预期计算结果来启动流程。利用llm,系统根据任务描述挖掘RAG数据库,提取相关的工具包、代码片段和使用场景。将用户的规范与代理获得的环境洞察集成在一起,合成检索到的引用,以重新生成与上下文相适应的工具使用代码。然后,定制的代码经历调用、执行和迭代调整。该过程是动态引导的,确保与不断发展的需求保持一致。最后一步,生成最终的输出,当提供时,代理根据用户对计算结果的预定义期望对这些输出进行基准测试。在指定用户期望的情况下,代理积极参与反馈循环,利用在线资源来评估并在必要时纠正输出。在关键时刻,需要人为干预,以确保准确性和相关性。

我们通过生物信息学任务的描述、环境感知和用户期望来规范生物信息学工具的使用。然而,在现实世界的场景中,一些稳定或简单的工作流程不一定需要用户的期望来调整输出,我们在这里将其命名为静态工作流程,与之相对的则是相应的动态工作流程。

我们的调用器设计为与它们兼容,如下所示,我们使用静态工作流程调用作为基础,并在其上添加用户期望管理以适应动态工作流程。首先,任务描述用于通过RAG技术查询最可比的生物信息学工具用例参考的表示。环境中加载的变量和软件包的信息被抽象为文本表示并封装到环境感知中,然后将其与参考用例一起提供给代理进行代码使用适应。然后,代理执行调整后的代码,并进行自动错误校正。在这一点上,静态工作流程的结果已经生成,如果没有用户期望的输入,调用器的工作就完成了。

在另一种情况下,如果给出了用户的期望,调用器将执行动态工作流程调用,并首先根据用户的需求将静态工作流程的输出总结为语言表示,然后由代理进行评估并生成优化建议,其中最新的网络资源将被用于确保评估在生物学上的合理性。在这里,我们规定建议集中在当前用例的参数调整上,并将其反馈给代理以重新调整用例,直到结果符合用户的要求。

结果

在这里,我们展示了一个全面的单细胞数据分析工作流程示例,展示了BIA的核心功能。它主要包括基于聊天的交互、查询时的数据检索、自动化代码生成,以及随后分析和解释生物数据集的能力。总体框架如图1所示。

Automated single-cell data collection

BIA提供了一个界面,使用户能够查询本地部署的数据库中的内容,以及下载公开访问的数据集。我们设计的第一个实验是用户的请求:“从本地数据库中查找涉及胰腺癌的单细胞转录组学研究。”基于这一需求,BIA将首先检查本地数据库中的相关样本,并返回匹配样本的ID列表,以及使用给定信息从存储库中排序的元数据、处理过的计数矩阵和原始数据,如图3所示。

如果本地数据库查询返回的胰腺癌样本结果为空,系统将调用ffq软件,从公共数据库(如GEO或ArrayExpress)中检索数据集URL和每个运行/样本的附带文本描述。随后,将描述性元数据合并并格式化,如图3所示,以便下游分析。矩阵数据要么直接下载,要么利用如cellranger之类的工具从原始数据处理为mtx格式。这些步骤已经通过工程相对固定,而BIA在调用API和执行过程中起到了主要作用(图1)。
在这里插入图片描述

Experimental design generation

在接下来的实验中,我们测试了BIA在无代码交互中智能调用和自动适应生物信息学分析过程的能力。我们从GEO数据库(GSE143423、GSE148673)中选择了包含三阴性乳腺癌(TNBC)样本的2个单细胞RNA-seq数据集,并选择了其中的6个样本(GSM4259357,GSM4476486–GSM4476490)。然后,根据自然语言输入的任务描述,BIA可以通过工具调用器调用生物信息学分析工具来完成用户指定的任务。

在执行生物信息学分析的过程中,我们将生物信息学分析工作流程分为静态程序和动态程序,分别用图4中的黄色和红色表示,基于生物信息学任务的相对成熟度和个性化程度。静态程序类似于自动脚本执行,其中BIA根据任务描述调用来自检索增强生成(RAG)的参考代码,调整代码和参数以符合特定参数和任务细节,然后执行代码进行生物信息学分析,从而产生分析结果。另一方面,动态程序体现了AI增强的个性化分析。在固定程序的基础上,我们增加了一个步骤,使BIA能够迭代优化分析脚本。这涉及BIA首先总结和分析初始运行的输出,将这些结果与用户的预期结果进行比较。如果确定结果不符合用户的期望,BIA将修改整个工作流程以确保满足用户的目标。这种自我改进的迭代过程在自适应工作流程中代表了生物信息学分析定制化的重大飞跃,增强了整体分析灵活性。

在这里插入图片描述

Advanced analytics and reporting

BIA能够根据用户需求调用前几个步骤的数据结果,以及从数据库中检索以前存储的结果,以编译和呈现综合分析报告。它可以执行复杂的统计分析,例如比较不同的簇,以更高的准确性做出数据驱动的决策和预测。例子如图5所示。在一个案例研究中,我们提出了查询:基于我们本地数据库中的数据,显示ID为“LUAD-003-01-1A”的乳腺癌样本中CD4+ T细胞的水平。BIA将返回每种细胞类型的比例,精确地提供不同CD4+ T细胞亚群的组成,以响应输入请求。进一步利用其LLM知识库,BIA能够识别每种细胞类型的常见标志物,并提供根植于领域专业知识的百科全书式解释。这显著减少了用户查询和解释结果的认知负担和时间投入,从而提高了生物信息学数据分析的效率和可访问性。

在这里插入图片描述

Optimistic outcome and strenuous challenges

开发完全为生物领域量身定制的LLM和工具集是一项艰巨的挑战。通过对BIA在各个任务阶段的性能进行全面评估,我们取得了令人鼓舞的成果,同时也发现了一些常见问题。以下部分描述了BIA的评估结果、常见问题及其原因,以及后续调整的方向。

我们首先评估了BIA的元数据提取准确性。我们从GEO(NCBI)和Array Express(ENA)数据库中获得了超过3000个文本元数据表示,并让BIA从中提取11个元数据类别(包括性别、年龄、疾病、取样地点和其他信息)。在GEO和ArrayExpress元数据提取中,它都达到了95%以上的准确率,而在非常不规则的数据集(GEO Hard,其作者提供的信息非常少)中,它在大多数因素上也达到了预期。我们将与本文一起发布这3000个元数据集的真值数据集。

随后,我们检查了BIA在设计生物信息学实验方面的能力,包括静态和动态过程。在固定程序的背景下,遵循单细胞分析的既定管道,BIA能够调用预先包装的代码,并根据我们的具体要求修改参数,从而符合预定的期望。相比之下,在零样本动态过程中,我们观察到一些限制。生物信息学分析的实验设计结果在完整性方面有所欠缺;关键步骤如子簇注释和轨迹分析有时会被遗漏。此外,结果中存在显著的不一致性,当面对相同查询时,建议缺少的工具有所不同,这表明自适应过程的稳定性和鲁棒性不足。大规模语言模型遇到的其他类似问题包括生成的代码片段未能实现预期功能或完全无法执行。这些问题可以归因于几个潜在因素:LLM缺乏领域特定知识;模型处理过程中的“系统性幻觉”倾向;对短期记忆机制的高度依赖;以及内部逻辑一致性相对较低。此外,这些模型无法自主迭代决策过程,需要人工干预来定义循环终止,可能源于信息提供不足或自动评估机制不足。

总之,BIA在进行生物信息学研究方面展示了显著的自主性和复杂的生物学意识。然而,仍需进一步增强其性能。未来工作的关键方向包括通过增加更多专业知识来提升代理生成的实验设计的复杂性,开发一个良好对齐的先验知识库,并通过微调或长期记忆机制将其整合到代理中,增强代理解释和生成结构化数据的能力,以及改进其上下文理解和推理能力。这些经验将应用于额外的组学数据集,旨在显著提高LLM在生物信息学方面的能力。

Discussion and Conclusion

在本文中,我们介绍了BIA,一个能够显著增强生物信息学分析效率,同时降低生物领域知识入门门槛的系统。本文主要针对单细胞RNA测序(scRNA-seq)分析案例,描述了一个从数据获取开始,经过生物信息学实验设计和执行,最终由代理自主组织和解释分析结果的工作流程。这个端到端的过程强调了BIA简化复杂生物信息学任务的能力,从而提高生产力并加深生物学见解。值得注意的是,BIA在将任意语言描述转换为结构化元数据方面表现出色,这极大地增强了大规模队列数据集的探索能力,并显著提高了生物信息学的生产力。然而,我们还发现了一些需要解决的问题,例如在规划时自我一致性低和幻觉。为了解决这些问题,我们的未来改进包括针对领域特异性进行微调,并通过人类反馈增强的强化学习进行迭代性能提升。

生物信息学正在向着越来越繁重和门槛不断提高的方向发展。我们希望通过提高生物信息学方法的普遍性来减轻人力资本和计算资源所施加的限制。必须承认,尽管BIA前景光明,但在经过大量改进、严格验证和专注于提高其智能性和可访问性之后,它可以在更广泛的生物科学社区中被普遍采用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/672784.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷7(私有云)

#需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包…

IP协议1.0

基本概念: • 主机: 配有IP地址, 但是不进⾏路由控制的设备; • 路由器: 即配有IP地址, ⼜能进⾏路由控制; • 节点: 主机和路由器的统称; IP协议的报头 • 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4. • 4位头部⻓度(header length): IP头部的⻓…

微博增强-tampermonkey脚本实现网页管理悄悄关注

不是很明白微博为什么不出个x的列表功能,毕竟现在信息洪流,有些东西只是要看要了解,但不希望天天在首页轰炸眼睛,扰乱心智。 这个tampermonkey脚本适配了pc web和手机pwa版本(weibo.com/m.weibo.cn),解决了…

【LeetCode算法】第104题:二叉树的最大深度

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路:二叉树的先序遍历。首先判断根节点是否是空,其次判断根节点是否是叶子节点,再者递归获取左子树的深度、右子树的深度,最后返回左子…

设计模式(十二)行为型模式---模板方法模式(template)

文章目录 模板方法模式结构优缺点UML图具体实现UML图代码实现 模板方法模式 模板方法模式(Template Method)是一种基于继承实现的设计模式,主要思想是:将定义的算法抽象成一组步骤,在抽象类中定义算法的骨架&#xff…

HOW - BFF 服务实践系列(一)

目录 一、BFF 介绍1.1 BFF 的概念1.2 为什么需要 BFF1.3 举例说明 二、适用于Web前端的BFF应该提供哪些能力2.1 接口聚合(重要)2.2 简化和优化的API2.3 安全和身份验证(重要)2.4 缓存机制2.5 错误处理和重试机制2.6 数据格式转换2…

(ISPRS,2023)RS-CLIP: 基于对比视觉-语言监督的zero-shot遥感场景分类

文章目录 相关资料摘要引言方法CLIP回顾伪标签生成课程学习策略 实验数据集不同文本提示失败案例分析课程学习zero-shot分类 相关资料 论文:RS-CLIP: Zero shot remote sensing scene classification via contrastive vision-language supervision 摘要 零样本遥…

未来已来:Spring Boot引领数据库智能化革命

深入探讨了Spring Boot如何与现代数据库技术相结合,预测并塑造未来的数据访问趋势。本书不仅涵盖了Spring Data JPA的使用技巧,还介绍了云原生数据库的概念,微服务架构下的数据访问策略,以及AI在数据访问层的创新应用。旨在帮助开…

视频搬运的素材网站有哪些?打包好的视频素材在哪找?

短视频创作的朋友们,欢迎进入这个充满创意的世界!如果你曾为找不到合适的素材而苦恼,那么今天就让我为你介绍几个能够快速丰富你视频内容的素材平台。无论是为了搬运视频还是寻找灵感,下面这些网站都将是你的强力助手。特别地&…

lammps金刚石三棱锥刀具建模

大家好,我是小马老师。 本文介绍lammps三棱锥刀具建模方法。 lammps切削模拟的刀具形状有很多,如球形、锐角、钝角、三棱锥等刀具。 球形、锐角、钝角等刀具建模已经在公众号发过,本文介绍三棱锥的建模。 形状如下图所示: 主要原…

探索 Vue Devtools 4.0 的新世界!

大家好,我是前端宝哥。Vue Devtools 4.0 版本带来了一系列激动人心的新特性和改进,让我们一起来探索这些更新亮点! 宝哥省流版: 🛠 直接编辑组件数据,实时预览变更效果。⚙️ 快速编辑功能,一键…

使用python实现超市购物系统(一个小例子)

可以增加其他功能,这里就展示一个小的例子~

git基本使用——回退,撤销add,commit,合并分支

学习笔记 笔记中表格中的—— 表示需要回退的地方,也就是使用命令之后会改变的地方 网页软件分享 这是一个非常好用web端笔记画图软件,解决了typora画图不方便的问题

【评价类模型】Topsis

综合赋权法:Topsis法: 主要适用情况:题目提供了足够的评价指标和数据,数据已知,评价指标的类型差异较大 基本思想:将所有方案与理想解和夫理想解进行比较,通过激素那方案与这两个解的举例去欸的…

mysql面试之分库分表总结

文章目录 1.为什么要分库分表2.分库分表有哪些中间件,不同的中间件都有什么优点和缺点?3.分库分表的方式(水平分库,垂直分库,水平分表,垂直分表)3.1 水平分库3.2 垂直分库3.3 水平分表3.4 垂直分表 4.分库分表带来的问题4.1 事务一致性问题4.2 跨节点关联…

pandas添加行

方法1(df.append()) import pandas as pd# 创建一个空的DataFrame df pd.DataFrame(columns[Column1, Column2])# 新增一行数据 data {Column1: Value1, Column2: Value2} df df.append(data, ignore_indexTrue) print(df)raw_data {"Column1":"adafafa&quo…

【recast-navigation-js】使用three.js辅助绘制Agent

目录 说在前面使用Tweakpane添加CrowAgent其他 说在前面 操作系统&#xff1a;windows 11浏览器&#xff1a;edge版本 124.0.2478.97recast-navigation-js版本&#xff1a;0.29.0golang版本&#xff1a;1.21.5 使用Tweakpane fps面板interface FPSGraph extends BladeApi<B…

Redis这一篇就够了

一.概述 Redis是什么&#xff1f; Redis是远程服务字典服务&#xff0c;是一个开源的使用ANSI C语言编写&#xff0c;支持网络&#xff0c;可基于内存亦可持久化的日志型&#xff0c;Key-Value数据库&#xff0c;并提供多种语言的API。 redis会周期性把更新的数据写入磁盘或把…

米尔MYC-Y6ULX-V2开发板测评记录

文章目录 1、板子上手体验2、板载硬件3、系统信息4、 驱动测试5、编译linux三大件7、摄像头测试9、总结 1、板子上手体验 首先非常感谢芯查查给了这样一个机会来测评这样一款性能十分强大的开发板&#xff0c;我拿到手的是MYC-Y6ULX-V2核心板及开发板&#xff0c;这块板子具有…

SSMP整合案例第六步 在前端页面上利用axios和element-ui与后端交互实现增删改

新增操作 正常我们都是从新增功能书写 查看源码 显示的是这个 在vue里面开下来 这样就能显示 点击确定 就能把数据发送到后台进行保存 //弹出添加窗口handleCreate() {this.dialogFormVisible true;},//重置表单resetForm() {},//添加handleAdd() {//绑定的是确定按钮 发起请…