1、整理数据,第一列为基因列表,后面为不同时期表达量。
2、
#加载。
library(Mfuzz)
#设置工作路径,初始化环境。
setwd('E:/R')
getwd()
rm(list=ls())
#把表达量文件另存为制表符分隔的txt文件,放入设置的工作路径中,导入表达量数据。
gene<-read.table('FPKM.txt',header=T,row.names=1,sep='\t')
#构建对象。
gene_fpkm<-data.matrix(gene)
eset<-new('ExpressionSet',exprs=gene_fpkm)
#去除超过25%数据缺失的基因。
gene.r<-filter.NA(eset, thres=0.25)
#用平均值填充缺失值。
gene.f<-fill.NA(gene.r,mode='mean')
#根据标准差去除样本间差异太小的基因。
tmp<-filter.std(gene.f,min.std=0)
#标准化。
gene.s<-standardise(tmp)
#聚类个数c。比如输入8。
c<-8
#计算最佳的m值。
m<-mestimate(gene.s)
#聚类。
cl<-mfuzz(gene.s, c=c, m=m)
#绘制折线图。
mfuzz.plot(gene.s,cl,mfrow=c(2,4),new.window=FALSE)
3、图片美化调整。
#调整图片排列(三行四列布局)
mfrow=c(3,4)
#调整配色(详见另一篇笔记——RColorBrewer使用方法)
library(RColorBrewer)#加载RColorBrewer调色板。
col<-c('#1E88E5','#43A047','#FDD835','#FB8C00','#E53935','#90A4AE')#输入色值,并赋值给col。
mfuzz.plot(gene.s,cl,mfrow=c(3,4),col,new.window=FALSE)#重新绘图,根据图片调整色值顺序。
4、输出相关信息。
#查看每类基因数目。
cl$size
#查看每类基因ID。
cl$cluster[cl$cluster==1]
#输出基因ID,路径为当时设置的工作路径。
write.table(cl$cluster,'output.txt',quote=F,row.names=T,col.names=F,sep='\t')