教程 | R语言中基于表达数据的时间序列分析

聚类分析大家应该不陌生,今天给大家介绍一个用于基于时间序列的转录组数据的聚类分析R包Mfuzz。此包的核心算法是基于模糊c均值聚类(Fuzzy C-Means Clustering,FCM)的软聚类方法,它的特色就是把聚类的特征进行归类,而不是像K-mean一样的样本的聚类。此外FCM 算法需要两个参数⼀个是聚类数⽬C,另⼀个是参数m。⼀般来讲C要远远⼩于聚类样本的总个数,同时要保证C>1。对于m,它是控制算法的柔性的参数,如果m 过⼤,则聚类效果会很次,⽽如果m过⼩则算法会接近硬聚类(HCM)聚类算法。首先看下包的安装:

原文链接:教程 | R语言中基于表达数据的时间序列分析

BiocManager::install('Mfuzz')

接下来我们通过实例来看下包的使用:

##数据载入data(yeast)

##缺失值的处理yeast.r <- filter.NA(yeast, thres=0.25)yeast.f <- fill.NA(yeast.r,mode="mean")#还可以是knn/wknn

##表达水平低或者波动小的数据处理tmp <- filter.std(yeast.f,min.std=0)

##标准化数据yeast.s <- standardise(yeast.f)

## m值评估m1 <- mestimate(yeast.s)

## 评估C聚类簇数tmp  <- Dmin(yeast.s,m=m1,crange=seq(4,40,4),repeats=3,visu=TRUE)

图中最小的值便是最优的簇数,我们可以进一步进行查找具体的数据:​​​​​​​

Cluster= seq(4,40,4)s=which(tmp==min(tmp))mcluster=Cluster[s]​​​​​​​
##聚类模型cl <- mfuzz(yeast.s,c=16,m=1.25)mfuzz.plot(yeast.s,cl=cl,mfrow=c(4,4),time.labels=seq(0,160,10))​​​​​​​

##查看各簇之间关系O <- overlap(cl)Ptmp <- overlap.plot(cl,over=O,thres=0.05)

此外此包还提供了可视化的操作界面,需要用下面命令启动:

Mfuzzgui()

按照界面中的操作也可以达到数据分析的效果。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值