使用limma包进行差异基因分析时,做最多的是两分类的,例如control组和disease组,但也会碰到按照序列进行的分组。这时,如果逐一使用两两比较求差异基因则略显复杂。其实开发limma包的大神们已经替我们考虑到。我自己當下limma包的PDF,仔细研读并将代码运行后分享给有需要的同道,相互学习。

library(limma)##加载包
load("GSE37761exp_groupfile-00.RData")#加载匹配过的基因表达矩阵
eset=exp ##将基因表达矩阵赋值给eset
targets<-read.csv("group_file.csv",row.names = 1)##读入样本数据,包括两列,
#第一列GSM号,第二列为样本分组#该数据集中实际样本分组中存在24h_1、24h_5、24h_21等,然而这不符合R的命名原则
targets$Target=gsub("_",".",targets$Target)##将"_"替换成“.”,也可以不替换
##该数据集中实际样本分组中存在24h_1、24h_5、24h_21等,然而这不符合R的命名原则,所以在没个分类前加一个“F”,具体自己定
targets$Target=c(paste0("F",c(targets$Target),collapse = NULL,sep=""))
colnames(targets)=c("FileName","Target")#更改列名,为了和limma包中的一致
lev<-unique(targets$Target)##使用unique()函数进行去重
f <- factor(targets$Target, levels=lev)
design <- model.matrix(~0+f) #样本矩阵
colnames(design) <- lev #更改列名为levels名
###两两之间的比较,求差异基因使用topTable函数
cont.wt <- makeContrasts("F12h.1-Fcontrol",#举例levels=design) fit <- lmFit(eset, design)
fit2 <- contrasts.fit(fit, cont.wt)
fit2 <- eBayes(fit2)
tT=topTable(fit2, adjust="BH",sort.by="logFC",n=Inf)
tT = subset(tT, select=c("adj.P.Val","P.Value","logFC"))
colnames(tT)=c("FDR","P.Value","logFC")
###
##后面可以设置fdr及logFC的阈值进行筛选,进而得到差异基因列表,此处略。##两组以上的比较,寻找差异基因,使用topTableF函数
cont.wt <- makeContrasts("F12h.1-Fcontrol",##举例"F24h.1-F12h.1","F5d.1-F24h.1","F10d.1-F5d.1",levels=design) fit <- lmFit(eset, design)
fit2 <- contrasts.fit(fit, cont.wt)
fit2 <- eBayes(fit2)
tT=topTableF(fit2, adjust="BH",sort.by="F",n=Inf)
##tT = subset(tT, select=c("adj.P.Val","P.Value","logFC")) 这一条和下一条代码需要根据自己需要进行更改,topTableF函数得到的结果中包括F值,而logFC则是没两组的比较,均得出了
##colnames(tT)=c("FDR","P.Value","logFC")

因为不支持PDF上传,最后附上limma包usersguide.pdf的下载地址。http://www.bioconductor.org/packages/3.2/bioc/vignettes/limma/inst/doc/usersguide.pdf


学习过程的就是分享的过程,分享的过程也是交流的过程,交流的过程就是进步的过程。

python 分析两组数据的差异_R语言limma包差异基因分析(两组或两组以上)相关推荐

  1. 数据探索(数据清洗)①—数据质量分析(对数据中的缺失值、异常值和一致性进行分析)

    Python介绍. Unix & Linux & Window & Mac 平台安装更新 Python3 及VSCode下Python环境配置配置 python基础知识及数据分 ...

  2. 细思极恐——R语言forestplot包画meta分析群体药动学常用森林图

    细思极恐--R语言forestplot包画meta分析群体药动学常用森林图 今天,笔者想分享一下最近科研作图的经历,最主要的就是用于群体药动学模型建立的森林图,其百度百科定义为: 森林图是以统计指标和 ...

  3. R语言limma包差异表达分析

    目录 一.数据准备 1.数据加载 2.做分组信息数据 3.表达数据样本ID顺序与样本信息数据匹配 二.数据预处理 (1)缺失值处理 (2)离群值处理 (3)数据归一化 三.数据探索 (1)查看数据是否 ...

  4. r语言 bsda包_使用R语言creditmodel包进行Vintage分析或留存率分析

    1 什么是vintage分析? Vintage分析(账龄分析法)被广泛应用于信用卡及信贷行业,这个概念起源于葡萄酒,即不同年份出产的葡萄酒的品质有差异,那么不同时期开户或者放款的资产质量也有差异,其核 ...

  5. 使用R语言creditmodel包进行Vintage分析或留存率分析

    1 什么是vintage分析? Vintage分析(账龄分析法)被广泛应用于信用卡及信贷行业,这个概念起源于葡萄酒,即不同年份出产的葡萄酒的品质有差异,那么不同时期开户或者放款的资产质量也有差异,其核 ...

  6. 合并相同数据的行_R语言笔记(六):数据框重塑(reshape2)

    数据处理主要内容包括: 1. 特殊值处理 1.1 缺失值 1.2 离群值 1.3 日期 2. 数据转换(base vs. dplyr) 2.1 筛选(subset vs. filter/select/ ...

  7. graphpad7.04多组比较p值_R语言缺失值处理(MICE/Amelia/missForest/Hmisc/mi)

    这是一篇对R语言中处理缺失值的整理,主要思路搬运自Medium上面一篇Harshitha Mekala写的文章Dealing with Missing Data using R,是我目前搜到的最全的关 ...

  8. r语言 相关性作图_R语言:多个基因的相关性分析与展示

    R语言:多个基因的相关性分析与展示.关于批量相关性分析,我们发过两个帖子.单基因批量相关性分析的妙用,又是神器!基于单基因批量相关性分析的GSEA.两两分析的肯定也是没有问题: 现在的问题是,如果是多 ...

  9. r语言的MASS包干什么的_R语言常用包汇总

    转载于:https://blog.csdn.net/sinat_26917383/article/details/50651464?locationNum=2&fps=1 一.一些函数包大汇总 ...

最新文章

  1. bootstrap解析-栅格系统
  2. 什么是CS/BS(一)转
  3. 全球最性感的13大仿真机器人 功能太全难把持!
  4. 特征选择--文本分类: 信息增益
  5. learning ddr pagesize calculate
  6. Springboot 2.x 单元测试 JUnit 5
  7. 怎么才能显示Eclipse中ConSole的全部输出内容
  8. java 并发_Java并发编程中断机制 so easy
  9. MFCWinInet学习
  10. 华为发布AI时代数据中心交换机:让网络瓶颈不再是束缚,AI算力提升一倍
  11. 宝塔面板如何部署Java项目教程【新版】
  12. 【车间调度】基于matlab免疫遗传算法求解多目标生产调度问题【含Matlab源码 710期】
  13. 测试用例设计正交试验法、功能图法
  14. android系统密码设置功能,手机锁屏设置!安卓手机锁屏密码设置技巧?
  15. 《雍正皇帝》文化专有词翻译策略的研究现状(纽马克)
  16. RationalDMIS基于CAD的编程测量
  17. 易保全:览契约文化,传契约精神
  18. 用 函数 输入并计算平均分等
  19. 小米盒子投屏+android,小米盒子投屏神器
  20. 【建议收藏】手把手带你搭建SSM项目

热门文章

  1. VTK修炼之道31:图像二值化_阈值法
  2. Delphi中建议使用的语句
  3. Java中Boolean是什么?
  4. servlet学习--Cookie小应用
  5. OneNote代码高亮插件(NoteHighLight)
  6. Jackson 注解 -- 使用构造器
  7. 操作系统(三十六)动态分区分配算法
  8. UNIX再学习 -- 进程关系
  9. 测试php框架漏洞,ThinkPHP框架通杀所有版本的一个SQL注入漏洞详细分析及测试方法...
  10. Bit-Z为什么成为熊市之光?