怎样使用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)

相关推荐

  • 牛客网面试题

    技术牛客网面试题 牛客网面试题目录
    一、JAVA
    二、计算机网络
    三、操作系统
    四、项目
    五、数据库
    第六部分 框架
    第七部分 设计模式
    第八部分 数据结构和算法
    第九部分 Linux
    ########

    礼包 2021年12月20日
  • ?【Java深层系列】「技术盲区」让我们一起探索一下Netty(Java)底层的“零拷贝Zero-Copy”技术,上)

    技术?【Java深层系列】「技术盲区」让我们一起探索一下Netty(Java)底层的“零拷贝Zero-Copy”技术,上) ?【Java深层系列】「技术盲区」让我们一起探索一下Netty(Java)底层

    礼包 2021年12月24日
  • 多用户注册登录函数封装版

    技术多用户注册登录函数封装版 多用户注册登录函数封装版要求:
    1.基于文件实现用户注册及登录功能
    2.多用户模式,注册登录功能可循环执行
    3.将功能封装成函数def login():"""用于用户登录的

    礼包 2021年11月15日
  • 如何理解jmeter

    技术如何理解jmeter今天就跟大家聊聊有关如何理解jmeter,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 1. jmeter环境

    攻略 2021年11月17日
  • 1446. Consecutive Characters

    技术1446. Consecutive Characters 1446. Consecutive Characters/**
    1446. Consecutive Characters
    https://l

    礼包 2021年12月16日
  • Oracle与PostgreSQL内置的编程语言有什么不同

    技术Oracle与PostgreSQL内置的编程语言有什么不同本篇内容主要讲解“Oracle与PostgreSQL内置的编程语言有什么不同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带

    攻略 2021年11月8日