本期内容为[R语言可视化-精美图形绘制系列]--组内相关性分析--我们在前面分享过[R语言可视化-精美图形绘制系列--组间相关性分析],组内的相关性分析是比较容易的,使用corrplot包就可以直接获得cor值。但是计算P值就是比较困难,那么今天周末我们来搞一下哦!!
代码部分:
- 此部分可看我们的个人喜好进行设置,是可选项。
library(reshape2)
library(corrplot)
library(plyr)
library(igraph)
library(autoReg)
library(tidyverse)
library(ggsci)
2. 导入数据
input_data <- read.csv("20221112_input_data.csv", row.names = 1, check.names = F)
dim(input_data)
head(input_data)
CK Treat_01 Treat_02 Treat_03 Treat_04
gene01 -0.84977517 1.4181238 -0.54757208 -0.1937784 -0.2953731
gene02 0.47702001 1.2419958 0.30147166 0.3991298 1.8328058
gene03 -0.25585638 -0.8757098 0.01523679 0.3542401 -0.2953731
gene04 -0.76343921 -0.1194277 -0.15231595 0.8108953 -0.2953731
gene05 0.01850849 -0.8757098 -1.42282342 1.0168803 3.6391267
gene06 -0.84977517 1.6553410 -0.96212175 3.2958347 -0.2953731
- 相关性计算
corr <- cor(input_data, method = "spearman")
- 绘图
corrplot(corr,title = "",
method = "pie", #或"circle" (default), "square", "ellipse", "number", "pie", "shade" and "color"
outline = T, addgrid.col = "darkgray",
order="hclust", addrect = 4, #hclust聚为4类,根据数据的具体情况调整
mar = c(4,0,4,0),
rect.col = "black", rect.lwd = 5, cl.pos = "b",
tl.col = "black", tl.cex = 1.08, cl.cex = 1.5, tl.srt=60)
corrplot(corr, title = "",
method = "circle",
outline = T,
addgrid.col = "darkgray")
## 显示数字
corrplot(corr,order = "AOE",type="upper",tl.pos = "tp")
corrplot(corr, title = "",
method = "number",
outline = T,
add = TRUE, type = "lower",
order="AOE",col="black",diag=FALSE,tl.pos="n", cl.pos="n")
## 合并
corpvlue <- cbind(pvalue, cor)
head(corpvlue)
## #去掉相关性较弱的连接
corpvlue <- corpvlue[corpvlue$pvalue < 0.05,] #只保留pvalue < 0.05的
dim(corpvlue)
head(corpvlue)
corpvlue$weight <- corpvlue$pvalue
corpvlue$weight <- -log10(corpvlue$weight)
head(corpvlue)
#去掉相关系数为1,也就是两个相同变量之间的连接
corpvlue <- corpvlue[!corpvlue$cor==1,]
dim(corpvlue)
#去掉相关系数一样的连接--也就是重复计算的连接
summary(duplicated(corpvlue$weight))
corpvlue <- corpvlue[!duplicated(corpvlue$weight),]
dim(corpvlue)
head(corpvlue)
##
outputdata <- corpvlue %>%
select(from, to, pvalue, cor, weight)
colnames(outputdata)[1:2] <- c("sample01","sample02")
head(outputdata)
最后获得我们需要的文件即可
> head(outputdata)
sample01 sample02 pvalue cor weight
2 Treat_01 CK 5.097618e-03 -0.4292847 2.292633
3 Treat_02 CK 1.583418e-02 0.3745557 1.800405
12 Treat_11 CK 2.641765e-02 -0.3466011 1.578106
61 Treat_14 Treat_02 2.724846e-02 -0.3459930 1.564658
79 Treat_09 Treat_03 4.870941e-03 0.4313068 2.312387
80 Treat_10 Treat_03 1.929456e-05 -0.6143757 4.714565
--
使用以前的码绘制气泡图
ggplot(outputdata,
aes(sample01,sample02, colour = cor, size = -log10(pvalue))) +
geom_point(aes(alpha = -log10(pvalue))) +
scale_color_gradient2(low = 'blue',
mid = 'white',
high = 'red',
midpoint = 0) +
scale_size_area() +
theme_bw() +
xlab(NULL)+ylab(NULL)+
## 更改横纵坐标轴中的字体颜色、大小
theme(axis.text.x = element_text(color = "black", size = 12, #face = "bold",
angle = 45, hjust = 1),
axis.text.y = element_text(colour = "black", size = 12))
往期文章(总汇)
01-[R语言可视化-精美图形绘制系列]--精美火山图
02-R语言可视化-精美图形绘制系列--柱状图
03-R语言可视化-精美图形绘制系列--功能富集分析
04-R语言可视化-精美图形绘制系列—多组GO富集可视化
05-[R语言可视化-精美图形绘制系列--堆积图]
06-[R语言可视化-精美图形绘制系列--组间相关性分析]
07-[R语言可视化-精美图形绘制系列]--Mental分析
08-[R语言可视化-精美图形绘制系列--复杂热图+两图渐变连线]-【转载】
09-[R语言可视化-精美图形绘制系列--桑基图(Sankey)]
10-[R语言可视化-精美图形绘制系列--柱状图误差线标记]
11-跟着NC学作图 | 柱状图与相关性图
12-[R语言可视化-精美图形绘制系列--GO、KEGG富集通路关联图]
13-[跟着“基迪奥生物学”作图]--截断图
14-[R语言可视化-精美图形绘制系列]--显著性箱线图
14-2[R语言可视化]--箱线图不同的画法及参数设置 | 学习笔记