合碳智能 × Milvus:探索化学合成新境界——逆合成路线设计

ac01122659a29561c7df3e73578881de.png

a594c5577cda114a8e9f07fd75837924.png

合碳智能(C12.ai)成立于2022年,致力于运用AI和具身智能技术,为药物研发实验室提供新一代智能化解决方案,推动实验室从自动化迈向智能化,突破传统实验模式与人员的依赖,解决效率和成本的瓶颈,实现药物研发行业的产业革命。

在药物研发和有机合成化学领域,逆合成分析是一种至关重要的工具。通过逆合成分析,化学家可以从目标分子出发,逐步拆解其结构,推导出合理的合成路线。然而,合成路线的设计往往需要借鉴历史上已知的相似反应,这些反应提供了宝贵的经验和指导,使得合成路线设计更具可行性和效率。

在我们开发的逆合成路线设计产品中,相似反应的检索是核心功能之一。为了在庞大的反应数据库中快速、准确地找到与每一步设计相关的相似反应,我们采用了 Milvus 向量数据库。Milvus 以其卓越的高维向量处理能力,成为了支撑这一关键功能的理想选择。

01.

需求与挑战

在逆合成路线设计中,相似反应检索面临的挑战更加复杂和严苛。以下是在开发过程中遇到的主要需求与挑战:

1、高效处理庞大的化学反应数据

在设计逆合成路线时,化学家需要从庞大的反应数据库中快速找到与当前步骤相似的反应。这些数据库往往包含数百万条甚至数亿条反应记录,这些记录涉及到各种复杂的化学结构和反应机制。因此,我们的系统需要在极短的时间内从如此庞大的数据集中筛选出最相关的反应。

2、高维向量相似度计算的复杂性

逆合成分析涉及大量高维度的化学结构和反应指纹,这些指纹通常以高维向量的形式存储和比较。传统的数据库难以高效处理这些高维向量间的相似性计算,而逆合成设计过程又要求在海量数据中快速定位到相关性最高的反应,这对系统的计算能力和算法提出了极高的要求。

3、系统的实时性与扩展性要求

逆合成路线设计通常需要支持实时的用户交互。化学家在设计过程中会不断调整和优化合成路径,每一次调整都需要系统迅速响应,提供相关的相似反应建议。因此,系统不仅需要在当前数据规模下保持高效,还需具备良好的扩展性,以应对未来可能的数据库扩展和查询请求的增长。

4、检索结果的质量与相关性

在逆合成过程中,检索出的相似反应不仅需要在结构上相似,还必须在化学性质和反应条件上具有较高的相关性。这意味着,检索系统不仅要考虑到简单的结构相似性,还需结合化学反应机理、反应条件以及其他领域特定的知识进行结果优化,以提供真正有价值的参考。

02.

解决方案

针对上述挑战,我们选择了 Milvus 作为核心的向量数据库来支撑相似反应检索功能。Milvus 在处理大规模、高维度向量数据的过程中表现卓越,特别是在逆合成路线设计中,这些特性显得尤为重要。我们的解决方案主要包括以下几个方面:

1、化学反应数据的向量化处理

逆合成路线设计依赖于对化学反应步骤的精确描述。这些描述通常通过化学指纹(如ECFP等)转换为高维向量。我们使用专业的化学信息学工具将每一个反应步骤的分子结构和反应条件转换为高维度的指纹向量。这些向量数据作为 Milvus 的输入,为后续的相似性检索打下基础。

在具体实施中,我们针对不同类型的化学反应设计了不同的向量化方案。通过对反应中各组分(如反应物、催化剂、溶剂等)的特征提取,我们生成了更符合化学家需求的多维向量表示,使得检索出的相似反应在结构上更加贴近实际应用场景。

2、高效的索引构建与优化

为了确保检索的速度和精度,我们在 Milvus 中为每一组反应数据构建了适合的索引结构。我们选择了 IVF (Inverted File Index) 索引结构,因为它在处理高维向量数据时,能够在确保精度的同时提供更快的检索速度。

IVF 索引通过将数据空间划分为多个簇,每个簇内的数据使用量化向量进行近似表示,从而大幅度减少搜索空间,提高检索效率。在我们的系统中,IVF 索引不仅缩短了检索时间,还显著提高了检索精度,确保了化学家在设计逆合成路线时能够快速获得高质量的相似反应建议。

3、分布式部署与性能扩展

为了应对数据规模的不断增长以及高并发的查询需求,我们将 Milvus 部署在分布式计算环境中。通过 Kubernetes 和 Docker 的结合使用,我们实现了系统的容器化部署,使得 Milvus 能够在多个节点上并行处理数据和查询请求。

这一分布式架构不仅提升了系统的可扩展性,还增强了系统的容错能力。在高负载或节点故障的情况下,系统能够自动扩展和恢复,从而保证了相似反应检索的高可用性和稳定性。与此同时,我们还引入了缓存机制和负载均衡策略,以进一步优化系统的性能和用户体验。

4、结果的筛选与优化

在检索到相似反应后,我们并不是直接将结果呈现给用户,而是进一步结合化学领域的专业规则进行筛选和排序。例如,我们会根据反应条件的相似性、反应产率以及反应的适用性等多个维度,对检索结果进行加权评分。最终,系统将最符合逆合成设计需求的相似反应优先展示给用户。

这一过程不仅提高了检索结果的相关性和实用性,还使得化学家在实际应用中能够更快地找到适用的反应步骤,进而优化整个合成路线设计。这种基于多维度条件筛选的结果优化策略,极大地增强了系统的智能化水平,使其能够更好地服务于逆合成路线设计的实际需求。

03.

实施效果

通过两个详细的流程图展示了逆合成路线设计中使用 Milvus 向量数据库进行相似反应检索的完整过程。

57224f31b5a0d53e9c2c083a28a91eb1.png

自从在我们的逆合成路线设计产品中引入 Milvus 进行相似反应检索后,我们在多个方面取得了显著的成效:

1、检索效率的大幅提升

通过使用 Milvus 的 IVF 索引和分布式架构,我们显著提高了相似反应检索的效率。在处理包含数百万条反应记录的大型数据库时,系统能够在秒级时间内返回相关的相似反应结果。相比传统方法,检索速度提升了10倍以上,大大缩短了逆合成设计的周期。

2、系统扩展性的增强

得益于 Milvus 的分布式设计,我们的系统能够轻松应对数据规模的增长和查询请求的增加。无论是数据节点的扩展还是计算资源的增加,系统都能够快速响应,保持高效稳定的性能。这为我们在未来扩展数据库规模以及应对更复杂的查询需求提供了坚实的基础。

3、检索结果的高质量与高相关性

通过结合 Milvus 的高效检索与化学领域特定的规则筛选,我们提供的相似反应不仅在结构上具有高度相似性,还在实际应用中具备较高的相关性。这种高质量的检索结果帮助化学家在设计逆合成路线时,更加自信和高效地做出决策,减少了实验的盲目性和失败率。

4、用户体验的显著改善

系统的高效性和结果的高质量使得用户的满意度显著提高。化学家们可以更快、更精准地找到所需的相似反应,优化他们的逆合成路线设计。这种体验的提升,不仅提高了他们的工作效率,还增强了对我们产品的信任和依赖,推动了系统在科研和工业领域的广泛应用。

04.

结语

通过利用 Milvus 的高效向量处理能力,我们成功应对了大规模数据处理和高维向量计算的挑战,为逆合成设计提供了强有力的技术支持。随着技术的不断进步和系统的持续优化,我们相信未来的逆合成路线设计将更加智能化、高效化,为化学研究和药物开发带来更大的创新和突破。

推荐阅读

99535f64e003b3998e2afb14b0e3a00f.png

ed2512325ffed940c25653a57edb0707.png

1ab5e3b7d38e4a3164090f2dcf8e1a8b.png

a1c6b391b107a3353fcbcee08b3dadbf.png

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑错误mfc140.dll丢失怎么办?mfc140.dll丢失如何修复?

在使用基于Microsoft Visual Studio 2015开发的应用程序时,可能会遇到个别组件影响整体功能的情况,其中“mfc140.dll丢失”错误就是常见的一个技术障碍。这个DLL文件属于Microsoft Foundation Class (MFC) Library,它对Windows应用程序的运行…

MySQL record

更改密码: alter user rootlocalhost identified with mysql_native_password by ‘123456’; 注意: 在命令行方式下,每条MySQL的命令都是以分号结尾的,如果不加分号,MySQL会继续等待用户输入命令,直到MyS…

【C++】STL—vector的使用

目录 前言vector的常见构造迭代器的使用vector空间增长问题vector的增删查改尾插和尾删findinsert和erase 前言 vector是表示可变大小数组的序列容器。它就像数组一样,采用连续的存储空间来存储元素,且它的大小可以动态改变。并且vector在访问元素时也非…

AI语音机器人:通过 Azure Speech 实现类人类的交互

语音对话的重要性 在竞争日益激烈的客户互动领域,人工智能语音对话正成为重中之重。随着数字参与者的崛起,组织认识到语音机器人的强大力量,它是一种自然而直观的沟通方式,可以提供类似人类的体验,深度吸引用户&#…

jmeter中上传文件接口,当文件名为中文时出现乱码

1、在jmeter5.1.1中配置上传文件接口,当上传的文件为中文名称时,文件名称会显示乱码如图 2、解决方案是需要更换jmeter/lib/ext文件中的ApacheJMeter_http.jar 包 3、更换jar包经过多次实验,发现有的上传文件接口中文名正常,但是有…

负载均衡--资源申请说明(三)

1.负载方式:分为四层负载和七层负载 2.负载协议:四层负载为TCP和UDP,七层负载为HTTP和HTTPS 4.负载端口:填写虚地址的端口(一般与后端服务端口保持一致) 5.真实服务IP:指被负载的后台真实服务…

从零开始:理解并实践Prompt Flow

在人工智能领域中,代码先行与模型紧密结合的Prompt Flow逐渐成为开发者关注的新焦点。今天,我们将共同探索如何快速启动Prompt Flow项目,深入了解流(flow)的概念,并学习如何使用VS Code Extension或YAML来编…

基于Python的机器学习系列(26):PyTorch中的梯度计算

在本篇中,我们将探讨PyTorch的autograd功能,它为张量操作提供自动微分。我们将学习如何使用torch.autograd工具计算梯度并进行反向传播。 自动微分(Autograd) PyTorch的autograd包自动计算张量的梯度。当一个张量的.requires_gra…

C++和Python混合编程——C++调用Python入门

大纲 代码结构初始化 Python 解释器获取 GIL为什么需要 GIL?GIL 的影响 导入 Python 模块并执行代码释放 GIL终止 Python 解释器 完整代码编译执行结果项目地址 在《C和Python混合编程——Python调用C入门》一文中,我们熟悉了Python调用C编译的动态库的方…

集成电路学习:什么是PWM脉冲宽度调制

一、PWM:脉冲宽度调制 PWM,全称为脉冲宽度调制(Pulse Width Modulation),是一种通过调整脉冲信号的宽度来控制电路输出的技术。在PWM中,信号的输出由一系列等幅值的脉冲组成,这些脉冲的宽度根据…

上海亚商投顾:深成指、创业板指均涨超1%,华为产业链反复活跃

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 大小指数昨日走势分化,沪指全天震荡调整,2800点失而复得,深成指、创业板指…

golang

一.go执行流程 4)go run运行时间明显要比第一种时间长一点 【3】编译后的文件可以替换名称 二.语法注意 1.源文件以“go”为扩展名 2.程序的执行入口是main()函数。 3.严格区分大小写 4.方法由一条条语句构成,每个语句后不需…

Docker安全

Docker安全 和本地共享资源,会有安全性问题 1. Cgroups 对资源的上限进行控制 /sys/devices/system1.1 cpu资源限制 # 进行cpu控制,只使用20%的资源 docker run -it --rm --cpu-period 100000 --cpu-quota 20000 ubuntu# 测试cpu使用 dd if/dev/zer…

【题目全解】蓝桥杯24省赛C++中高级组题干题解

本帖只提供六道编程题的解题思路,部分题目并不提供实际的代码(因为我赛时忘记把代码截图下来了)。 T1 - 看书 题干描述: 一本书共 n n n 页,小明计划第一天看 x x x 页,此后每一天都要比前一天多看 y y…

【面试八股总结】MySQL 锁:全局锁、表级锁、行级锁

1. 全局锁 顾名思义,全局锁就是对整个数据库实例加锁。 MySQL 提供了⼀个加全局读锁的方法: flush tables with read lock 释放全局锁,执行命令: unlock tables 需要让整个库处于只读状态的时候,可以使用全局锁命…

鸿蒙(API 12 Beta6版)图形【NativeImage开发指导 (C/C++)】方舟2D图形服务

场景介绍 NativeImage是提供Surface关联OpenGL外部纹理的模块,表示图形队列的消费者端。开发者可以通过NativeImage接口接收和使用Buffer,并将Buffer关联输出到OpenGL外部纹理。 针对NativeImage,常见的开发场景如下: 通过Nati…

linux系统中USB模块鼠标驱动实现

各位开发者大家好,今天主要给大家分享一下,Linux系统中使用libusb的方法以及鼠标驱动实现。 第一:libusb概述 参考网址:* libusb GIT仓库:https://github.com/libusb/libusb.git * libusb 官网:https://libusb.info/ * libusb API接口:https://libusb.sourceforge.io/…

mysql 使用 general 开启SQL跟踪功能

查看当前状态 mysql> SHOW VARIABLES LIKE %general%; 启用 临时启用 SET GLOBAL general_logon; SET GLOBAL general_log_file/tmp/general.log; 永久启用 通过修改配置文件来启用,需要重启mysql服务 [mysqld] general_logON general_log_file/tmp/general.log 再次查看状态…

【Redis】Redis 持久化机制详解:RDB、AOF 和混合持久化的工作原理及优劣分析

目录 持久化RDB触发机制流程说明RDB ⽂件的处理RDB 的优缺点 AOF使⽤ AOF命令写⼊⽂件同步重写机制启动时数据恢复 混合持久化小结 持久化 回顾 MySQL 的事务的特性: 原子性一致性持久性(持久化)隔离性 持久化:把数据存储在硬盘上…

CAN总线之一篇文章讲清楚Motorala和inter格式

前言: 之前的工作中,其实对Motorala和inter格式并不是了解的十分透彻。最近由于工作需要,研究了一下这两种格式,发现里面的门道其实挺复杂的。 特此作了一些总结:和大家一起分享。 我查了不少文档,描述其…