许多人没有想到,病毒就像地球上为生存而挣扎的其他生物一样,它们会进化或变异。

只要看一看人类病毒来源的蝙蝠携带的病毒RNA序列片段即可。

AAAATCAAAGCTTGTGTTGAAGAAGTTACAACAACTCTGGAAGAAACTAAGTT

…以及人类COVID-19病毒的RNA序列的摘录…

AAAATTAAGGCTTGCATTGATGAGGTTACCACAACACTGGAAGAAACTAAGTT

…显然,冠状病毒已改变其内部结构以适应其新宿主(更精确地说,冠状病毒内部结构的约20%发生了突变),但仍保持了足够的活力,以至于它仍然可以在起源物种体内存活。

实际上,研究表明COVID-19通过反复变异来提高它们的存活率。 在抗击冠状病毒的斗争中,我们不仅需要找到消灭病毒的方法,还需要找到病毒如何突变以及如何遏制这些突变的方法。

在本文中,我将……

  • 提供RNA序列的简单解释

  • 使用K-Means创建基因组信息集群

  • 使用PCA可视化集群

    ​ …并对我们执行的每个程序进行分析来获取经验。

什么是基因组序列?

​ 如果您对RNA序列有基本的了解,请跳过此部分。

​ 与“解码”相比,基因组测序通常是分析从样品中提取的脱氧核糖核酸(DNA)的过程。 在每个正常细胞内有23对染色体,这些染色体容纳着DNA。

​ DNA的卷曲双螺旋结构使其可以展开为梯形。 该梯形由成对的化学字母(称为碱基)制成。 DNA中只有四种:腺嘌呤,胸腺嘧啶,鸟嘌呤和胞嘧啶。 腺嘌呤仅与胸腺嘧啶结合,而鸟嘌呤仅与胞嘧啶结合。 这些碱基分别用A,T,G和C表示。

​ 这些碱基构成了指示生物体如何构建蛋白质的各种代码-实际上是控制病毒行为的DNA。

DNA转换为RNA再转换为蛋白质的过程

​ 使用包括测序仪器和专用标签等专用设备,可以揭示特定片段的DNA序列。 从中获得的信息将用于进一步的分析和比较,以使研究人员能够识别基因的变化过程,并将基因与疾病和表型以及潜在的药物靶细胞关联起来。

​ 基因组序列是一串长长的“ A”,“ T”,“ G”和“ C”,代表生物体对环境的反应方式。 通过改变DNA可以造成生物的突变。 查看基因组序列是分析冠状病毒突变的有力方法。

了解数据

​ 在Kaggle上找到的数据如下所示:

​ 每行代表蝙蝠病毒的一种突变。 首先,只需花一分钟就可以欣赏大自然的不可思议性-在数周之内,冠状病毒已经产生了262种自身突变,以提高自身存活率。

​ 一些重要的列:

  • query acc.ver 代表原始病毒标识符。

  • subject acc.ver是病毒突变的标识符。

  • % identity 代表当前序列与原始病毒相同的百分比。

  • alignment length 表示序列中有多少个相同的标识符。

  • mismatches 代表突变和原始变异的数量。

  • bit score 表示衡量对齐程度的度量; 分数越高,对齐越好。

    每列的一些统计度量(可以在Python中使用data.describe()方便地调用它):

​ 查看% identity列,很有趣的是,该值最小约为77.6%。 % identity的标准差为7%。这个数值相当大,意味着存在广泛可能的突变。 bit score比较大的标准差支持这一观点-标准差大于平均值!

​ 可视化数据的一种好方法是通过关联热图。 每个单元代表一个特征与另一个特征之间的关联程度。

​ 图中可以看到许多数据彼此高度相关。 这是有道理的,因为大多数突变都是彼此不同的。 需要注意的一件事是alignment lengthbit score高度相关。

使用K-Means创建突变聚类

​ K-Means是用于聚类的算法,它是机器学习中在特征空间中查找数据点并结合成组的一种方法。 我们的K-Means的目标是找到突变簇,由此我们可以得出有关的突变性质以及如何解决突变的见解。

​ 但是,我们仍然需要选择簇数k。 尽管这就像在二维中绘制点一样简单,但在更高的维度中则无法实现(如果我们想保留最多的信息)。 像肘法(elbow method)这样选择k的方法是主观且不准确的,因此,我们将使用轮廓法(silhouette method)。

​ 轮廓法是针对k个聚类中心给出的聚类结果对数据适应程度的评分。 Python中的sklearn库使实现K-Means和轮廓法变得非常简单。

​ 似乎5个聚类中心是最合适的。 现在,我们可以确定聚类中心。 这些聚类中心是每个类别围绕的点,代表(在这种情况下)5种主要突变类型的数值评估。

注意:已对数据进行了标准化,以使它们全部缩放为相同的比例。 否则,每列将不可比较。

​ 此热图按列表示每个簇的属性。 因为这些点是按比例缩放的,所以图中标注的数值在数量上没有任何意义。 但是,可以比较每列中的标注值。 您可以从视觉上了解每个突变簇的相对属性。 如果科学家要开发疫苗,它应针对这些主要的病毒突变簇。

​ 在下一节中,我们将使用PCA可视化数据。

PCA数据可视化

​ PCA(主成分分析法)是一种降维方法。 它选择多维空间中的正交矢量来表示轴,从而保留了最多的信息(方差)。

​ 流行的Python库sklearn可以用两行代码实现PCA。 首先,我们可以检查数据的方差比。 这是从原始数据集中保留的统计信息的百分比。 在这种情况下,数据的方差比是0.9838548580740327,这已经很高了! 我们可以放心,无论我们从PCA进行的任何分析都不会使数据失真。

​ 每个新功能(主要组件)都是其他几列的线性组合。 我们可以通过热图可视化其中一列对于相对的两个其他组件之一的重要性。

​ 主要需要了解成分一具有较高分数的含义-在这种情况下,其特征具有更长的比对长度(更接近原始病毒),而成分2的主要特征具有更短的比对长度 (距离原始值更远)。 这也反映在bit score的较大差异上。

​ 显然,病毒突变有5种主要方式。 我们可以从中获得许多信息。

​ 其中四个突变位于成分一的左侧,一个突变位于右侧。 成分一的特征是高alignment length。 这意味着成分一的值越高则对齐长度越长(更接近原始病毒)。 因此,成分一的值较低时在遗传上距离原始病毒较远。 因此大多数病毒突变与原始病毒差异很大。 因此,试图制造疫苗的科学家应该意识到该病毒会产生大量与原始病毒差异很大的突变。

使用K-Means和PCA进行基因组序列分析 COVID-19就介绍到这里,欢迎各位了解

《python机器学习生物信息学》,学习更多相关知识。

结论

​ 使用K-Means和PCA,能够识别冠状病毒中的五个主要突变簇。 研发冠状病毒疫苗的科学家可以利用聚类中心的信息获得有关每个聚类特征的知识。 我们能够使用主成分分析在二维空间上可视化簇,并发现冠状病毒具有很高的突变率。 这可能是它如此致命的原因。
转载:https://imba.deephub.ai/p/231b27c06ca411ea90cd05de3860c663

生物信息学中的机器学习:使用K-Means和PCA进行基因组序列分析 COVID-19接下来如何突变?相关推荐

  1. 生物学的机器学习:使用K-Means和PCA进行基因组序列分析 COVID-19接下来如何突变?...

    作者 | Andre Ye 译者 | 孟翔杰 来源 | DeepHub IMBA 许多人没有想到,病毒就像地球上为生存而挣扎的其他生物一样,它们会进化或变异. 只要看一看人类病毒来源的蝙蝠携带的病毒R ...

  2. OpenCV官方文档 理解k - means聚类

    理解k - means聚类 目标 在这一章中,我们将了解k - means聚类的概念,它是如何工作等. 理论 我们将这个处理是常用的一个例子. t恤尺寸问题 考虑一个公司要发布一个新模型的t恤. 显然 ...

  3. 如何在Python中建立和训练K最近邻和K-Means集群ML模型

    One of machine learning's most popular applications is in solving classification problems. 机器学习最流行的应 ...

  4. K means 图片压缩

    k-means的基本原理较为清晰,这里不多赘述,本次博客主要通过基础的k means算法进行图像的压缩处理. 原理分析 在彩色图像中,每个像素的大小为3字节(RGB),可以表示的颜色总数为256 * ...

  5. 为了联盟还是为了部落 | K means

    1. 问题 人类有个很有趣的现象,一群人在一起,过一段时间就会自发的形成一个个的小团体.好像我们很擅长寻找和自己气质接近的同类.其实不只是人类,数据也有类似情况,这就是聚类(Clustering)的意 ...

  6. k均值聚类算法(K Means)及其实战案例

    算法说明 K均值聚类算法其实就是根据距离来看属性,近朱者赤近墨者黑.其中K表示要聚类的数量,就是说样本要被划分成几个类别.而均值则是因为需要求得每个类别的中心点,比如一维样本的中心点一般就是求这些样本 ...

  7. opencv画虚线_(四十四)OpenCV中的机器学习-SVM

    时间为友,记录点滴. 本来还想在特征点检测的道路上再走一走,学习一下Harr级联或者HOG什么的,但总有些概念感觉绕不过去.择日不如撞日,撞日不如今日.我们先揭开机器学习中的一个小角,看看大热的机器学 ...

  8. kmeans改进 matlab,基于距离函数的改进k―means 算法

    摘要:聚类算法在自然科学和和社会科学中都有很普遍的应用,而K-means算法是聚类算法中经典的划分方法之一.但如果数据集内相邻的簇之间离散度相差较大,或者是属性分布区间相差较大,则算法的聚类效果十分有 ...

  9. 文献记录(part89)--I-k-means-+:An iterative clustering algorithm based on an enhanced k -means

    学习笔记,仅供参考,有错必究 关键词:k均值:解决方案改进:准确的k均值:迭代改进 I-k-means-+:An iterative clustering algorithm based on an ...

  10. 单光子探测技术应用_我如何最终在光学/光子学应用程序中使用机器学习作为博士学位

    单光子探测技术应用 A few years ago, I secured a scholarship to pursue a PhD in Photonics modelling. Modelling ...

最新文章

  1. DateGridView列的输出顺序反了
  2. tcpdump + wireshark 抓包组合
  3. 团队项目-个人博客-4.20
  4. 【中间件】大数据之分布式消息队列Kafka
  5. xml文件转换成图片_如何把pdf文件转换成图片?
  6. Linux主流架构运维工作简单剖析
  7. vs编译c语言停止工作运行库mt,vc++编译时运行库选择(/MT/MTd/MD/MDd)
  8. 把流量变现赚钱的一些想法
  9. jQuery+bootstrap实现美化警告/确认/提示对话框插件
  10. Unity 之圆环算法
  11. 腾讯云点播视频播放器使用步骤 uniapp
  12. Harvard (name and date) 论文引用格式
  13. FastAPI 教程翻译 - 用户指南 26 - 安全性
  14. 单峰数组求第k大算法
  15. Unity 多机器的视频不卡帧同步
  16. matplotlib之属性组合包(cycler)
  17. Oracle日期加3天 加月 加年 上一月(MySQL获取上一月 上个月) 上一日 上一天 日期加一天
  18. 2019 11 14
  19. 中职高考计算机专业真题,中职高考计算机试题及答案
  20. 腾讯面试题:50个人至少有两个人生日相同的概率

热门文章

  1. 给妹子讲python_给妹子讲python-S01E01好用的列表
  2. matlab模式识别大作业_史上最萌最认真的机器学习/深度学习/模式识别入门指导手册(二)...
  3. 2021-02-02 安卓闪退问题
  4. python求商和余数 考虑可能出现的异常情况_python面试题
  5. 怎么在linux中运行gamess,桌面应用|在 Linux 中怎么运行 MS-DOS 游戏和程序
  6. Response.Redirect导致session丢失的解决办法
  7. RHEL6.3基本网络配置(4) 其它常用网络配置文件
  8. MySql中varchar(10)和varchar(100)的区别==以及char的利弊
  9. 关于Excel导入SQLServer的说明
  10. 重命名DC 以及 域