Biopython聚类分析

Biopython聚类分析详细操作教程

聚类分析会将一组对象归为同一组。这个概念主要用于数据挖掘,统计数据分析,机器学习,模式识别,图像分析,生物信息学等。可以通过各种算法来了解群集如何广泛用于不同的分析中。

根据生物信息学,聚类分析主要用于基因表达数据分析中,以寻找具有相似基因表达的基因组。在本章中,我们将检查Biopython中的重要算法,以了解在真实数据集上进行聚类的基础知识。Biopython使用Bio.Cluster模块来实现所有算法。它支持以下算法-

层次聚类

K-聚类

自组织映射

主成分分析

下面对以上算法进行简要介绍。

1. 层次聚类

层次聚类用于通过距离度量将每个节点链接到其最近的邻居,并创建一个聚类。Bio.Cluster节点具有三个属性:left, right 和 distance。下面创建一个简单的集群,如下所示:

# Filename : example.py

# Copyright : 2020 By Lidihuo

# Author by : www.lidihuo.com

# Date : 2020-08-25

>>> fromBio.Cluster importNode

>>> n = Node(1,10)

>>> n.left = 11

>>> n.right = 0

>>> n.distance = 1

>>> print(n)

(11, 0): 1

如果要构建基于树的集群,请使用以下命令 -

# Filename : example.py

# Copyright : 2020 By Lidihuo

# Author by : www.lidihuo.com

# Date : 2020-08-25

>>> n1 = [Node(1, 2, 0.2), Node(0, -1, 0.5)] >>> n1_tree = Tree(n1)

>>> print(n1_tree)

(1, 2): 0.2

(0, -1): 0.5

>>> print(n1_tree[0])

(1, 2): 0.2

下面将使用Bio.Cluster模块执行分层聚类。假设距离是在数组中定义的。如下代码 -

# Filename : example.py

# Copyright : 2020 By Lidihuo

# Author by : www.lidihuo.com

# Date : 2020-08-25

>>> importnumpy asnp

>>> distance = array([[1,2,3],[4,5,6],[3,5,7]])

现在,在树簇中添加距离数组。

# Filename : example.py

# Copyright : 2020 By Lidihuo

# Author by : www.lidihuo.com

# Date : 2020-08-25

>>> fromBio.Cluster importtreecluster

>>> cluster = treecluster(distance)

>>> print(cluster)

(2, 1): 0.666667

(-1, 0): 9.66667

上面的函数返回一个树集群对象。该对象包含节点,其中项目数聚集为行或列。

2. K-聚类

它是一种划分算法,分为k-均值,中位数和medoids聚类。下面我们来简要地了解每个聚类。

K均值聚类这种方法在数据挖掘中很流行。该算法的目标是找到数据中的组,组的数量由变量K表示。这个算法基于提供的功能迭代地将每个数据点分配给K个组之一。数据点基于特征相似性进行聚类。

# Filename : example.py

# Copyright : 2020 By Lidihuo

# Author by : www.lidihuo.com

# Date : 2020-08-25

>>> fromBio.Cluster importkcluster

>>> fromnumpy importarray

>>> data = array([[1, 2], [3, 4], [5, 6]])

>>> clusterid, error,found = kcluster(data)

>>> print(clusterid) [0 0 1]

>>> print(found)

1

K中值聚类

这是另一种聚类算法,它计算每个聚类的平均值以确定其质心。

K-medoids聚类

该方法基于给定的一组项目,使用距离矩阵和用户传递的簇数。考虑如下定义的距离矩阵 -

# Filename : example.py

# Copyright : 2020 By Lidihuo

# Author by : www.lidihuo.com

# Date : 2020-08-25

>>> distance = array([[1,2,3],[4,5,6],[3,5,7]])

可以使用以下命令计算k-medoids聚类 -

# Filename : example.py

# Copyright : 2020 By Lidihuo

# Author by : www.lidihuo.com

# Date : 2020-08-25

>>> fromBio.Cluster importkmedoids

>>> clusterid, error, found = kmedoids(distance)

让我们看看下面一个例子。

kcluster函数将数据矩阵作为输入,而不是Seq实例。需要将序列转换为矩阵,并将其提供给kcluster函数。将数据转换为仅包含数字元素的矩阵的一种方法是使用numpy.fromstring函数。它基本上将序列中的每个字母转换为其对应的ASCII。这将创建一个二维序列的编码序列,kcluster函数将其识别并用于对序列进行聚类。

# Filename : example.py

# Copyright : 2020 By Lidihuo

# Author by : www.lidihuo.com

# Date : 2020-08-25

>>> fromBio.Cluster importkcluster

>>> importnumpy asnp

>>> sequence = [ 'AGCT','CGTA','AAGT','TCCG']

>>> matrix = np.asarray([np.fromstring(s, dtype=np.uint8) fors insequence])

>>> clusterid,error,found = kcluster(matrix)

>>> print(clusterid) [1 0 0 1]

3. 自组织映射

这种方法是一种人工神经网络。它由Kohonen开发,通常称为Kohonen映射。它根据矩形拓扑将项目组织到群集中,让我们使用相同的数组距离创建一个简单的集群,如下所示:

# Filename : example.py

# Copyright : 2020 By Lidihuo

# Author by : www.lidihuo.com

# Date : 2020-08-25

>>> fromBio.Cluster importsomcluster

>>> fromnumpy importarray

>>> data = array([[1, 2], [3, 4], [5, 6]])

>>> clusterid,map = somcluster(data)

>>> print(map)

[[[-1.36032469 0.38667395]]

[[-0.41170578 1.35295911]]]

>>> print(clusterid)

[[1 0]

[1 0]

[1 0]]

在这里,clusterid是一个具有两列的数组,其中行数等于被集群的项目数,而data是一个具有行或列维的数组。

4. 主成分分析

主成分分析对于可视化高维数据很有用。它是一种使用线性代数和统计数据的简单矩阵运算来计算原始数据到相同数量或更少维的投影的方法。主成分分析返回元组列平均值,坐标,成分和特征值。下面我们来通过一段代码学习这个概念 -

# Filename : example.py

# Copyright : 2020 By Lidihuo

# Author by : www.lidihuo.com

# Date : 2020-08-25

>>> fromnumpy importarray

>>> fromnumpy importmean

>>> fromnumpy importcov

>>> fromnumpy.linalg importeig

# define a matrix >>> A = array([[1, 2], [3, 4], [5, 6]])

>>> print(A)

[[1 2]

[3 4]

[5 6]]

# calculate the mean of each column >>> M = mean(A.T, axis= 1)

>>> print(M)

[ 3. 4.]

# center columns by subtracting column means >>> C = A - M

>>> print(C)

[[-2. -2.]

[ 0. 0.]

[ 2. 2.]]

# calculate covariance matrix of centered matrix >>> V = cov(C.T)

>>> print(V)

[[ 4. 4.]

[ 4. 4.]]

# eigendecomposition of covariance matrix >>> values, vectors = eig(V)

>>> print(vectors)

[[ 0.70710678 -0.70710678]

[ 0.70710678 0.70710678]]

>>> print(values)

[ 8. 0.]

将相同的矩形矩阵数据应用于Bio.Cluster模块,如下所示:

# Filename : example.py

# Copyright : 2020 By Lidihuo

# Author by : www.lidihuo.com

# Date : 2020-08-25

>>> fromBio.Cluster importpca

>>> fromnumpy importarray

>>> data = array([[1, 2], [3, 4], [5, 6]])

>>> columnmean, coordinates, components, eigenvalues = pca(data)

>>> print(columnmean)

[ 3. 4.]

>>> print(coordinates)

[[-2.82842712 0. ]

[ 0. 0. ]

[ 2.82842712 0. ]]

>>> print(components)

[[ 0.70710678 0.70710678]

[ 0.70710678 -0.70710678]]

>>> print(eigenvalues)

[ 4. 0.]

python聚类分析超市_Biopython聚类分析相关推荐

  1. 基于Python的超市管理系统毕业设计源码111042

    目  录 摘要 1 绪论 1.1研究背景 1.2研究现状 1.3系统开发技术的特色 1.4论文结构与章节安排 2基于Python的 超市管理系统 系统分析 2.1 可行性分析 2.2 系统流程分析 2 ...

  2. Python项目实战:Python版超市管理系统源代码

    Python版超市管理系统可实现下单商品,修改商品数量,删除商品,结算商品. 程序使用元组代表商品,元组的多个元素分别代表商品条码,商品名称,商品单价: 使用dict来表示系统当前仓库中的所有商品,d ...

  3. Python版超市管理系统源代码,基于django+mysql

    Python版超市管理系统源代码,基于django+mysql 安装步骤 1.在mysql中创建名为demo_django_supermarket的数据库,修改config/setting.py中数据 ...

  4. python导入数据聚类分析实例_聚类分析实战解析与总结 - 数据分析

    聚类分析是没有给定划分类别的情况下,根据样本相似度进行样本分组的一种方法,是一种非监督的学习算法.聚类的输入是一组未被标记的样本,聚类根据数据自身的距离或相似度划分为若干组,划分的原则是组内距离最小化 ...

  5. python/matlab进行模糊聚类分析

    问题 根据下面表格中的数据,用Matlab(或Python)编程进行数据标准化处理: 根据标准化处理后的数据,用Matlab(或Python)编程,建立模糊相似矩阵,并编程求出其传递闭包矩阵: 根据模 ...

  6. python层次聚类分析_SPSS聚类分析:系统聚类分析

    一.概念:(分析-分类-系统聚类) 系统聚类法常称为层次聚类法.分层聚类法,也是聚类分析中使用广泛的一种方法.它有两种类型,一是对研究对象本身进 行分类,称为Q型聚类:另一是对研究对象的观察指标进行分 ...

  7. python实现学生成绩聚类分析_python 聚类分析

    scipy.cluster是scipy下的一个做聚类的package, 共包含了两类聚类方法: 1. 矢量量化(scipy.cluster.vq):支持vector quantization 和 k- ...

  8. python聚类分析案例_python 聚类分析实战案例:K-means算法(原理源码)

    K-means算法: 关于步骤:参考之前的博客 关于代码与数据:暂时整理代码如下:后期会附上github地址,上传原始数据与代码完整版, 各种聚类算法的对比:参考连接 Kmeans算法的缺陷 1.聚类 ...

  9. 用python做简单的聚类分析案例_Python聚类算法之DBSACN实例分析

    本文实例讲述了Python聚类算法之DBSACN.分享给大家供大家参考,具体如下: DBSCAN:是一种简单的,基于密度的聚类算法.本次实现中,DBSCAN使用了基于中心的方法.在基于中心的方法中,每 ...

  10. python实现学生成绩聚类分析_聚类分析Python实现

    1.数据提取 def loadData(filePath): myData=[] file=open(filePath) for line in file.readlines()[1:]: oldLi ...

最新文章

  1. 实例代码分享Python实现Linux监控
  2. 服务器比普通电脑响应速度快吗,云服务器比普通的快吗
  3. NFV业务技术说明—Vecloud微云
  4. ffmpeg源码分析四:transcode_step函数 (转4)
  5. 响铃:Don't be evil?Google别闹了
  6. 第二周周四DailyReporting——PM(李忠)
  7. angularjs 结构的两种写法(2)
  8. Understanding glibc malloc - ptmalloc
  9. MySQL 5.7 自带的四个数据库 介绍
  10. 表格超出_?那些年Word表格你肯定踩过的坑
  11. 使用 docker 来安装 oracle 11c
  12. python xlwt_python的xlwt模块
  13. 如何学习plc编程?(核心秘诀分享)
  14. IplImage详解
  15. c语言中e什么作用是什么,c语言中%e是什么意思
  16. 【绝知此事要躬行】线性表之链表OJ(上)
  17. 使用IMU与轮速计进行单线激光雷达的运动畸变校正
  18. BuuCTF_crypto(2021.10.8新-->旧)
  19. 01背包问题深度理解
  20. 第一章 关于交易的思考 | 期权, 皇冠上的明珠?

热门文章

  1. caxa自动保存的文件在哪里_怎样删除CAXA的临时文件
  2. GB50174《电子信息系统机房设计规范》福州再掀培训热潮
  3. 锐捷交换机虚拟化配置
  4. python爬取糗百第一页的笑话
  5. c4d怎么导入图片描图建模,c4d怎么导入图片
  6. 远程桌面工具TeamViewer模块之顶部菜单
  7. php sns 源码,ThinkSNS v4
  8. DOS命令大全:MS-DOS命令详解
  9. python 打包过程
  10. 惠普星14 指纹识别功能安装