帮老婆写时序分析

#------
title: "Mfuzz"
author: "tf"
date: "2021/09/05"
#-----
rm(list=ls())
setwd('/Users/zhangjuxiang/Desktop/R time seq/')
df <- read.csv(file = "12-34 stage.csv")
df1 <- df[,-1]
#分组求均值
#aggregate用法上一篇原创推文已经介绍过了,不熟悉的可以去回顾一下
df2<-aggregate(df1[,colnames(df1)[2:ncol(df1)]],by=list(df$label),mean,na.rm= TRUE)
#把第一列设为行名
row.names(df2)<-df2[,1]
df3<-data.frame(t(df2[,-1]))
#第一次使用要下载
BiocManager::install("Mfuzz")
library("Mfuzz")
#构建对象
df3a<-as.matrix(df3)
df3Ex<- ExpressionSet(assayData = df3a)
#排除了超过25%的测量缺失的基因
df3F <- filter.NA(df3Ex,thres = 0.25)
#用相应基因的平均值表达值替换剩余的缺失值
df3F <- fill.NA(df3F,mode = 'mean')
#标准化
df3F <- standardise(df3F)
#m value
m <- mestimate(df3F)
#聚类
set.seed(2021)
#手动定义聚类个数 c
cl <- mfuzz(df3F,c=8,m=m)
#作图
pdf("mfuzz.pdf")
mfuzz.plot2(df3F, cl=cl,mfrow=c(4,4),centre=TRUE,x11=F,
            centre.lwd=1.0)
dev.off()
#批量导出每个聚类所包含的基因
dir.create(path="mfuzz",recursive = TRUE)
for(i in 1:8){
  potname<-names(cl$cluster[unname(cl$cluster)==i])
  write.csv(cl[[4]][potname,i],paste0("mfuzz","/mfuzz_",i,".csv"))
}


你可能感兴趣的:(帮老婆写时序分析)