Bio.Cluster 包
模块内容
聚类分析。
Bio.Cluster 提供了常用的聚类算法,并且专为基因表达数据分析而设计。但是,此模块也可以用于其他类型数据的聚类分析。
Bio.Cluster 和底层的 C 聚类库在 M. de Hoon 等人 (2004) 的论文中有所描述 https://doi.org/10.1093/bioinformatics/bth078
- class Bio.Cluster.Node
基类:
Node
一个 Node 对象描述了层次聚类树中的单个节点。整数属性 'left' 和 'right' 表示组成该节点的两个成员;浮点属性 'distance' 包含该节点的两个成员之间的距离。
- class Bio.Cluster.Tree
基类:
Tree
层次聚类树。
一个 Tree 由 Nodes 组成。
- sort(order=None)
对层次聚类树进行排序。
通过交换节点的左子节点和右子节点来对层次聚类树进行排序,以便树中从左到右的元素倾向于具有递增的顺序值。
返回元素在层次聚类树中从左到右的顺序的索引,使得索引为 indices[i] 的元素在谱系图中出现在位置 i。
- cut(nclusters=None)
通过切割层次聚类树来创建聚类。
将层次聚类结果 mytree 中的元素划分为聚类,并返回一个数组,其中包含每个元素所分配的聚类编号。
- 关键字参数
nclusters: 期望的聚类数量。
- Bio.Cluster.kcluster(data, nclusters=2, mask=None, weight=None, transpose=False, npass=1, method='a', dist='e', initialid=None)
执行 k-means 聚类。
此函数对 data 中的值执行 k-means 聚类,并返回聚类分配、最佳 k-means 聚类解决方案的集群内距离总和以及找到最佳解决方案的次数。
- 关键字参数
data: 包含数据值的 nrows x ncolumns 数组。
nclusters: 聚类数量(k-means 中的 'k')。
mask: nrows x ncolumns 整数数组,显示哪些数据丢失。如果 mask[i,j]==0,则 data[i,j] 丢失。
weight: 计算距离时使用的权重。
transpose: - 如果为 False: 聚类行;- 如果为 True: 聚类列。
npass: k-means 聚类算法执行的次数,每次都使用不同的(随机)初始条件。
method: 指定如何找到聚类中心:- method == 'a': 算术平均值;- method == 'm': 中位数。
dist: 指定要使用的距离函数:- dist == 'e': 欧几里得距离;- dist == 'b': 城市街区距离;- dist == 'c': 皮尔逊相关系数;- dist == 'a': 相关系数的绝对值;- dist == 'u': 未中心化相关系数;- dist == 'x': 未中心化相关系数的绝对值;- dist == 's': 斯皮尔曼秩相关系数;- dist == 'k': 肯德尔τ。
initialid: 算法应该从哪个初始聚类开始。如果 initialid 为 None,则该例程将执行 EM 算法的 npass 次重复,每次都从不同的随机初始聚类开始。如果提供了 initialid,则该例程将只执行一次 EM 算法,从给定的初始聚类开始,并且不随机化将项目分配给聚类的顺序(即使用数据矩阵中相同的顺序)。在这种情况下,k-means 算法是完全确定的。
- 返回值
clusterid: 包含在 npass 次运行中找到的最佳 k-means 聚类解决方案中每个项目分配到的聚类索引的数组;
error: 返回的 k-means 聚类解决方案的集群内距离总和;
nfound: 找到此解决方案的次数。
- Bio.Cluster.kmedoids(distance, nclusters=2, npass=1, initialid=None)
执行 k-medoids 聚类。
此函数执行 k-medoids 聚类,并返回聚类分配、最佳 k-medoids 聚类解决方案的集群内距离总和以及找到最佳解决方案的次数。
- 关键字参数
distance: 项目之间的距离矩阵。可以通过三种方式传递距离矩阵:1. 2D NumPy 数组(其中只访问数组的左下半部分);2. 包含连续距离的 1D NumPy 数组;3. 包含距离矩阵的左下半部分的行的列表。
示例:
>>> from numpy import array >>> # option 1: >>> distance = array([[0.0, 1.1, 2.3], ... [1.1, 0.0, 4.5], ... [2.3, 4.5, 0.0]]) >>> # option 2: >>> distance = array([1.1, 2.3, 4.5]) >>> # option 3: >>> distance = [array([]), ... array([1.1]), ... array([2.3, 4.5])]
这三个对应于相同的距离矩阵。
nclusters: 聚类数量(k-medoids 中的 'k')
npass: k-medoids 聚类算法执行的次数,每次都使用不同的(随机)初始条件。
initialid: 算法应该从哪个初始聚类开始。如果未提供 initialid,则该例程将执行 EM 算法的 npass 次重复,每次都从不同的随机初始聚类开始。如果提供了 initialid,则该例程将只执行一次 EM 算法,从 initialid 指定的初始聚类开始,并且不随机化将项目分配给聚类的顺序(即使用数据矩阵中相同的顺序)。在这种情况下,k-medoids 算法是完全确定的。
- 返回值
clusterid: 包含在 npass 次运行中找到的最佳 k-medoids 聚类解决方案中每个项目分配到的聚类索引的数组;请注意,聚类的索引是作为该聚类的中心点的项目的索引;
error: 返回的 k-medoids 聚类解决方案的集群内距离总和;
nfound: 找到此解决方案的次数。
- Bio.Cluster.treecluster(data, mask=None, weight=None, transpose=False, method='m', dist='e', distancematrix=None)
执行层次聚类,并返回一个 Tree 对象。
此函数实现了成对的单链接、全链接、质心和平均链接层次聚类方法。
- 关键字参数
data: 包含数据值的 nrows x ncolumns 数组。
mask: nrows x ncolumns 整数数组,显示哪些数据丢失。如果 mask[i][j]==0,则 data[i][j] 丢失。
weight: 用于计算距离时的权重。
transpose: - 如果为 False,则对行进行聚类; - 如果为 True,则对列进行聚类。
dist: 指定要使用的距离函数: - dist == ‘e’: 欧氏距离 - dist == ‘b’: 城市街区距离 - dist == ‘c’: 皮尔逊相关系数 - dist == ‘a’: 相关系数的绝对值 - dist == ‘u’: 未中心化的相关系数 - dist == ‘x’: 未中心化的相关系数的绝对值 - dist == ‘s’: 斯皮尔曼等级相关系数 - dist == ‘k’: 肯德尔秩相关系数
method: 指定使用哪种链接方法: - method == ‘s’: 单个成对链接 - method == ‘m’: 完全(最大)成对链接(默认) - method == ‘c’: 重心链接 - method == ‘a’: 平均成对链接
distancematrix: 项之间的距离矩阵。您可以通过三种方式传递距离矩阵:1. 2D NumPy 数组(仅访问数组的左下部分);2. 包含连续距离的 1D NumPy 数组;3. 包含距离矩阵的左下三角部分的行的列表。
示例:
>>> from numpy import array >>> # option 1: >>> distance = array([[0.0, 1.1, 2.3], ... [1.1, 0.0, 4.5], ... [2.3, 4.5, 0.0]]) >>> # option 2: >>> distance = array([1.1, 2.3, 4.5]) >>> # option 3: >>> distance = [array([]), ... array([1.1]), ... array([2.3, 4.5])]
这三个对应于相同的距离矩阵。
请注意:由于 treecluster 例程可能会在聚类算法的一部分中对距离矩阵中的值进行洗牌,因此如果以后需要该数组,请务必在调用 treecluster 之前将其保存在不同的变量中。
data 或 distancematrix 应该为 None。如果 distancematrix 为 None,则分层聚类解决方案将根据参数 data 中存储的值进行计算。如果 data 为 None,则分层聚类解决方案将根据距离矩阵进行计算。仅能从数据值而不是从距离矩阵执行成对重心链接聚类。可以从数据值或距离矩阵计算成对单个、最大和平均链接聚类。
返回值:treecluster 返回一个描述分层聚类结果的 Tree 对象。有关更多信息,请参见 Tree 类的描述。
- Bio.Cluster.somcluster(data, mask=None, weight=None, transpose=False, nxgrid=2, nygrid=1, inittau=0.02, niter=1, dist='e')
计算自组织映射。
此函数在矩形网格上实现自组织映射。
- 关键字参数
data: 包含数据值的 nrows x ncolumns 数组;
mask: nrows x ncolumns 整数数组,显示哪些数据丢失。如果 mask[i][j]==0,则 data[i][j] 丢失。
weight: 计算距离时使用的权重。
transpose: - 如果为 False: 聚类行;- 如果为 True: 聚类列。
nxgrid: 矩形 SOM 映射的水平尺寸
nygrid: 矩形 SOM 映射的垂直尺寸
inittau: tau(邻域函数)的初始值
niter: 迭代次数
dist: 指定要使用的距离函数: - dist == ‘e’: 欧氏距离 - dist == ‘b’: 城市街区距离 - dist == ‘c’: 皮尔逊相关系数 - dist == ‘a’: 相关系数的绝对值 - dist == ‘u’: 未中心化的相关系数 - dist == ‘x’: 未中心化的相关系数的绝对值 - dist == ‘s’: 斯皮尔曼等级相关系数 - dist == ‘k’: 肯德尔秩相关系数
返回值
clusterid: 包含两列的数组,行数等于正在聚类的项。数组中的每一行都包含矩形 SOM 网格中单元格的 x 和 y 坐标,该单元格将该项分配到其中。
celldata: 如果正在聚类行,则尺寸为 [nxgrid, nygrid, 列数] 的数组,或者如果正在聚类列,则尺寸为 [nxgrid, nygrid, 行数) 的数组。此数组的每个元素 [ix, iy] 都是一个 1D 向量,包含 SOM 网格单元格(坐标为 [ix, iy])中簇的质心的数据值。
- Bio.Cluster.clusterdistance(data, mask=None, weight=None, index1=None, index2=None, method='a', dist='e', transpose=False)
计算并返回两个簇之间的距离。
- 关键字参数
data: 包含数据值的 nrows x ncolumns 数组。
mask: nrows x ncolumns 整数数组,显示哪些数据缺失。如果 mask[i, j]==0,则 data[i, j] 缺失。
weight: 计算距离时使用的权重。
index1: 1D 数组,标识哪些项属于第一个簇。如果簇只包含一项,则 index1 也可以写成单个整数。
index2: 1D 数组,标识哪些项属于第二个簇。如果簇只包含一项,则 index2 也可以写成单个整数。
dist: 指定要使用的距离函数: - dist == ‘e’: 欧氏距离 - dist == ‘b’: 城市街区距离 - dist == ‘c’: 皮尔逊相关系数 - dist == ‘a’: 相关系数的绝对值 - dist == ‘u’: 未中心化的相关系数 - dist == ‘x’: 未中心化的相关系数的绝对值 - dist == ‘s’: 斯皮尔曼等级相关系数 - dist == ‘k’: 肯德尔秩相关系数
method: 指定如何定义两个簇之间的距离: - method == ‘a’: 两个簇的算术平均值之间的距离 - method == ‘m’: 两个簇的中位数之间的距离 - method == ‘s’: 两个簇成员之间的最小成对距离 - method == ‘x’: 两个簇成员之间的最大成对距离 - method == ‘v’: 两个簇成员之间的成对距离的平均值
transpose: - 如果为 False:考虑行的簇; - 如果为 True:考虑列的簇。
- Bio.Cluster.clustercentroids(data, mask=None, clusterid=None, method='a', transpose=False)
计算并返回每个簇的质心。
clustercentroids 例程计算簇质心,给出每个项属于哪个簇。质心被定义为每个维度上所有项的算术平均值或中位数。
- 关键字参数
data: 包含数据值的 nrows x ncolumns 数组。
mask: nrows x ncolumns 整数数组,显示哪些数据缺失。如果 mask[i, j]==0,则 data[i, j] 缺失。
clusterid: 包含每个项的簇号的数组。簇号应为非负数。
method: 指定质心是根据每个维度的算术平均值(method == ‘a’,默认)还是中位数(method == ‘m’)计算的。
- transpose: 如果为 False,则每一行都包含一项的数据;
如果为 True,则每一列都包含一项的数据。
- 返回值
cdata: 包含簇质心的 2D 数组。如果 transpose 为 False,则 cdata 的尺寸为 nclusters x ncolumns。如果 transpose 为 True,则 cdata 的尺寸为 nrows x nclusters。
cmask: 描述 cdata 中哪些项(如果有)缺失的 2D 整数数组。
- Bio.Cluster.distancematrix(data, mask=None, weight=None, transpose=False, dist='e')
从数据中计算并返回距离矩阵。
此函数返回从数据中计算的距离矩阵。
- 关键字参数
data: 包含数据值的 nrows x ncolumns 数组。
mask: nrows x ncolumns 整数数组,显示哪些数据缺失。如果 mask[i, j]==0,则 data[i, j] 缺失。
weight: 用于计算距离时的权重。
- transpose: 如果为 False:计算行之间的距离;
如果为 True:计算列之间的距离。
dist: 指定要使用的距离函数: - dist == ‘e’: 欧氏距离 - dist == ‘b’: 城市街区距离 - dist == ‘c’: 皮尔逊相关系数 - dist == ‘a’: 相关系数的绝对值 - dist == ‘u’: 未中心化的相关系数 - dist == ‘x’: 未中心化的相关系数的绝对值 - dist == ‘s’: 斯皮尔曼等级相关系数 - dist == ‘k’: 肯德尔秩相关系数
返回值:距离矩阵以包含从数据计算的距离矩阵的 1D 数组列表的形式返回。每一行中的列数等于行号。因此,第一行长度为零。例如
>>> from numpy import array >>> from Bio.Cluster import distancematrix >>> data = array([[0, 1, 2, 3], ... [4, 5, 6, 7], ... [8, 9, 10, 11], ... [1, 2, 3, 4]]) >>> distances = distancematrix(data, dist='e') >>> distances [array([], dtype=float64), array([16.]), array([64., 16.]), array([ 1., 9., 49.])]
可以改写为
distances = [array([], dtype=float64), array([ 16.]), array([ 64., 16.]), array([ 1., 9., 49.])]
这对应于距离矩阵
[ 0., 16., 64., 1.] [16., 0., 16., 9.] [64., 16., 0., 49.] [ 1., 9., 49., 0.]
- Bio.Cluster.pca(data)
执行主成分分析。
- 关键字参数
data: 包含数据值的 nrows x ncolumns 数组。
返回值:此函数返回一个数组,其中包含每列的平均值、作为 nmin x ncolumns 数组的主成分、以及数据沿主成分的坐标(nrows x nmin 数组)以及相关的特征值。主成分、坐标和特征值按特征值的大小排序,最大的特征值最先出现。这里,nmin 是 nrows 和 ncolumns 中较小的一个。将列均值添加到坐标和主成分的点积中,可以重新创建数据矩阵
>>> from numpy import array, dot >>> from Bio.Cluster import pca >>> matrix = array([[ 0., 0., 0.], ... [ 1., 0., 0.], ... [ 7., 3., 0.], ... [ 4., 2., 6.]]) >>> columnmean, coordinates, pc, _ = pca(matrix) >>> m = matrix - (columnmean + dot(coordinates, pc)) >>> abs(m) < 1e-12 array([[ True, True, True], [ True, True, True], [ True, True, True], [ True, True, True]])
- class Bio.Cluster.Record(handle=None)
Bases:
object
存储基因表达数据。
Record 存储基因表达数据和相关信息,这些信息包含在遵循为 Michael Eisen 的 Cluster/TreeView 程序定义的文件格式的数据文件中。
- 属性
data: 包含基因表达数据的矩阵
mask: 仅包含 1 和 0 的矩阵,表示哪些值存在(1)或缺失(0)。如果 mask 的所有项都为 1(无缺失数据),则 mask 设置为 None。
geneid: 包含每个基因的唯一标识符(例如,ORF 名称)的列表
genename: 包含每个基因的附加描述(例如,基因名称)的列表
gweight: 用于计算距离时每个基因的权重
gorder: 一系列实数,表示输出文件中基因的首选顺序
expid: 包含每个样本的唯一标识符的列表。
eweight: 用于计算距离时每个样本的权重
eorder: 一系列实数,表示输出文件中样本的首选顺序
uniqid: 在输入文件中用作 UNIQID 的字符串。
- __init__(handle=None)
从文件句柄中读取基因表达数据并返回 Record。
该文件应采用为 Michael Eisen 的 Cluster/TreeView 程序定义的格式。
- treecluster(transpose=False, method='m', dist='e')
应用层次聚类并返回一个 Tree 对象。
提供成对单链、全链、质心和平均链层次聚类方法。
- 关键字参数
- transpose: 如果为 False: 聚类行;
如果为 True: 聚类列。
dist: 指定要使用的距离函数: - dist == ‘e’: 欧氏距离 - dist == ‘b’: 城市街区距离 - dist == ‘c’: 皮尔逊相关系数 - dist == ‘a’: 相关系数的绝对值 - dist == ‘u’: 未中心化的相关系数 - dist == ‘x’: 未中心化的相关系数的绝对值 - dist == ‘s’: 斯皮尔曼等级相关系数 - dist == ‘k’: 肯德尔秩相关系数
method: 指定使用哪种链接方法: - method == ‘s’: 单个成对链接 - method == ‘m’: 完全(最大)成对链接(默认) - method == ‘c’: 重心链接 - method == ‘a’: 平均成对链接
有关此方法返回的 Tree 对象的更多信息,请参见 Tree 类说明。
- kcluster(nclusters=2, transpose=False, npass=1, method='a', dist='e', initialid=None)
应用 K 均值或 K 中值聚类。
此方法返回一个元组 (clusterid, error, nfound)。
- 关键字参数
nclusters: 聚类数量(K 均值中的“K”)。
- transpose: 如果为 False,则聚类基因(行);
如果为 True,则聚类样本(列)。
npass: k-means 聚类算法执行的次数,每次都使用不同的(随机)初始条件。
method: 指定如何查找聚类中心: - method == ‘a’: 算术平均值 - method == ‘m’: 中值
dist: 指定要使用的距离函数: - dist == ‘e’: 欧氏距离 - dist == ‘b’: 城市街区距离 - dist == ‘c’: 皮尔逊相关系数 - dist == ‘a’: 相关系数的绝对值 - dist == ‘u’: 未中心化的相关系数 - dist == ‘x’: 未中心化的相关系数的绝对值 - dist == ‘s’: 斯皮尔曼等级相关系数 - dist == ‘k’: 肯德尔秩相关系数
initialid: 算法应该从哪个初始聚类开始。如果 initialid 为 None,则该例程将执行 EM 算法的 npass 次重复,每次都从不同的随机初始聚类开始。如果提供了 initialid,则该例程将只执行一次 EM 算法,从给定的初始聚类开始,并且不随机化将项目分配给聚类的顺序(即使用数据矩阵中相同的顺序)。在这种情况下,k-means 算法是完全确定的。
- 返回值
clusterid: 数组,包含在 npass 次运行中找到的最佳 K 均值聚类解决方案中分配给每个基因/样本的聚类编号;
error: 返回的 k-means 聚类解决方案的集群内距离总和;
nfound: 找到此解决方案的次数。
- somcluster(transpose=False, nxgrid=2, nygrid=1, inittau=0.02, niter=1, dist='e')
在矩形网格上计算自组织映射。
somcluster 方法返回一个元组 (clusterid, celldata)。
- 关键字参数
- transpose: 如果为 False,则聚类基因(行);
如果为 True,则聚类样本(列)。
nxgrid: 矩形 SOM 映射的水平尺寸
nygrid: 矩形 SOM 映射的垂直尺寸
inittau: tau(邻域函数)的初始值
niter: 迭代次数
dist: 指定要使用的距离函数: - dist == ‘e’: 欧氏距离 - dist == ‘b’: 城市街区距离 - dist == ‘c’: 皮尔逊相关系数 - dist == ‘a’: 相关系数的绝对值 - dist == ‘u’: 未中心化的相关系数 - dist == ‘x’: 未中心化的相关系数的绝对值 - dist == ‘s’: 斯皮尔曼等级相关系数 - dist == ‘k’: 肯德尔秩相关系数
- 返回值
clusterid: 数组,包含两列,而行数等于基因数量或样本数量,具体取决于聚类的是基因还是样本。数组中的每一行都包含矩形 SOM 网格中分配给基因或样本的单元格的 x 和 y 坐标。
celldata: 数组,维度为 (nxgrid, nygrid, 样本数量),如果聚类的是基因,或 (nxgrid, nygrid, 基因数量),如果聚类的是样本。此数组的每个项目 [ix, iy] 都是一个 1D 向量,包含 SOM 网格单元格中具有坐标 [ix, iy] 的聚类中心的基因表达数据。
- clustercentroids(clusterid=None, method='a', transpose=False)
计算聚类中心并返回一个元组 (cdata, cmask)。
中心定义为每个维度的所有项目的平均值或中值。
- 关键字参数
data: nrows x ncolumns 数组,包含表达数据。
mask: nrows x ncolumns 整数数组,显示哪些数据缺失。如果 mask[i, j]==0,则 data[i, j] 缺失。
- transpose: 如果为 False,则考虑基因(行)聚类;
如果为 True,则考虑样本(列)聚类。
clusterid: 数组,包含每个基因或样本的聚类编号。聚类编号应为非负数。
method: 指定如何计算中心: - method == ‘a’: 每个维度的算术平均值。(默认) - method == ‘m’: 每个维度的中值。
- 返回值
cdata: 包含簇质心的 2D 数组。如果 transpose 为 False,则 cdata 的尺寸为 nclusters x ncolumns。如果 transpose 为 True,则 cdata 的尺寸为 nrows x nclusters。
cmask: 描述 cdata 中哪些项(如果有)缺失的 2D 整数数组。
- clusterdistance(index1=0, index2=0, method='a', dist='e', transpose=False)
计算两个聚类之间的距离。
- 关键字参数
index1: 1D 数组,标识哪些基因/样本属于第一个聚类。如果聚类只包含一个基因,那么 index1 也可以写成单个整数。
index2: 1D 数组,标识哪些基因/样本属于第二个聚类。如果聚类只包含一个基因,那么 index2 也可以写成单个整数。
- transpose: 如果为 False,则聚类基因(行);
如果为 True,则聚类样本(列)。
dist: 指定要使用的距离函数: - dist == ‘e’: 欧氏距离 - dist == ‘b’: 城市街区距离 - dist == ‘c’: 皮尔逊相关系数 - dist == ‘a’: 相关系数的绝对值 - dist == ‘u’: 未中心化的相关系数 - dist == ‘x’: 未中心化的相关系数的绝对值 - dist == ‘s’: 斯皮尔曼等级相关系数 - dist == ‘k’: 肯德尔秩相关系数
method: 指定如何定义两个簇之间的距离: - method == ‘a’: 两个簇的算术平均值之间的距离 - method == ‘m’: 两个簇的中位数之间的距离 - method == ‘s’: 两个簇成员之间的最小成对距离 - method == ‘x’: 两个簇成员之间的最大成对距离 - method == ‘v’: 两个簇成员之间的成对距离的平均值
- transpose: 如果为 False: 考虑行聚类;
如果为 True: 考虑列聚类。
- distancematrix(transpose=False, dist='e')
计算距离矩阵并将其作为数组列表返回。
- 关键字参数
- transpose
如果为 False: 计算基因(行)之间的距离;如果为 True: 计算样本(列)之间的距离。
dist: 指定要使用的距离函数: - dist == ‘e’: 欧氏距离 - dist == ‘b’: 城市街区距离 - dist == ‘c’: 皮尔逊相关系数 - dist == ‘a’: 相关系数的绝对值 - dist == ‘u’: 未中心化的相关系数 - dist == ‘x’: 未中心化的相关系数的绝对值 - dist == ‘s’: 斯皮尔曼等级相关系数 - dist == ‘k’: 肯德尔秩相关系数
返回值
距离矩阵作为包含基因表达数据之间距离矩阵的 1D 数组列表返回。每行的列数等于行号。因此,第一行长度为零。返回值的示例如下:
- matrix = [[],
array([1.]), array([7., 3.]), array([4., 2., 6.])]
这对应于距离矩阵
[0., 1., 7., 4.] [1., 0., 3., 2.] [7., 3., 0., 6.] [4., 2., 6., 0.]
- save(jobname, geneclusters=None, expclusters=None)
保存聚类结果。
保存的文件遵循 Java TreeView 程序的约定,因此可以用来查看聚类结果。
- 关键字参数
jobname: 要保存的文件的基名称。文件名分别为 jobname.cdt、jobname.gtr 和 jobname.atr(用于层次聚类),以及 jobname-K*.cdt、jobname-K*.kgg、jobname-K*.kag(用于 K 均值聚类结果)。
geneclusters: 对于层次聚类结果,geneclusters 是由 treecluster 方法返回的 Tree 对象。对于 K 均值聚类结果,geneclusters 是包含 ngenes 个整数的向量,描述每个基因属于哪个聚类。此向量可以通过 kcluster 计算。
expclusters: 对于层次聚类结果,expclusters 是由 treecluster 方法返回的 Tree 对象。对于 K 均值聚类结果,expclusters 是包含 nexps 个整数的向量,描述每个样本属于哪个聚类。此向量可以通过 kcluster 计算。
- Bio.Cluster.read(handle)
从文件句柄中读取基因表达数据并返回 Record。
该文件应采用 Michael Eisen 的 Cluster/TreeView 程序定义的文件格式。