代谢与转录联合分析之九象限分析 -R

#九象限分析#
数据准备
相关性分析的r值与p值
在这里插入图片描述

#导入每组差异分组检测到的基因和代谢相关性分析的p值和r值#
r <- read.csv("r.csv",header = T,row.names = 1)
metaGeneCor.p <- read.csv("metaGeneCor.p.csv",header = T,row.names = 1)
#转换数据类型为matrix#
r <- as.matrix(r)
metaGeneCor.p <- as.matrix(metaGeneCor.p)
#构建一个2267934列的matrix#
#226793为基因与代谢物的乘积#
x <- matrix(NA,ncol = 4,nrow = 226793)

在这里插入图片描述

#构建一个循环,使相关性分析中的基因与代谢物填入这个变量中#
for(i in 1:1253){ 
  j <- 1
  while(j<182)
  { x[(i-1)*181+j,1] <- row.names(r)[i]
    x[(i-1)*181+j,2] <- colnames(r)[j]
    j <- j+1
  }
}  
#将相关性分析的r值和p值提取出来#
for(i in 1:dim(x)[1]){
  x[i,3] <- r[x[i,1],x[i,2]]
  x[i,4] <- metaGeneCor.p[x[i,1],x[i,2]]
}
  
colnames(x) <- c("gene","meta","PCC","PCCP")

在这里插入图片描述

#导入基因与代谢物的差异倍数数据#
meta <- read.csv("181FC.csv",header = T)
colnames(meta) <- c("meta","m-Log2FC")  
meta <- as.matrix(meta)
gene <- read.csv("1253FC.csv",header = T)  
colnames(gene) <- c("gene","g-Log2FC")
gene <- as.matrix(gene)

在这里插入图片描述
在这里插入图片描述

#将差异倍数数据与相关性数据x合并成一个数据#
jiuxiangxian <- merge(x,gene,by="gene")
jiuxiangxian <- merge(jiuxiangxian,meta,by="meta")

在这里插入图片描述

#筛选相关性绝对值大于0.8,p值小于0.05#
jiuxiangxian[,3] <- as.numeric(jiuxiangxian[,3])
jiuxiangxian[,4] <- as.numeric(jiuxiangxian[,4])
jiuxiangxian[,5] <- as.numeric(jiuxiangxian[,5])
jiuxiangxian[,6] <- as.numeric(jiuxiangxian[,6])
jxx <- jiuxiangxian[which(abs(jiuxiangxian$PCC)>0.8),]
jxx <- jxx[which(jxx$PCCP<0.05),]
#按九象限对数据分类#
#jxx增加一列#
ninequadrants <- NA
jxx <- cbind(jxx[,1:6],ninequadrants)

在这里插入图片描述

#去除LogFC值为NA的行,即第56列为NA的行#
jxx <- jxx[complete.cases(jxx[,5:6]),]
#九象限位置填充#
for(i in 1:dim(jxx)[1]){
  if((jxx[i,5]<=-1)&&(jxx[i,6]>=1))
  {jxx[i,7] <- 1}
  else if(((jxx[i,5]<1)&&(-1<jxx[i,5]))&&(jxx[i,6]>=1))
  {jxx[i,7] <- 2}
  else if((jxx[i,5]>=1)&&(jxx[i,6]>=1))
  {jxx[i,7] <- 3}
  else if((jxx[i,5]<=-1)&&((jxx[i,6]<1)&&(-1<jxx[i,6])))
  {jxx[i,7] <- 4}
  else if(((jxx[i,5]<1)&&(-1<jxx[i,5]))&&((jxx[i,6]<1)&&(-1<jxx[i,6])))
  {jxx[i,7] <- 5}
  else if((jxx[i,5]>=1)&&((jxx[i,6]<1)&&(-1<jxx[i,6])))
  {jxx[i,7] <- 6}
  else if((jxx[i,5]<=-1)&&(jxx[i,6]<=-1))
  {jxx[i,7] <- 7}
  else if(((jxx[i,5]<1)&&(-1<jxx[i,5]))&&(jxx[i,6]<=-1))
  {jxx[i,7] <- 8}
  else if((jxx[i,5]>=1)&&(jxx[i,6]<=-1))
    {jxx[i,7] <- 9}
}

在这里插入图片描述
可视化
https://blog.csdn.net/ziixiaoshenwang/article/details/115297657

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫霄zixiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值