【R>>Mfuzz】时间序列分析
2021-06-25 本文已影响0人
高大石头
时间序列分析:对不同时间点(状态)转录组或蛋白表达谱数据,进行模糊c均值聚类(fuzzy c-means clustering, FCM),找出具有相似表达模式的基因或蛋白并聚类。输入数据:归一化后的counts或者FPKM/TPM数据都可以。
常用分析方法:
- Mfuzz包
- Java版的STEM(≤8个梯度)
下面就来学习下R包-Mfuzz
1.软件安装
BiocManager::install('Mfuzz',ask=F,update = F)
library(Mfuzz)
2.示例数据
木舟笔记df <- readxl::read_xlsx("D:/jianshu/R-mufzz/df_umap.xlsx", sheet = 2)
df1 <- df[, -1]
df2 <- aggregate(df1[, colnames(df1)[2:ncol(df1)]], by = list(df1$label), mean, na.rm = T)
rownames(df2) <- df2[, 1]
df3 <- data.frame(t(df2[, -1]))
3.Mfuzz分析
df3a <- as.matrix(df3)
df3Ex <- ExpressionSet(assayData = df3a)
df3F <- filter.NA(df3Ex, thres = 0.25) #剔除超过25%测量缺失的及基因
5038 genes excluded.
df3F <- fill.NA(df3F, mode = "mean") #缺失值填充
df3F <- standardise(df3F) #标准化
set.seed(2021)
cl <- mfuzz(df3F, c = 8, m = 1.25) #手动设置聚类数
mfuzz.plot2(df3F, cl = cl, mfrow = c(4, 4), centre = T, x11 = F, centre.lwd = 0.2)
# 批量输出聚类所含的基因
dir.create(path = "mfuzz", recursive = T)
for (i in 1:8) {
potname = names(cl$cluster[unname(cl$cluster) == i])
write.csv(cl[[4]][potname, i], paste0("mfuzz", "/mfuzz_", i, ".csv"))
}
备注:该笔记分析整理自推文跟着Cell学作图 | 6.时间序列分析(Mfuzz包),禁止用于商业用途,如有侵权,请联系删除。
4. 实战案例(TCGA版)
PMID: 32936424参考链接: