前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用 AI 识别基因,从向量化 DNA 序列开始

用 AI 识别基因,从向量化 DNA 序列开始

作者头像
Zilliz RDS
发布于 2021-08-20 07:11:52
发布于 2021-08-20 07:11:52
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

DNA 序列在分子生物学和医药研究中有着广泛的应用,比如基因溯源、物种鉴定、疾病诊断等。如果结合正在兴起的基因大数据,采取大量的样本,那么通常实验结果更具说服力,也能够更有效地投入现实应用。

同时如同其他行业一样,人工智能的介入正在受到广泛的关注,承载着业界对更智能高效的研究方法的期待。然而传统的核酸序列比对方法有着诸多限制,并不适用于大规模的数据 [1] ,这使现实应用不得不在成本和准确率中做出取舍。为缓解核酸序列数据特性的掣肘,向量化是面对大量 DNA 序列时的一个更优选择。

Milvus 作为一款开源的、对海量数据友好的向量数据库,能够高效地存储和检索核酸序列的嵌入。在提高效率的同时,Milvus 也能够帮助降低项目研究或系统搭建的成本。由 Milvus 搭建的 DNA 序列分类系统,不仅毫秒之间能够识别基因的类别,还比机器学习领域里常见的分类器们更加精准。

数据处理

基因是带有遗传信息的 DNA 序列片段,由数个碱基【A, C, G, T】排列组合而成。每个生物都有不同的基因组,比如人类基因组中含有3万个左右基因,约30亿个 DNA 碱基对,每个碱基对有2个对应的碱基。

针对不同的需求和目的,DNA 序列可以被各种分类,支持着多样的学术研究和现实应用。原始的 DNA 序列数据通常长短不一,常存在长序列。为了减少处理数据的成本,业内通常使用 k-mer [2] 预处理序列,同时能够使 DNA 序列更接近普通文本的词句结构。而向量化数据则能够进一步提高计算速度,并适用于大数据分析与机器学习。

k-mer

一种常见的 DNA 序列预处理方式是 k-mer,从原始序列第一个碱基开始,以一个碱基为单位每次向后一位,每次取一个长度为k的短序列。经过 k-mer 之后,一条长度为 s 的长序列就被转换成了(s-k+1)个短序列。通过调节k的值,可以提高模型的准确性。转换后的短序列可以更好地进行数据读取、特征提取、向量化。

向量化

向量化 DNA 序列的过程其实是将其当作普通文本,一条被 kmer 拆分后的序列就像是一个句子,拆成的单个短序列是一个单词,碱基则对应字符。因此常见的 NLP 模型都可以被用来处理 DNA 序列数据,进行模型训练、特征提取、序列编码。

每个模型都有自己的特点和限制,实际操作中可以根据数据的特点进行选择和比较。以词袋模型为例,CountVectorizer 是一种比较轻便的特征提取方法,对序列长度没有限制,但相似度区分不明显。

Milvus示例

Milvus 使用简化的非结构化数据管理,能够将目标对象在万亿条向量数据中根据近似最近邻搜索(ANN)算法进行比对,以平均延迟以毫秒计的速度召回相似结果。它对海量非结构化数据的友好与高效的相似搜索,毫无疑问能够轻松地管理大量 DNA 序列数据,从而促进生物或基因学的研究与应用。

一个简单的演示案例展现了如何使用Milvus搭建 DNA 序列的分类系统,实验数据[3]包含了三个物种的7种基因序列。在插入 Milvus 之前,该示例首先将所有的 DNA 序序列进行了 k-mer 处理,然后训练了词袋模型用以特征提取与向量化。该结合 Milvus 与 Mysql 的分类模型结构如下图所示,包括了插入和搜索两个流程。

(https://github.com/milvus-io/bootcamp/tree/master/solutions/dna_sequence_classification)

得到每条 DNA 序列对应的向量之后,将其插入 Milvus 中事先建好的 Milvus 集合中(可指定分集),以供比对与搜索。向量之间的距离反映了序列之间的相似度,从而实现基因序列的分类和种类之间的相似度比较。

代码语言:javascript
代码运行次数:0
运行
复制

基因序列分类

输入未知类别的 DNA 序列,在 Milvus 数据库中搜索与其相似的序列便可以对搜索对象进行基因分类,以此了解其可能的功能。比如一段序列被分类为GPCRs(G蛋白偶联受体),则表示该序列或许关系着样本采取对象的各种生理功能[4]。示例中的模型对未插入集合的人类基因序列进行搜索,成功根据搜索结果返回了正确的基因类别,证明了 Milvus 的向量相似性搜索能够分类基因序列。

物种相似程度

通过比较不同物种之间基因序列的平均相似度,也可以看出哪些物种之间基因更为相似。示例中计算了黑猩猩与人类、狗与人类的基因序列的平均内积距离(Average Inner Product Distance: 0.97 > 0.70),验证了黑猩猩比狗在基因上更接近人类。由此可见,Milvus 能够通过计算基因序列之间的向量距离来支持科学研究。

代码语言:javascript
代码运行次数:0
运行
复制

实验表现

对示例采用的人类基因序列样本数据(共 3629 条)进行 k-mer 处理后,随机取20% 作为测试数据。使用剩下的 80% 作为训练数据,进行特征提取,训练不同的分类模型或搭建 Milvus + Mysql 搜索系统。实验采用了五种分类器分别对测试序列进行了分类,通过计算并比较准确率(正确分类的基因序列个数 / 测试序列的总个数),Milvus + Mysql 搭建的分类模型的准确率(90.77%)超过了所有的常用分类器。

代码语言:javascript
代码运行次数:0
运行
复制

应用拓展

随着基因大数据的发展和完善,向量化后的 DNA 序列数据能够更好地参与科学研究与实践应用。如果能够结合生物学的专业知识,便可以更合理地向量化 DNA 序列、计算距离、解读结果。

融入生物学并采用大量的样本能够很大程度地改进基因序列的向量数据库,Milvus 便能够更好地发挥所长。根据现实需求,Milvus 相似性搜索和距离计算有很大的潜力被投入各种应用。

  • 未知序列研究:研究表明向量化序列能够压缩数据,根据已知基因序列研究未知序列的结构、功能、进化关系。[5] 当拥有足够的序列数据进行研究时,实验结果会更加可靠有效,但数据的存储和处理会成为一个问题。将其向量化后使用 Milvus 能够在节约数据处理成本的同时,保持甚至提高模型准确率。
  • 适配硬件:受到传统的生物分子序列比对算法限制,基因序列相似性搜索无法受益于硬件(CPU/GPU)的发展[6][7]。Milvus 的加入可以从距离算法上解决这一问题,更好地根据数据规模适配硬件,从而显著提高搜索效率。
  • 鉴定或溯源病毒:现实中鉴定新冠病毒的起源时,科学家通过比较毒株核苷酸序列推测出新冠病毒或起源于蝙蝠,同时发现其比起 MERS 更接近 SARS 病毒。[8] 该实验采用了 5 例病患的数据,如果在此基础上使用更大的样本进行验证或者研究,结论能够更具说服力,或发现更多的模式。
  • 疾病诊断:临床上一般是对比检查对象与健康人的基因序列,找出可引起疾病的变异基因。[9] 在疾病对应的基因位置得到序列,根据健康与否、严重程度或疾病类型将大量的样本数据分类。将这些数据通过合适的算法提取特征并向量化后插入 Milvus,计算向量距离并转换成患病概率,就可以实现基于基因序列的人工智能疾病诊断系统。除了能够协助疾病诊断外,该应用也能够帮助推进靶向治疗的发展[10]。

参考资料:

https://www.frontiersin.org/articles/10.3389/fbioe.2020.01032/full#h5

https://en.wikipedia.org/wiki/K-mer#:~:text=Usually%2C%20the%20term%20k%2Dmer,total%20possible%20k%2Dmers%2C%20where

https://www.kaggle.com/nageshsingh/dna-sequence-dataset

https://baike.baidu.com/item/G%E8%9B%8B%E7%99%BD%E5%81%B6%E8%81%94%E5%8F%97%E4%BD%93/9495289#4

https://iopscience.iop.org/article/10.1088/1742-6596/1453/1/012071/pdf

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7884812/

https://mjeer.journals.ekb.eg/article_146090.html

http://rs.yiigle.com/yufabiao/1180150.htm

http://www.xinhuanet.com/science/2018-04/16/c_137114251.htm

https://www.frontiersin.org/articles/10.3389/fgene.2021.680117/full

✏️ 作者:顾梦佳,Zilliz 数据工程师,麦吉尔大学信息学硕士。在 Zilliz 的主要工作是参与开源项目 Milvus 的社区运营与维护,为用户提供升级推荐系统、搭建基因序列分类模型等不同场景下的解决方案。野草般顽强,解决问题时百折不挠、遇强愈强。

Github @Milvus-io|CSDN @Zilliz Planet|Bilibili @Zilliz-Planet

Zilliz 以重新定义数据科学为愿景,致力于打造一家全球领先的开源技术创新公司,并通过开源和云原生解决方案为企业解锁非结构化数据的隐藏价值。

Zilliz 构建了 Milvus 向量数据库,以加快下一代数据平台的发展。Milvus 目前是 LF AI & Data 基金会的毕业项目,能够管理大量非结构化数据集。我们的技术在新药发现、计算机视觉、推荐引擎、聊天机器人等方面具有广泛的应用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ZILLIZ 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
API架构风格的深度解析与选择策略:SOAP、REST、GraphQL与RPC
API作为系统间通信的桥梁,其设计风格也在持续发展和完善。SOAP、REST、GraphQL和RPC作为四种主流的API架构风格,各自具有鲜明的特点和适用场景。
公众号:码到三十五
2024/12/09
2080
API架构风格的深度解析与选择策略:SOAP、REST、GraphQL与RPC
API 架构风格抉择:SOAP、REST、GraphQL 和 RPC 的特性、优势与局限
两个独立的应用程序需要一个中介来相互通信。因此,开发人员通常会构建桥梁——应用程序编程接口 (API) ——以允许一个系统访问另一个系统的信息或功能。
架构精进之路
2025/04/16
1470
API 架构风格抉择:SOAP、REST、GraphQL 和 RPC 的特性、优势与局限
安息吧 REST API,GraphQL 长存
即使与 REST API 打交道这么多年,当我第一次了解到 GraphQL 和它试图解决的问题时,我还是禁不住把本文的标题发在了 Twitter 上。
疯狂的技术宅
2019/03/27
2.8K0
安息吧 REST API,GraphQL 长存
GraphQL与传统API对比介绍教程
在现代应用程序开发中,API(应用程序接口)扮演着至关重要的角色。随着技术的发展,API的实现方式也在不断进化。本文将介绍两种常见的API实现方式:传统API(主要是REST)和GraphQL,并对它们进行对比分析。
IT蜗壳-Tango
2024/06/22
2760
与我一起学习微服务架构设计模式8—外部API模式
Web应用在防火墙内部运行,它们通过高带宽、低延迟的局域网访问服务。其他客户端在防火墙之外运行,通过较低带宽、较高延迟的互联网或移动网路访问。
java达人
2019/12/06
1.4K0
新一代数据查询语言GraphQL来啦!
1. GraphQL来啦! 当Facebook构建移动应用的时候,它需要的是一个强大的数据获取API: 足够强大,满足Facebook自身复杂业务的需求; 足够简单,对开发者和使用者来说很容易上手与使
IMWeb前端团队
2017/12/29
3K1
新一代数据查询语言GraphQL来啦!
理解 GraphQL:现代 API 查询语言的详解与实践
GraphQL 是一种用于 API 的查询语言,以及一个用于执行查询的服务器端运行时。它允许客户端精确地请求所需的数据,避免冗余和不足。GraphQL 由 Facebook 于 2012 年开发,并在 2015 年开源。
编程小妖女
2024/12/28
1560
理解 GraphQL:现代 API 查询语言的详解与实践
4种主流的API架构风格对比
本文讨论了四种主要的 API 架构风格,比较它们的优缺点,并重点介绍每种情况下最适合的 API 架构风格。
深度学习与Python
2021/01/21
2.4K0
标准化技术下的软件开发
聊到集成测试、单元测试等测试分类,我想大多数人都有类似困惑或讨论,集成测试和 E2E 测试到底有啥区别。甚至还有一些系统测试、配置项测试等概念,不但让我们这种非 QA 专业的人弄不清楚,在和我们的 QA 同学讨论时也很难得到清晰的结论。
ThoughtWorks
2019/09/29
9640
标准化技术下的软件开发
深入解析 RESTful API:从设计到实践的完整指南
在当今的互联网世界中,不同系统之间的数据交互和通信是构建现代应用的核心需求。无论是移动应用、Web 平台,还是微服务架构,RESTful API 都扮演着桥梁的角色。它以其简洁性、灵活性和可扩展性,成为开发者构建分布式系统的首选方案。本文将从基础概念到实际应用,一步步拆解 RESTful API 的设计与实现,助你掌握这一关键技术。
DevKevin
2025/02/16
2880
GraphQL与OpenAPI:数据治理的优缺点
一位财富 50 强公司的 CTO 评估了 OpenAPI 和 GraphQL API 标准的优缺点,以及它们与数据治理的相关性。
云云众生s
2024/08/13
1850
API接口架构REST vs GraphQL
无论是创建网站,还是移动应用程序,我们都需要通过 API 来传递数据,通过 API 我们可以获取到数据库中的数据,可以操作数据库,可以处理一些业务逻辑。现在最流行的 API 架构是 REST。但是,GraphQL 正在逐渐追赶着它。
程序那些事儿
2023/03/07
1.7K0
API接口架构REST vs GraphQL
常见形式 Web API 的简单分类总结
请求--响应类的API的典型做法是,通过基于HTTP的Web服务器暴露一个/套接口。API定义一些端点,客户端发送数据的请求到这些端点,Web服务器处理这些请求,然后返回响应。响应的格式通常是JSON或XML。
solenovex
2018/10/15
3.2K0
【RESTful】RESTful API 接口设计规范 | 示例
参考官方文档:https://tools.ietf.org/html/rfc2616
前端修罗场
2023/10/07
1.8K0
【RESTful】RESTful API 接口设计规范 | 示例
RESTful架构API风格与相关规范 极客开发者
以上是对RESTful架构的概述,在本文中,我将使用自己的理解完整的表述RESTful的规范,以及如何设计符合RESTful规范的API。实际上,在对计算机技术的理解中,一百个人可能会有一百种理解方式,尽管见仁见智,但我们的目的都是把技术当作工具,去实现我们的程序功能。如果在本文中的描述有所错误,或您有所不解,欢迎留言评论!
极客开发者
2022/01/18
4220
人人都是 API 设计者:我对 RESTful API、GraphQL、RPC API 的思考
有一段时间没怎么写文章了,今天提笔写一篇自己对 API 设计的思考。首先,为什么写这个话题呢?其一,我阅读了《阿里研究员谷朴:API 设计最佳实践的思考》一文后受益良多,前两天并转载了这篇文章也引发了广大读者的兴趣,我觉得我应该把我自己的思考整理成文与大家一起分享与碰撞。其二,我觉得我针对这个话题,可以半个小时之内搞定,争取在 1 点前关灯睡觉,哈哈。
用户2781897
2019/05/17
1.1K0
架构师该如何为应用选择合适的API
架构师的主要活动是做出正确的技术决策。选择合适的API是一项重要的技术决策。那么今天就看看API的选择问题。
yuanyi928
2020/06/17
1.7K0
最流行六种的 API 架构风格(附 Node.js DEMO)
本篇将介绍六种最流行的 API 架构风格,分别是 SOAP、RESTful、GraphQL、gRPC、WebSocket 和 Webhook。对于每种 API 架构风格,我们将深入探讨其优点、缺点以及适用场景,并提供相应的 DEMO 以帮助读者更好地理解每种 API 架构的实现方法和运作原理。
Cellinlab
2023/06/01
2.2K0
最流行六种的 API 架构风格(附 Node.js DEMO)
GraphQL 初体验,Node.js 构建 GraphQL API 指南
过去几年中,GraphQL 已经成为一种非常流行的 API 规范,该规范专注于使客户端(无论是客户端、前端还是第三方)的数据获取更加容易。
coder_koala
2021/01/08
8.4K1
【REST架构】OData、JsonAPI、GraphQL 有什么区别?
我在职业生涯中使用过很多 OData,现在我来自不同团队的同事中很少有人建议我们迁移到 JsonAPI 和 GraphQL,因为它与 Microsoft 无关。我对这两种查询语言都没有太多经验。据我所知,OData 是 Salesforce、IBM、Microsoft 使用的标准,并且非常成熟。为什么要切换到 JsonAPI 和/或 GraphQL?有真正的好处吗?JsonAPI 和 GraphQL 是新标准吗?根据受欢迎程度更改公共 api 实现似乎没有用,尤其是在没有太大好处的情况下。
架构师研究会
2022/05/29
1.7K0
推荐阅读
相关推荐
API架构风格的深度解析与选择策略:SOAP、REST、GraphQL与RPC
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档