如何在Python中以显示基因表达值矩阵和树状图的方式进行层次聚类(在本例中是针对基因表达数据)?我的意思是这里的例子:
http://www.mathworks.cn/access/helpdesk/help/toolbox/bioinfo/ug/a1060813239b1.html
在项目符号6(图1)后显示,其中树状图绘制在基因表达矩阵的左侧,其中的行已重新排序以反映聚类。
如何在Python中使用numpy/scipy或其他工具来实现这一点?另外,用一个大约11000个基因的矩阵,用欧几里德距离作为度量,这样做在计算上可行吗?
编辑:许多人建议使用集群包,但我仍然不确定如何在Python中绘制我链接到上面的那种图像。例如,如何使用Matplotlib将树状图与热图矩阵重叠?
谢谢。
有几个人在使用scipy和matplotlib创建分层群集和热图可视化原型模块方面取得了一些不错的进展:
How to get flat clustering corresponding to color clusters in the dendrogram created by scipy
我一直在修改这段代码,使之成为一个完整的层次聚类模块,我可以将其集成到我的一个转录组分析包中。我对最终的产品非常满意,它将使用各种聚类度量和方法以及着色梯度生成一个热图。代码和示例输出如下所示:
http://altanalyze.blogspot.com/2012/06/hierarchical-clustering-heatmaps-in.html
许多聚类方法包括
scipy.cluster
首先对所有成对距离进行排序, 对你来说大约6000万,不算太大。你要花多长时间?
有人问如何对矩阵进行排列并绘出好的图 here 在三月的时候,有一个部分的答案。
您可以使用scipy的cluster.hierarchy模块来实现这一点。这些命令实际上非常相似。但是,必须使用
correlation
而不是corr
作为pdist
的参数,而不是cluster
函数scipy的集群模块的名称是fcluster
。此外,对于树状图,scipy中的函数是dendrogram
,而不是Matlab中的clustergram
。您绝对可以使用欧几里德度量(认为它是
pdist
的默认值)。我认为用11000个基因来计算应该是可行的,因为要计算的距离是11000*(11000-1)/2=60494500(11000选择2)。这是一个很大的数字,但我认为确实可行。相关问题 更多 >
编程相关推荐