每日一博 | 用 AI 识别基因,从向量化 DNA 序列开始
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 集合中(可指定分集),以供比对与搜索。向量之间的距离反映了序列之间的相似度,从而实现基因序列的分类和种类之间的相似度比较。
基因序列分类
输入未知类别的 DNA 序列,在 Milvus 数据库中搜索与其相似的序列便可以对搜索对象进行基因分类,以此了解其可能的功能。比如一段序列被分类为GPCRs(G蛋白偶联受体),则表示该序列或许关系着样本采取对象的各种生理功能[4]。示例中的模型对未插入集合的人类基因序列进行搜索,成功根据搜索结果返回了正确的基因类别,证明了 Milvus 的向量相似性搜索能够分类基因序列。
物种相似程度
通过比较不同物种之间基因序列的平均相似度,也可以看出哪些物种之间基因更为相似。示例中计算了黑猩猩与人类、狗与人类的基因序列的平均内积距离(Average Inner Product Distance: 0.97 > 0.70),验证了黑猩猩比狗在基因上更接近人类。由此可见,Milvus 能够通过计算基因序列之间的向量距离来支持科学研究。
实验表现
对示例采用的人类基因序列样本数据(共 3629 条)进行 k-mer 处理后,随机取20% 作为测试数据。使用剩下的 80% 作为训练数据,进行特征提取,训练不同的分类模型或搭建 Milvus + Mysql 搜索系统。实验采用了五种分类器分别对测试序列进行了分类,通过计算并比较准确率(正确分类的基因序列个数 / 测试序列的总个数),Milvus + Mysql 搭建的分类模型的准确率(90.77%)超过了所有的常用分类器。
应用拓展
随着基因大数据的发展和完善,向量化后的 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 的社区运营与维护,为用户提供升级推荐系统、搭建基因序列分类模型等不同场景下的解决方案。野草般顽强,解决问题时百折不挠、遇强愈强。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Ryujinx —— 用 C# 编写的实验性 Switch 模拟器
Ryujinx 是由 gdkchan 创建并用 C# 编写的开源 Nintendo Switch 模拟器。该模拟器旨在提供出色的准确性和性能、用户友好的界面和一致的构建。 截至 2021 年 5 月,Ryujinx 已在近 3,400 款游戏上进行了测试:约 3,000 款从启动菜单进入游戏,其中大约 2,100 款被认为是可玩的。可参阅此处的兼容性列表。 官方建议,要运行此模拟器,你的 PC 至少有 8GB 的 RAM;少于此数量可能会导致不可预测的行为,并可能导致崩溃或不可接受的性能。 特性: Audio 完全支持音频输出,不支持音频输入(麦克风)。我们为OpenAL使用 C# 包装器,并使用SDL2和libsoundio作为后备。 中央处理器 CPU 模拟器 ARMeilleure 模拟 ARMv8 CPU,目前支持大多数 64 位 ARMv8 和一些 ARMv7(及更早版本)指令,包括部分 32 位支持。它将 ARM 代码转换为自定义 IR,执行一些优化,然后将其转换为 x86 代码。 根据用户的偏好,有三个内存管理器选项可用,利用基于软件(较慢)和主机映射模式(更快)。默...
- 下一篇
微软发布首个官方 Windows 11 ISO 文件
微软发布了 Windows 11 的第一个官方 ISO 文件,以允许用户自主安装这个最新的操作系统。 该ISO 文件适用于前几天发布的 Windows 11 Insider Preview Build 22000.132。微软表示,当用户使用该 ISO 安装 Windows 11 时,可以感受全新的 Windows 11 设置体验(被称为 “开箱即用体验” 或简称 OOBE),并且能够给自己的 PC 命名。在完成设置后,首次运行体验应用程序 Get Started 将帮助用户在新 PC 上快速进行设置。 此外,微软还在文中列出了目前 Windows 11 预览版的问题,并表示正在对 “开始” 下的电源菜单、“重新启动通知”、“Windows 更新设置” 页面和右下方显示的 Windows 更新图标内等位置查看估计值的功能进行小幅调整,使其仅在配备 SSD 的 PC 上显示。同时介绍了一个新的时钟应用程序,其亮点是具有交点会议功能。 需要注意的是,用户需要先加入 Windows 预览体验计划才能下载 Windows 11 ISO。而正式的 Windows 11 预计将于今年 10 月或 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装Docker,最新的服务器搭配容器使用