0

编辑:我想通了。只是没看懂符号。

你好,

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

我已经搜索了代码,但是对于一般的面向对象编程,尤其是 Matlab 的版本,我一无所知。因此,我所知道的只是函数调用了“obj = obj.getclusters”这一行,但不知道如何对其进行编辑,以便我使用自己的聚类算法而不是 Matlab 的。

任何帮助表示赞赏!

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

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

4

1 回答 1

0

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

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

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

    function obj = getcluster(obj)

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

    function computeClusters(obj)

此方法计算行和列的树状图并更新对象。当然,您可以直接更改此功能,但我不建议这样做。最好为距离度量和链接开发单独的函数,并使用这些函数来构造 clustergram 对象。

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

于 2010-10-21T20:02:41.643 回答