R语言相关性分析

Python015

R语言相关性分析,第1张

1.  R语言自带函数cor(data, method=" ")可以快速计算出相关系数数据类型:data.frame

 如data.frame为:zz, 绘图如下:

a. single protein:线性回归画法

1. ggplot(zz,aes(x=a, y=HDL))+

   geom_point(alpha=1,colour="#FFA54F")+

   geom_smooth(method = lm,colour="#8B658B")+

   #scale_color_brewer(palette = "Set1")+

   theme_bw()+

   labs(x="Ferritin",y="HDL.C",title="Pearson’s correlation test of ferritin and HDL.C")+

   annotate("text", x = 1000, y = 2.5, label = "r = -0.51",colour="black",size=4)

2. library(ggstatsplot)

 ggscatterstats(data = alldata,

               y = TRANSFUSION.UNIT,

                x = NPTXR,

                centrality.para = "mean",  #"mean" or "median"                         

               margins = "both",                                       

                xfill = "#D8BFD8",

                yfill = "#EEDD82",

                #line.size= ,

                line.color="#8B6969",

               point.color="#2F4F4F",

                marginal.size=4,

               marginal.type = "density", # "histogram", "boxplot", "density", "violin", "densigram")

                title = "Relationship between TRANSFUSION.UNIT and NPTXR")

b. ggcorrplot, 全部蛋白 global correlation map 画法

ggcorrplot(cor(alldata))

2.  summary(lm(y~x),method=" ") %>%.[["coefficients"]]   正规线性回归

     (其实就是:a<-lm(y~x1+x2+...,data)

      plot(summary(lm(y~x),method=" ")) #绘图

3.  ggcor部分数据绘图:  数据类型为data.frame,纵坐标为各指标or各蛋白,行为观测值。

data <- fortify_cor(alldata[,10:11],alldata,cluster.type = "col")

ggcor<-ggcor(data,label_size=0.5) +

  geom_colour()+

  theme(axis.text.x = element_text(colour = "black",size = 4.7),

                                                        axis.text.y=element_text(size=5.5),

                                                        axis.ticks=element_blank())+

  geom_num(aes(num=r),colour="black",size=1.5)

4. corrr包画法

datasets::mtcars %>%

  correlate() %>%

  focus(-cyl, -vs, mirror = TRUE) %>%

  rearrange() %>%

  network_plot(min_cor = .2)

框内的数字是行变量和列变量之间的相关系数R,相关系数R绝对值越大,颜色越深(红正,蓝负)。统计学中,P值越小相关性越显著,一般来说 一个*代表显著相关(P值为0.01,选取不同参数可能不一样)、两个**代表极显著相关(P值为0.001)、三个***代表极极显著相关(P值为0.0001).   图中还可以看出,相关系数R的绝对值0.67(变量P50与T之间)以上的都显著相关,至少一个*。符合一般关于相关系数R值的显著性统计。

Step1. 绘图数据的准备

首先还是要把你想要绘图的数据调整成R语言可以识别的格式, 在excel中保存成csv。

数据的格式如下图:

Step2. 绘图数据的读取

data <- read.csv(“your file path”, header = T)

登录后复制

Step3.绘图所需package的调用

library(pheatmap) ## 调用之前先安装install.packages("pheatmap")

登录后复制

Step4.绘图

df <- data[,-c(11,12)]

bk <- c(seq(-3, 2,by = 0.01))

pheatmap(df,

cluster_cols = F, cluster_rows = F, scale = "none",

treeheight_col = 0, treeheight_row = 0,

display_numbers = F,

border_color = "black",

color = colorRampPalette(c("blue","white", "red"))(length(bk)))

登录后复制

调整行标签

得到上图之后,小仙发现行名是"1", “2”, “3”… ,并不是想要的"Group 1",“Group 2”, “Group 3”…

原来需要将df的rownames重新赋值一下

rownames(df) <- data$Group

rownames(df)

pheatmap(df,

cluster_cols = F, cluster_rows = F, scale = "none",

treeheight_col = 0, treeheight_row = 0,

display_numbers = F,

border_color = "black",

color = colorRampPalette(c("blue","white", "red"))(length(bk)))

登录后复制

添加行注释

很多时候数据不只一列标签,在画热图的时候除了行名或者列名之外,还要添加注释标签

annotation_row = data.frame(Class = factor(data$Class))

rownames(annotation_row) <- data$Group

pheatmap(df,

cluster_cols = F, cluster_rows = F, scale = "none",

treeheight_col = 0, treeheight_row = 0,

annotation_legend = T,

display_numbers = F,

annotation_row = annotation_row,

border_color = "black",

color = colorRampPalette(c("blue","white", "red"))(length(bk)))

登录后复制

调整热图色块和行注释的颜色

mycolors <- c("#66C2A5","#FC8D62","#E78AC3")

names(mycolors) <- unique(annotation_row$Class)

mycolors <- list(Class = mycolors)

pheatmap(df,

cluster_cols = F, cluster_rows = F, scale = "none",

treeheight_col = 0, treeheight_row = 0,

annotation_legend = T,

display_numbers = F,

annotation_row = annotation_row,

annotation_colors = mycolors,

border_color = "black",

color = colorRampPalette(c("navy", "white", "firebrick3"))(length(bk)))

登录后复制

采用默认颜色

如果希望使用pheatmap包默认的色块颜色,只要将以下的语句删掉就可以。