#------
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"))
}
帮老婆写时序分析
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- PostgreSQL , TimescaleDB , 时间序列 , 物联网 , IoT 背景 随着物联网的发展,时...
- 今天青石的票圈出镜率最高的,莫过于张艺谋的新片终于定档了。 一张满溢着水墨风的海报一次次的出现在票圈里,也就是老谋...
- 一、jQuery简介 JQ是JS的一个优秀的库,大型开发必备。在此,我想说的是,JQ里面很多函数使用和JS类似,所...