【r<-分析|绘图】 使用NMF包绘制热图

Python012

【r<-分析|绘图】 使用NMF包绘制热图,第1张

学习文档: https://cran.r-project.org/web/packages/NMF/vignettes/heatmaps.pdf

NMF包中的热图引擎是由 aheatmap 函数实现,其余的热图函数都是基于它的修改。而 aheatmap 函数本身又是 pheatmap 包 pheatmap 函数的修改版本。引擎具体的优点作者有在文档是写,我就不唠叨了。

为了演示热图函数的用法,我们这里创建一个随机的NMF输入矩阵,以及一些注释和协变量。

查看下生成的注释数据:

这里 X 实际是一个矩阵, rdata 是行注释, covariates 是列注释。

下面画图:

接着,我们使用NMF模型来分解矩阵。

NMF结果的混合系数矩阵可以使用 coefmap() 函数进行绘制。该函数默认添加2个注释通道用来展示 从最佳拟合结果中获得的簇(聚类数)和一致性矩阵的层次聚类 。在图例中,这两个通道分别以 basis 和 consensus 命名。对于一个简单的NMF模型结果,一致性数据是不能显示的,只能通过最佳拟合进行聚类。

默认情况下:

如果想让 coefmap() 显示 aheatmap() 函数的默认形式,设置 Rowv=TRUE, Colv=TRUE, scale='none' 。

自动注释的通道可以使用 tracks=NA 进行隐藏,或者设置一个( tracks=':basis' 或 tracks='basis:' 可以分别设置行注释或列注释),图例名可以以 tracks=c(Metagene=':basis', 'consensus') 的形式进行修改。除此之外,利用 annCol 参数可以添加用户设定的手动注释。

基底矩阵可以使用 basismap 函数进行绘制,默认的行为是添加basis注释通道,每一行显示主导的基底组分,即每一行有最高负载的基底组分。

默认情况下:

当使用NMF进行矩阵的时候,一种评估基于指定rank评估聚类稳定性的方法是考虑由多个独立NMF运行结果计算得到的连接矩阵。有篇 不错的中文博文 讲的比较清晰,建议看看。

我们所用数据 res 设定的参数是 nrun=10 ,因此包含了10次运行得到的最佳结果以及基于所有运行的一致性矩阵。

很显然这是一个对称矩阵,结果看上一半或者下一半都可以。

函数 nmf 可以接受一组 rank 序列用来拟合多个不同的rank的结果。

然后可以同样的画图

可以比较同一rank不同方法的结果。

还有很多自定义画热图的例子,使用下面的命令查看。

coef不是写成回归模型的程序,而是读取你之前构建的模型回归系数。

比如mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")

你构建了logistic回归模型并把模型数据储存在mylogit这个对象里面。

coef(mylogit)就会显示回归方程的回归系数。 你也可以print(mylogit)看看有什么不同。