R语言相关性分析

Python018

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)

操作之前安装好ggplot2、vegan、ggpubr包。如下:

install.packages("ggplot2")

install.packages("ggpubr")

install.packages("vegan")

计算Shannon-香农指数和Simpson-辛普森指数的命令在vegan包中,计算各组显著性的命令在ggpubr包中;画图使用ggplot命令,在行使每个命令之前一定要加载相应的包,如下:

library(ggplot2)

library(ggpubr)

library(vegan)

拿到一个otu表格,要先计算香农指数和辛普森指数,操作如下:

otu=read.table('D:/r-working/feature-table.taxonomy.txt',row.names = 1,skip=1,header=T,comment.char ='',sep='\t')

#读取out表格

#'D:/feature table.taxonomy.txt'为文件路径,注意斜线方向

#row.names = 1指定第一列为行名

#skip=1跳过第一行不读

#header=T指定第一个有效行为列名

#sep='\t'表示指定制表符为分隔符

#comment.char=''表示设置注释符号为空字符‘’,这样#后面的内容就不会被省略

otu=otu[,-ncol(otu)]

#去除表格的最后一列,无用信息

otu=t(otu)

#表格转置,必须将样品名作为行名

shannon=diversity(otu,"shannon")

#计算香农指数,先加载vegan包

shannon

#查看香农指数

simpson=diversity(otu,"simpson")

#计算辛普森指数,先加载vegan包

simpson

#查看辛普森指数

alpha=data.frame(shannon,simpson,check.names=T)

#合并两个指数

write.table(alpha,"D:/r-working/alpha-summary.xls",sep='\t',quote=F)

#存储数据,注意路径使用反斜杠

将各样本进行分组,并进行画图,操作如下:

map<-read.table('D:/r-working/mapping_file.txt',row.names = 1,header=T,comment.char ='',sep='\t',check.names=F)

#读取分组表格

group<-map["Group1"]

#提取需要的分组,'Group1'是表中的分组列名,包括A,B,C三组

alpha<-alpha[match(rownames(group),rownames(alpha)),]

#重排alpha的行的顺序,使其与group的样本id(行名)一致

data<-data.frame(group,alpha,check.rows=T)

#合并两个表格.'<-'与'='同属赋值的含义.

p=ggplot(data=data,aes(x=Group1,y=shannon))+geom_boxplot(fill=rainbow(7)[2])

#data = data指定数据表格

#x=Group1指定作为x轴的数据列名

#y=shannon指定作为y轴的数据列名

#geom_boxplot()表示画箱线图

#fill=rainbow(7)[2]指定填充色

此处用到ggplot2包画箱线图,将画图函数赋值给p后,可以用‘+’不断进行图层叠加,给图片p增加新的特性

p

#查看p

mycompare=list(c('A','B'),c('A','C'),c('B','C'))

#指定多重比较的分组对

mycompare

p<-p+stat_compare_means(comparisons=mycompare,label = "p.signif",method = 'wilcox')

#添加显著性标记的第一种方法,在此之前先加载ggpubr包

p<-p+ylim(2,5.5)

#调整图像的外观