2010-10-20 22 views
0

编辑:我想通了。只是没有理解符号。如何在Matlab的生物信息工具箱中为clustergram使用其他聚类方法

你好,

希望有人出有熟悉生物信息学工具箱中的clustergram。我对函数的图形方面感兴趣(树状图/热图),但由于它需要我使用Matlab的cluster()函数,所以我目前处于残缺状态。我宁愿使用我的个人算法进行聚类,然后让Matlab为我形象化。

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

任何帮助表示赞赏!

编辑:我正在专门研究一种新算法,因此为什么我不需要pdist或链接。聚类图在聚类图函数外计算。我用来创建树状图/热图的所有功能都是聚簇功能。我的生物信息学工具箱版本为3.3

真的,我在这里找的所有东西都是'obj = obj.getclusters'做?我不是程序员,对OO也不熟悉。对我来说,看起来我们神奇地拥有簇,因为没有函数调用。这是在clustergram()

+0

想要用于可视化的数据类型?你是否在clustergram之外计算树形图? Pdist和连接参数是不够的?什么是您的MATLAB版本,Bioinformatics工具箱? – yuk 2010-10-20 15:25:10

+0

我同意@yuk,我们需要更多的细节。此外,如果您发布一个简单的工作示例,并使用您正在使用的函数来生成树状图/热图,它将会有所帮助。 – Amro 2010-10-20 17:56:31

回答

0

首先,我有更高版本的生物信息学工具箱(3.4及更高版本)的304线,并为这些版本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

相关问题