使用Mfuzz进行转录组表达模式聚类分析
时间:2022-07-23
本文章向大家介绍使用Mfuzz进行转录组表达模式聚类分析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Mfuzz是用来进行不同时间点转录组数据表达模式聚类分析的R包,使用起来非常方便,直接输入不同样本归一化后的counts或者FPKM及TPM值就可进行聚类。
输入文件的格式很简单:
行为基因,列为样本,保存为制表符分隔的txt文件。
## 安装R包
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("Mfuzz")
## 加载R包
library("Mfuzz")
## 导入基因表达量
gene <- read.table("input.txt",header = T,row.names=1,sep="t")
## 转换格式
gene_tpm <- data.matrix(gene)
eset <- new("ExpressionSet",exprs = gene_tpm)
## 过滤缺失超过25%的基因
gene.r <- filter.NA(eset, thres=0.25)
由于输入的表达量中不允许有缺失值NA出现,所以我们要填补缺失值。
## mean填补缺失
gene.f <- fill.NA(gene.r,mode="mean")
## knn/wknn方法表现更好,但是计算起来比较复杂
gene.f <- fill.NA(gene.r,mode="knn")
gene.f <- fill.NA(gene.r,mode="wknn")
## 过滤标准差为0的基因
tmp <- filter.std(gene.f,min.std=0)
## 标准化
gene.s <- standardise(tmp)
聚类时,我们需要输入两个参数,c和m。c是我们期望的聚类个数,由自己定义。m由mestimate计算得到。
## 聚类个数
c <- 6
## 计算最佳的m值
m <- mestimate(gene.s)
## 聚类
cl <- mfuzz(gene.s, c = c, m = m)
## 查看每类基因数目
cl$size
## 查看每类基因ID
cl$cluster[cl$cluster == 1]
## 输出基因ID
write.table(cl$cluster,"output.txt",quote=F,row.names=T,col.names=F,sep="t")
## 绘制折线图
mfuzz.plot(gene.s,cl,mfrow=c(2,3),new.window= FALSE)
可以用mfrow调整图片排列,mfrow=c(2,3)表示两排三列。
参考资料:
https://www.jianshu.com/p/195f58a249ad
https://www.bioconductor.org/packages/release/bioc/vignettes/Mfuzz/inst/doc/Mfuzz.pdf
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 微信小程序发送订阅消息的方法(php 为例)
- Laravel5.5 动态切换多语言的操作方式
- Laravel 实现添加多语言提示信息
- Laravel监听数据库访问,打印SQL的例子
- PHP Swoole异步读取、写入文件操作示例
- PHP调用QQ互联接口实现QQ登录网站功能示例
- laravel解决迁移文件一次删除创建字段报错的问题
- laravel 错误处理,接口错误返回json代码
- Thinkphp 3.2框架使用Redis的方法详解
- Laravel validate error处理,ajax,json示例
- PHP 图片合成、仿微信群头像的方法示例
- python写文件时覆盖原来的实例方法
- Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
- PHP判断当前使用的是什么浏览器(推荐)
- PHP 计算两个时间段之间交集的天数示例