r语言cor.test函数算出r值和p值
将lncRNA和mRNA进行相关性分析,并把r值和p值写入文件中
setwd("C:\\Users\\DI\\Desktop\\PRJNA516151_lnc\\correlation")
library(magrittr)
library(pheatmap)
library(corrplot)
library(Hmisc)
library(psych)
library(tidyverse)
##导入数据并转换格式
lncRNA <- read.csv("C:\\Users\\DI\\Desktop\\PRJNA516151_lnc\\correlation\\lncRNA_VST.csv",header=T,row.names=1)
mRNA <- read.csv("C:\\Users\\DI\\Desktop\\PRJNA516151_lnc\\correlation\\mRNA_VST.csv" ,header=T,row.names=1)
lnc_mfuzz <- read.csv("C:\\Users\\DI\\Desktop\\mfuzz\\lnc_mfuzz.csv",header=T,row.names=1)
lncRNA <- lncRNA[rownames(lnc_mfuzz),]
lncRNA <- lncRNA %>% t() %>% as.matrix()
mRNA <- mRNA %>% t() %>% as.matrix()
##相关性分析
tmp <- with(expand.grid(seq(ncol(lncRNA)), seq(ncol(mRNA))),
mapply(function(i, j) cor.test(lncRNA[, i], mRNA[, j]),
Var1, Var2))
r <- matrix(unlist(tmp['estimate', ]), nrow=ncol(lncRNA),
dimnames=list(colnames(lncRNA), colnames(mRNA)))
p <- matrix(unlist(tmp['p.value', ]), nrow=ncol(lncRNA),
dimnames=list(colnames(lncRNA), colnames(mRNA)))
#write.csv(r,file = "r.csv")
#write.csv(p,file = "p.csv")
做出来的r值和p值长这样
接下来将其转换成长矩阵并合并成一个csv文件,以便于下一步Cytoscape绘制相关性网络图
setwd("C:\\Users\\DI\\Desktop\\PRJNA516151_lnc\\correlation\\cellage_output")
library(tidyverse)
library(reshape2)
library(igraph)
library(psych)
cor.r <- read.csv("C:\\Users\\DI\\Desktop\\PRJNA516151_lnc\\correlation\\cellage_output\\r.csv",header = TRUE,row.names = 1, check.names=FALSE)
cor.p <- read.csv("C:\\Users\\DI\\Desktop\\PRJNA516151_lnc\\correlation\\cellage_output\\p.csv",header = TRUE,row.names = 1, check.names=FALSE)
type = read.csv("C:\\Users\\DI\\Desktop\\PRJNA516151_lnc\\correlation\\cellage_output\\type.csv",header = TRUE, check.names=FALSE)
### 确定相关性关系 保留p<=0.05且abs(r)>=0.6的变量间相关关系
cor.r[abs(cor.r) > 0.6 | cor.p < 0.05] = 0
cor.r = as.matrix(cor.r)
g = melt(cor.r)
g <- as.matrix(g)
####
#g = graph_from_adjacency_matrix(cor.r,mode = "max",weighted = TRUE,diag = FALSE)
#### 将数据转换为long format进行过滤,后面绘制网络图需要节点和链接数据,在这一步可以完成格式整理
cor.r <- as.data.frame(cor.r)
cor.r$node1 = rownames(cor.r)
cor.p$node1 = rownames(cor.p)
cor.r <- as.data.frame(cor.r)
r = cor.r %>%
gather(key = "node2", value = "r", -node1) %>%
data.frame()
p = cor.p %>%
gather(key = "node2", value = "p", -node1) %>%
data.frame()
head(r)
head(p)
cor.r.p <- cbind(r,p[3])
#write.csv(cor.r.p, file = 'cor_r_p.csv')
导出的csv文件就可以直接使用Cytoscape软件进行后续分析
新建一列flag,将大于0的为正号,r小于0为负号
Cytoscape绘制出相关性网络图
mcode聚类出八个cluster
导出基因进行后续分析