【R>>Mfuzz】时间序列分析

时间序列分析:对不同时间点(状态)转录组或蛋白表达谱数据,进行模糊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

参考链接:

  • 1.使用Mfuzz进行转录组表达模式聚类分析

  • 2.时间序列的聚类分析 (R包-Mfuzz)

  • 3.跟着Cell学作图 | 6.时间序列分析(Mfuzz包)

  • 4.Molecular characteristics associated with ferroptosis in hepatocellular carcinoma progression

你可能感兴趣的:(【R>>Mfuzz】时间序列分析)