解密阿里云高效病原体基因检测工具

5_6_3

1.背景介绍

病原体基因检测,为各种严重感染的诊断提供了基础。病原体检测流程分成五个步骤:(1)采集病人的样本,比方说静脉血,痰液,肺泡灌洗液,或者脑脊髓液等。(2)对样本进行培养,提取样本中的核酸组织。(3)通过高通量基因测序仪,对核酸序列进行测序。高通量测序为了保证精度,会将很长的核苷酸序列,切成小的分片,分别进行测序,在读取基因序列上,一般是50pb到200bp不等。(4)高通量测序之后,需要查询相关的病原体标准序列,找到匹配的基因序列。(5)通过将这些小的片段进行分析,得到全部基因片段的组成成分(即检测结果),从而为病人的疾病确诊以及精准治疗提供有力的支持。
image.png

图1. 病原体基因检测流程

对于生物分析检测来说,通常情况下,一次病原体检测,大约会生成5亿左右的75bp的基因片段。过滤掉一些人的基因组织序列之后,还需要查询1亿左右的基因片段。通常情况下,会使用nBlast [1]工具来进行基因匹配,这部分在整个病原体检测过程中,也是非常耗时的部分,大约需要2-3个小时。阿里云AnalyticDB向量版提供了一个高效的基因检索工具,大大提升了基因分析的性能,能够在几十分钟内完成整个病原体的查询检测过程。

2.基因检索应用

2.1 基因检索功能

图1展示了病原体基因检索的界面。当前演示包含了12182个病毒的碱基序列,我们将病毒切分成150bp的小片段(总共1590804个片段),转化成向量之后,存储到AnalyticDB中。在检索框中,用户可以输入一段基因序列,到我们当前的系统中进行检索。为了方便大家使用,我们挑了新冠病毒,艾滋病毒,埃博拉病毒和中东呼吸综合症的基因序列来进行演示,用户可以拷贝相关的序列,来检测查询的性能。
image.png

图2. 核酸查询演示

图3用户输入了一段新型冠状病毒的基因序列,可以看到排到前面的序列片段就是我们要找的新冠的病毒的序列。因为当前AnalyticDB提供高效的向量索引,系统会在毫秒级的时间内,返回相关的基因片段。
image.png

图3.基因检索结果

2.2 端到端的基因分析

我们模拟了人体的基因采样,将新型冠病毒基因(塞尔维亚MT450872 [2],美国MT450873 [3])和中东呼吸症MERS基因(NC_019843.3 [10]),三株病毒混合在一起,打散成75bp的序列,当做测试集合。我们希望,通过当前病毒库的检索分析,能够识别出当前测试集合中包含新型冠状病毒和MERS病毒。当前系统通过匹配检测,我们生成图4。
image.png

图4. 基因匹配结果

可以看到经过检测,病毒库检索系统返回了三个基因组(NC_045512.2,NC_019843.3和NC_038294.1)。NC_045512.2(65%)是武汉海鲜市场的新型冠状病毒的基因;NC_019843.3(20%)是MERS病毒的基因;而NC_038294.1(13%)是beta型英国冠状病毒,经过查询这个是MERS病毒的另外一个名字 [8],也属于MERS病毒。因此,通过分析,当前混合测试集合中包含了新型冠状病毒和MERS病毒。

2.3 应用架构总体设计

阿里云基因检索系统的总体架构如图5所示,AnalyticDB负责整个应用的全部的结构化数据(比方说,基因序列的长度,基因的名称,基因的种类,以及基因的详细介绍,DNA或者RNA等)和基因序列产生的特征向量的存储和查询。在查询的时候,我们使用基因向量抽取模型,将基因转化成向量,在AnalyticDB库中进行粗排检索。在向量匹配的结果集中,我们使用经典的Needleman-Wunsch [4]算法进行精排,返回最相似的基因序列。
image.png

图5.基因检索系统框架

3.基因训练和查询模型

3.1 基因查询过程

基因模型的训练已经在上一篇文章中 [5],进行了详细的讲解。通过训练好的DNA K-Mer模型,我们可以得到每个k-mer的向量。给定一段12bp的基因序列(如图6),我们在这段基因序列中抽取出5个8-mers。我们将这5个8-mers转成对应的向量,求和归一化之后,就是这段12bp的基因序列的最终的向量。当然,为了提升精度,我们也可以使用doc2vec [6]等学习模型来对整段基因片段进行转化。
image.png

图6.DNA序列转向量

3.2 基因精度分析

我们训练了两个模型,全部病毒模型和21个病原体细菌模型(痤疮丙酸杆菌,金黄色葡萄球菌,表皮葡萄球菌,溶血葡萄球菌,大肠埃希氏菌,鲍曼不动杆菌,结核分枝杆菌,肺炎链球菌,肺炎克雷伯氏菌,流感嗜血杆菌,副流感嗜血杆菌,嗜麦芽窄食单胞菌,铜绿假单胞菌,屎肠球菌,纹带棒状杆菌,人疱疹病毒4型(EB病毒),细环病毒,人腺病毒B组,黄曲霉,白色假丝酵母,耶氏肺孢子菌)。我们将一个基因,每隔150个bp,做一下切分。然后将150bp的小的分段,转化成向量存在库里面,进行检索。因此病毒数据集包括12182个病毒, 1590804个分段;21个细菌共275个基因,1521807个分段。

实验1(见表1)系统随机的在当前的基因库里面,取出75bp的小的片段。我们知道这75bp的基因片段是在哪个基因的哪个片段中提取的。我们将这75bp的基因段到库里面进行检索,查找返回前N个结果集中,查看是否包含这75bp的基因段对应的基因片段。Top-n的精度(Precision(n)),用公式(1)进行计算。

image.png
其中,n表示查询返回的列表的长度。u表示查询的次数,在实验中u取的是1000次。53123.png表示在第i次查询中,序列si是否出现在Top-n的列表中,出现为1,不出现为0。如果n越小,精度越高,说明我们的方法在实际中非常有效。我们可以看到,针对两个模型来说,top20的精度,都在99%以上。精度在0.99以上,对于实际检验基因片段包含物种基因是足够了的。

表1.基因查询精度检测

数据集top 1top 2top 3top 4top 5top 10top 20
病毒0.8660.9650.9830.9860.990.9920.994
21个细菌0.9010.9750.9870.9870.9930.9941.0

实验2(见表2)系统随机的在当前的基因库里面,取出75bp的小的片段。我们将这75bp的基因段进行了2%的随机的突变(自然界中的基因突变的概率会更低,比方说人的30亿个碱基,新生儿会有30个基因发生突变。病毒RNA的突变概率会高一些,一般也都小于1%),然后到库里面进行检索,查找返回前N个结果集中,查看是否包含这75bp的基因段对应的基因片段。基因突变之后,虽然查询的精度有所下降,但是top20的精度也都达到了0.99。

 

表2.基因突变查询精度检测

数据集top1top 2top3top4top5top6top7
病毒0.8460.9540.9600.9760.980.9820.99
21个细菌0.8840.9610.9680.9730.9730.9891.0

实验3(见表3)对基因检索的速度进行了比较。我们下载了病毒序列,菌类的基因序列,以及部分植物基因序列 [7],总共9.7G。我们分别将相关数据,导入到AnalyticDB数据库中和Blast库中。我们跑了100次不同的查询,对实验结果取了平均。Blast需要3.22秒才能返回结果,我们算法精度在top30的情况下,保证精度在0.95的准确性下,测试端到端的查询(包括查询基因转向量,向量粗排和Needleman-Wunsch算法的精排)只需要0.257s(提升了12.5倍)。

 

表3.检索时间


表格3.jpg

4.结尾

详细的基因模型以及相关系统信息请加入我们的钉钉群,欢迎大家讨论和使用。
image.png

[1] blast+ https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/
[2] https://www.ncbi.nlm.nih.gov/nuccore/MT450872
[3] https://www.ncbi.nlm.nih.gov/nuccore/MT450873
[4] Needleman, Saul B. & Wunsch, Christian D. (1970). "A general method applicable to the search for similarities in the amino acid sequence of two proteins". Journal of Molecular Biology. 48 (3): 443–53. doi:10.1016/0022-2836(70)90057-4. PMID 5420325.
[5]汉朝. "阿里云提供高效基因序列检索功能,助力冠状病毒序列快速分析", https://developer.aliyun.com/article/753097?utm_content=g_1000111278

[6] Mikolov Tomas; et al. (2013). "Efficient Estimation of Word Representations in Vector Space". arXiv:1301.3781
[7] 基因数据集 https://www.ncbi.nlm.nih.gov/genome/viruses/variation/help/flu-help-center/ftp/
[8] de Groot RJ Baker SC Baric RS et al. Middle East respiratory syndrome coronavirus (MERS-CoV): announcement of the Coronavirus Study Group. J Virol. 2013; 87: 7790-7792
[9] https://www.ncbi.nlm.nih.gov/nuccore/NC_045512.2
[10] https://www.ncbi.nlm.nih.gov/nuccore/NC_019843.3
[11] https://www.ncbi.nlm.nih.gov/nuccore/NC_038294.1
图片.gif
往期文献:

[1] 戴口罩也能刷门禁?疫情下AnalyticDB亮出社区管理的宝藏神器!https://developer.aliyun.com/article/745160
[2] 阿里云提供高效基因序列检索功能,助力冠状病毒序列快速分析
https://developer.aliyun.com/article/753097

原文链接
本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

企业使用云计算低效益怎么办?区块链或成良药

作者 | Ged Alexander翻译 | 火火酱,责编 | 晋兆雨出品 | CSDN云计算头图 | 付费下载于视觉中国在云资源浪费现象激增的大环境中,企业如何才能寻得一线生机?借助云计算服务,企业和开发人员能够通过互联网远程组织资源并运行工作负载。全球范围…

基于X-Engine引擎的实时历史数据库解决方案揭秘

实时历史库需求背景 在当今的数字化时代,随着业务的迅速发展,每天产生的数据量会是一个惊人的数量,数据库存储的成本将会越来越大,通常的做法是对历史数据做归档,即将长期不使用的数据迁移至以文件形式存储的廉价存储…

seata 整合 nacos(windows/linux环境)

文章目录一、下载安装nacos-server二、 seata-server下载配置2.1. 下载seata-server-1.4.2.zip2.2. 修改配置2.3. 创建命名空间2.4. 配置registry.conf2.5. 创建数据库2.6. 初始化sql脚本2.7. 配置config.txt2.8. 创建nacos-config.sh2.9. 初始化脚本数据到nacos2.10. 数据验证…

加密相关(对称加密、非对称加密、信息摘要、数字签名、CA数字证书)

1.对称加密: 说明:加密的密钥和解密的密钥相同;效率快;适合加密大信息量 常见算法:DES、3DES、AES、RC-5 块加密: 流加密:数据量大时效率高 2.非对称加密: 说明:加密的…

ClickHouse内核分析-MergeTree的存储结构和查询加速

注:以下分析基于开源 v19.15.2.2-stable 版本进行 引言 ClickHouse是最近比较火的一款开源列式存储分析型数据库,它最核心的特点就是极致存储压缩率和查询性能,本人最近正在学习ClickHouse这款产品中。从我个人的视角来看存储是决定一款数据…

“智汇光大 E启未来” 中国光大集团ESBU协同核心系统1.0正式发布

12月22日,“中国光大集团ESBU协同核心系统1.0”正式发布,标志着光大集团战略和光大数字化发展取得又一重大进展。光大集团党委书记、董事长李晓鹏现场发布“E-SBU协同核心系统”及“光大云生活”超级APP。集团党委副书记、副董事长、总经理吴利军在发布会…

云原生之路:容器技术落地最佳实践

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 阿里妹导读:随着容器技术的快速发展和广泛应用,毫无疑问云原生技术是未来发展的必然趋势。作为国内最…

SpringBoot微服务项目构建war包 部署排除指定jar

文章目录一、构建war包部署SpringBoot项目二、构建war包2.1. 适用范围2.2. 构建war包三、部署排除指定jar3.1. 下载排除插件3.2. 搜索部署排除指定jar3.3. 排除部署指定jar3.4. 验证3.5. 核心理念一、构建war包部署SpringBoot项目 如何把springboot项目构架war包部署到tomcat上…

软件设计师 - 算法思想

文章目录递归和迭代软考常见算法思想分治法回溯法贪心法动态规划法递归和迭代 递归:函数不断的调用自己,存在终止条件,分为递推和回归两部分; 迭代:不断用变量的旧值递推新值的过程,当前保存的结果作为下一…

毕业两年升主管,自沉稳而后顾人 对话阿里云MVP陈琦

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 1993年出生,毕业2年,团队主管,这是我对陈琦产生好奇的原因。但随着他优…

极道创始人吴江:企业级数据系统,初创一样可以做出好产品

随着云、大数据炒作热度褪去,对数据的存储计算技术正在回归理性。在存储这条传统toB市场的赛道上,创业远比toC市场复杂艰难许多。近日,一家以分布式文件存储创业,集合了存储计算与数据分析的初创公司——极道,表示从20…

2020年阿里云年中大促【福利】【选品】全攻略

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 2020年阿里云年中大促活动于6月1日正式上线啦!活动时间为:2020年6月1日至2020年6月30日主会场链接&am…

使用Istio进行多集群部署管理(2):单控制平面Gateway连接拓扑

单控制平面拓扑下,多个 Kubernetes 集群共同使用在其中一个集群上运行的单个 Istio 控制平面。控制平面的 Pilot 管理本地和远程集群上的服务,并为所有集群配置 Envoy Sidecar 代理。 集群感知的服务路由 Istio 1.1 中引入了集群感知的服务路由能力&am…

智能制造的灾备问题如何解决?

提起压力、温度校准行业会让大部分非专业人士感到陌生。但实际上,在我们的日常生活中,很多设备都是需要经过压力检测、温度检测、过程信号检测合格之后才正式投放市场使用的, 北京康斯特仪表科技股份有限公司(以下简称康斯特&…

疫情下开源数据库逆势增长,新基建下国产数据库迎机遇

2020年5月DB-Engines 数据库流行度排行大家都看了吗? 虽然 Top 10 与上月没有任何变化,但仔细观察本月的排行榜,Oracle 较上月几乎持平,仅微涨 0.02 分;相较而言,MySQL 增长明显,达到 14.29 分…

寻找长沙“科技之星”,CSDN星城大巡礼

2020年,长沙市委主要领导发出“软件产业再出发”的号召,并颁布了软件三年行动计划。今年5月,CSDN作为专业的IT社区,与长沙高新区签约,将全国总部落户长沙,这一战略决策,让CSDN与长沙的联结进一步…

分布式任务调度平台一站式讲解

文章目录一、传统的定时任务1. 传统的定时任务存在那些缺点2. 分布式任务调度3. 定时任务集群幂等性问题二、传统定时任务的实现方案2.1. 多线程2.2. TimeTask2.3. 线程池2.4. SpringBoot注解形式2.5. 基于Quartz三、常⻅分布式定时任务3.1. Quartz3.2. TBSchedule3.3. Elastic…

数据库系统 - 范式

第一范式 关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可分割的数据项; 第二范式 当且仅当R满足第一范式,且主键为多个属性值组成,且每个非主属性都完全依赖主键; 第三范式 当且仅当R满足…

全球CT影像20秒诊断,阿里云为新冠AI辅助诊断系统加速

新冠病毒全球爆发 2020年注定是不平凡的一年,新型冠状病毒肆虐全球,对于每个人来说都是一场灾难。 根据丁香园统计的数据,截止到2020年5月29日,全球新冠(COVID-19)累计确诊病例5,593,631人,累计…

麒麟信安操作系统:挖掘场景,与云俱进 ——携手openEuler赋能关键行业应用

12月24日,由中国电子技术标准化研究院、中国软件行业协会、绿色计算产业联盟主办,华为、飞腾、麒麟信安等操作系统厂商协办的操作系统产业峰会在北京成功举行。湖南麒麟信安科技股份有限公司作为华为重点邀请的四家openEuler商业发行版企业代表&#xff…