前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言中基于表达数据的时间序列分析

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

作者头像
一粒沙
发布2022-06-07 18:10:46
1.1K0
发布2022-06-07 18:10:46
举报
文章被收录于专栏:R语言交流中心R语言交流中心

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

代码语言:javascript
复制
BiocManager::install('Mfuzz')

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

代码语言:javascript
复制
##数据载入
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)
代码语言:javascript
复制
##标准化数据
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)

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

代码语言:javascript
复制
Cluster= seq(4,40,4)
s=which(tmp==min(tmp))
mcluster=Cluster[s]
代码语言:javascript
复制
##聚类模型
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))
代码语言:javascript
复制
##查看各簇之间关系
O <- overlap(cl)
Ptmp <- overlap.plot(cl,over=O,thres=0.05)

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

代码语言:javascript
复制
Mfuzzgui()

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档