差异基因差异代谢物pearson相关性热图pheatmap包加显著性符号
时间: 2023-05-26 16:03:14 浏览: 667
要在R中利用pheatmap包制作差异基因差异代谢物Pearson相关性热图并加上显著性符号,可以按照以下步骤进行:
1. 载入pheatmap包:
```R
library(pheatmap)
```
2. 准备数据。假设有一个名为data的数据框,其中包含了差异基因与差异代谢物在不同样本中的表达数据。
3. 计算Pearson相关系数。使用cor函数计算基因和代谢物之间的Pearson相关系数。按行计算,结果存储在一个名为cor_mat的矩阵中。
```R
cor_mat <- cor(data, method = "pearson", use = "pairwise.complete.obs")
```
4. 创建热图。使用pheatmap函数创建热图,并使用cor_mat作为输入。可以设置许多不同的参数来自定义热图的外观,例如col和row表示列和行的聚类方法,scale表示是否对数据进行缩放等。
```R
pheatmap(cor_mat, col = viridis::viridis(20), cluster_cols = FALSE, scale = "none")
```
现在可以看到一个基于Pearson相关系数的热图。
5. 添加显著性符号。可以使用pch参数来添加显著性符号。pch表示点的标记符号,可以设置为任何数值或字符。在这里,我们将0(圆)分配给不显著值,1(+号)分配给P值小于0.05的值,2(*号)分配给P值小于0.01的值,3(三角形)分配给P值小于0.001的值。
首先,我们需要对每个相关系数计算P值。使用cor.test函数计算每个相关系数的P值,并将其存储在一个名为p_vals的矩阵中。
```R
p_vals <- matrix(NA, nrow = nrow(cor_mat), ncol = ncol(cor_mat))
for (i in 1:nrow(cor_mat)) {
for (j in 1:ncol(cor_mat)) {
p_vals[i,j] <- cor.test(data[i,], data[j,])$p.value
}
}
```
现在,我们可以为每个相关系数添加符号:
```R
pheatmap(cor_mat, col = viridis::viridis(20), cluster_cols = FALSE, scale = "none",
pch = ifelse(p_vals < 0.001, 3, ifelse(p_vals < 0.01, 2, ifelse(p_vals < 0.05, 1, 0))))
```
现在,热图中的每个相关系数都用符号表示了其显著性。
阅读全文