怎样使用Mfuzz进行时间序列表达模式聚类分析

技术怎样使用Mfuzz进行时间序列表达模式聚类分析怎样使用Mfuzz进行时间序列表达模式聚类分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获

如何使用Mfuzz对时间序列表达模式进行聚类分析,很多新手都不是很清楚。为了帮助大家解决这个问题,下面小编就详细讲解一下。需要的人可以从中学习,希望你能有所收获。

在前一篇文章中,我们介绍了STEM软件,它可以对时间序列数据的基因表达模式进行聚类和分析。下面是另一个功能相同的R包Mfuzz。这个R包的地址如下

https://www . bio conductor . org/packages/release/bioc/html/Mfuzz . html

UZZ采用了一种新的聚类算法——模糊c均值算法,文献中称之为软聚类算法。与K-means等硬聚类算法相比,在一定程度上减少了噪声对聚类结果的干扰,该算法有效定义了基因与聚类之间的关系,即基因是否属于一个聚类,对应的值为memebership。

为了分析,我们只需要提供基因表达水平的数据。需要注意的是,Mfuzz默认你提供的数据是规范化的表达式级别,这意味着表达式级别必须在样本之间直接比较。对于FPKM和TPM,我们可以直接在样本之间进行比较。但是对于计数的量化结果,首先要对数据进行归一化,可以使用edgeR或者DESeq得到归一化后的数据进行后续分析。

假设已经有了归一化的表达式量,可以通过以下步骤得到聚类结果。

00-1010预处理包括读取数据,去除不同时间点表达过低或变化过少的基因。代码如下

x-read.table(

normalization . count . txt ',

row.names=1,

sep='\t ',

表头=T)

计数-数据.矩阵(x)

eset-new('ExpressionSet ',exprs=count)

#根据标准差去除样本间差异过小的基因。

Eset-filter.std(eset,min.std=0)需要注意的是,Mfuzz聚类需要一个ExpressionSet类型的对象,所以需要先构造这样一个带有expression quantity的对象。

00-1010聚类需要用一个数值来表征不同基因之间的距离。欧几里得距离用在Mfuzz中。因为普通欧氏距离的定义没有考虑不同维度之间的维度差异,需要先进行标准化。代码如下

ESET-standarded e(ESET)

1. 预处理

MFUZZ中的聚类算法需要提供两个参数。第一个参数是我们最终想要得到的簇数,这个参数是我们直接指定的。第二个参数叫做fuzzifier value,用小写字母M表示,一个最优值可以通过函数来计算。代码如下

#集群数量

c-6

#评估最佳M值

m-mestimate(eSet)

#聚类

Cl-mfuzz(eSet,c=c,m=m)将完整的聚类结果保存在对象Cl中。此对象的常见操作如下

#检查每个集群中的基因数量

cl $大小

#提取聚类下的基因

cl$cluster[cl$cluster==1]

#检查基因和聚类之间的隶属关系

Cl $会员

2. 标准化

代码如下

mfuzz.plot(

eSet,

cl,

mfrow=c(2,3),

New.window=FALSE)生成的图片如下

怎样使用Mfuzz进行时间序列表达模式聚类分析

对于感兴趣的表达模式,可以通过上述用法提取该聚类下的基因列表,并通过GO/KEGG等功能富集分析进行进一步挖掘。

阅读以上内容对你有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/80654.html

(0)

相关推荐

  • Python脚本程序与Perl怎么进行比较

    技术Python脚本程序与Perl怎么进行比较Python脚本程序与Perl怎么进行比较,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python脚本程序在

    攻略 2021年10月28日
  • Oracle数据用户密码过期处理方法是什么

    技术Oracle数据用户密码过期处理方法是什么这篇文章主要讲解了“Oracle数据用户密码过期处理方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle数据

    攻略 2021年11月5日
  • java项目会用到main方法吗(java main方法可以有几个)

    技术Java main方法面试题有哪些本篇内容主要讲解“Java main方法面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java main方法面试题有哪些”吧

    攻略 2021年12月22日
  • Python中的变量怎么赋值

    技术Python中的变量怎么赋值这篇文章主要讲解了“Python中的变量怎么赋值”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中的变量怎么赋值”吧!1 Pyt

    攻略 2021年12月10日
  • 2021.50 Quarkus

    技术2021.50 Quarkus 2021.50 Quarkus2018年的一次内部会议上,红帽中间件副总裁Mark Little说,他最担心的是一种新的编程语言(如go)能给用户提供更快的运行速度及

    礼包 2021年12月20日
  • 如何解析PHP及配置文件

    技术如何解析PHP及配置文件这篇文章将为大家详细讲解有关如何解析PHP及配置文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。PHP是什么PHP是Hypertext
    Pr

    攻略 2021年11月23日