如何在Matlab生物信息学工具箱中使用其他聚类方法进行聚类

时间:2010-10-20 07:34:36

标签: oop matlab bioinformatics hierarchical-clustering

编辑:我明白了。只是不明白符号。

您好,

希望有人熟悉生物信息学工具箱中的聚类图。我对函数的图形方面感兴趣(树形图/热图),但由于它需要我使用Matlab的cluster()函数,因此目前是残障的。我更愿意使用我的个人算法进行聚类,然后让Matlab为我想象这个。

我已经搜索了代码,但是对于面向对象的编程一般都很愚蠢,特别是Matlab的版本。因此,我所知道的是函数调用行'obj = obj.getclusters',但不知道如何编辑它,以便我使用自己的聚类算法而不是Matlab的。

感谢任何帮助!

编辑:我专门研究一种新算法,因此我不需要pdist或链接。树形图在集群图函数之外计算。我用来创建树形图/热图的所有内容都是clustergram函数。我的生物信息学工具箱是版本3.3

真的,我在这里找的就是他们到底做了什么'obj = obj.getclusters;'做?我不是程序员,对OO真的不熟悉。对我来说,看起来我们神奇地拥有集群,因为没有函数调用。这是在clustergram()

的第304行

1 个答案:

答案 0 :(得分:0)

首先我有更高版本的Bioinformatics Toolbox(3.4及更高版本),对于那些版本clustergram.m文件没有行obj = obj.getclusters;

在课堂上记住CLUSTERGRAM(不像旧版本那样起作用)。运行clustergram(data,...)时,实际运行此类的构造函数方法以创建clustergram对象。该对象是obj变量。因此,当您运行obj = obj.getclusters;时,实际上在clustergram类中运行getclusters方法,这会更新对象obj

要获取getclusters方法正在执行的更多详细信息,请在方法块中查找以下行:

    function obj = getcluster(obj)

在最新版本中,方法computeClusters定义为

    function computeClusters(obj)

此方法计算行和列的树形图并更新对象。当然,你可以直接改变这个功能,但我不推荐它。为距离度量和链接开发单独的函数并使用这些函数构造clustergram对象要好得多。

如果您的算法不使用距离和链接,请解释如何构建树形图。它是否创建与LINKAGE函数输出相同的链接矩阵?如果没有这样的矩阵,我认为即使只是可视化,你也不能使用clustergram。你有一个例子你的clustergram应该是什么样的?您可以使用Heatmap类其他更简单的函数,例如IMAGEIMAGESC