对于二代数据的表达差异分析,理论上应该用reads counts进行计算。这个在我们论坛的专题帖已经有解释:

第14期“基因表达量计算和差异表达分析(下)”【视频】

www.omicshare.com/forum/thread-236-1-12.html

同时,在我们OS-tools已经有基于edgeR软件的差异分析工具。但依然有网友问,如果手头没有reads count数据,而只有RPKM/FPKM值该怎么办?

这个时候,就只能退而求其次,使用t检验或者方差分析。但注意,这两种检验是基于正态分布的检验方法,是不适用于二代数据的,对低丰度基因的检验会产生大量假阳性。不到万不得已不要使用这类方法。

如果非使用不可,可以:

使用以下的R脚本进行批量差异检验(t检验或方差分析);

请将在两组样本中表达量RPKM值均低于1的基因过滤掉(t检验和方差分析在低丰度基因中,假阳性过高,P value不可靠)。

请确定你认真看了上面两点使用建议,再开始看代码。

# t检验的代码如下:

a=read.table(“all_fpkm.txt”,header=T,sep=”\t”)

#预生成2个长度与输入文件行数相同的全为0的向量,将用于存储p value和差异倍数(log2FC)

Pvalue

log2_FC

# 2~4列是处理组1,5~7列是处理组2;

#将使用循环对每一行进行t检验

#如果某一行两组的标准差都等于0,将无法进行t检验,所以这些行使用NA替代

#每一行计算得到p value和log2FC将被加入原文件的后两列;

#计算log2FC时,每组均值加0.001,是为了防止分母为0导致bug;

for(i in 1:nrow(a)){

if(sd(a[i,2:4])==0&&a[i,5:7]==0){

Pvalue

log2_FC

}else{

y=t.test(as.numeric(a[i,2:4]),as.numeric(a[i,5:7]))

Pvalue

log2_FC

}

}

# 对p value进行FDR校正

fdr=p.adjust(Pvalue, “BH”)

# 在原文件后面加入log2FC,p value和FDR,共3列;

out

write.table(out,file=”ttest.out.xls”,quote=FALSE,sep=”\t”,row.names=FALSE)

##########################我的理解##################################

我感觉代码有问题,经过我改完以后代码如下(我的数据是2个重复,我的测试数据: test_of_yangl.txt ):最后我觉得这么算的P值不靠谱,不推荐使用自己算P的值

##setwd(“F:/”)

a=read.table("RA24C.txt",header=T,sep="\t")

a

#预生成2个长度与输入文件行数相同的全为0的向量,将用于存储p value和差异倍数(log2FC)

Pvalue

log2_FC

# 2~4列是处理组1,5~7列是处理组2;

#将使用循环对每一行进行t检验

#如果某一行两组的标准差都等于0,将无法进行t检验,所以这些行使用NA替代

#每一行计算得到p value和log2FC将被加入原文件的后两列;

#计算log2FC时,每组均值加0.001,是为了防止分母为0导致bug;

for(i in 1:nrow(a)){

if(sd(a[i,2:3])==0&&sd(a[i,4:5])==0){

Pvalue[i]

log2_FC[i]

}else{

y=t.test(as.numeric(a[i,2:3]),as.numeric(a[i,4:5]))

Pvalue[i]

log2_FC[i]

}

}

# 对p value进行FDR校正

fdr[i]=p.adjust(Pvalue[i], "BH")

# 在原文件后面加入log2FC,p value和FDR,共3列;

out

write.table(out,file="RA24C.out.xls",quote=FALSE,sep="\t",row.names=FALSE)

##############################################################

#方差分析的代码如下,与t检验相比,逻辑相同,只是有些细微的修改。

a=read.table(“all_fpkm.txt”,header=T,sep=”\t”)

#预生成2个长度与输入文件行数相同的全为0的向量,将用于存储p value和差异倍数(log2FC)

Pvalue

log2_FC

#确定分组信息

type

# 2~4列是处理组1,5~7列是处理组2;

#将使用循环对每一行进行方差检验

#两组表达量都是0的基因,不检验;

#每一行计算得到p value和log2FC将被加入原文件的后两列;

#计算log2FC时,每组均值加0.001,是为了防止分母为0导致bug;

for(i in 1:nrow(a)){

if(sum(a[i,2:4])==0&&sum(a[i,5:7])==0){

Pvalue[i]

log2_FC[i]

}else{

y=aov(as.numeric(a[i,2:7])~type)

Pvalue[i]

log2_FC[i]

}

}

# 对p value进行FDR校正

fdr=p.adjust(Pvalue, “BH”)

# 在原文件后面加入log2FC,p value和FDR,共3列;

out

write.table(out,file=”anova.out.xls”,quote=FALSE,sep=”\t”,row.names=FALSE)

另外,如果没有R基础的同学,看这一期视频,学完就基本可以保证正确使用这个脚本:

第12期在线交流 R语言入门——软件简介与实操【视频】

www.omicshare.com/forum/thread-133-1-1.html

备注:理论上如果你理解了这个方法,可以进行任何组间的差异检验。只要把检验方法的部分的相关语句替换就可以了,例如可以替换为秩和检验、相关性检验等;

脚本和测试数据我们已经上传了,请点击“阅读原文”跳转到论坛下载。

edger多组差异性分析_用R实现批量差异分析(t检验和方差分析),自己算P值相关推荐

  1. edger多组差异性分析_使用edgeR进行无重复差异表达分析

    写这篇文章一部分原因是填2年前的一个坑 转录组入门(7):差异表达分析. 另一部分原因是GQ最近又在搞一波无重复的差异表达分析, 所以专门去学了edgeR 我个人是不太推荐没有重复的差异表达分析,毕竟 ...

  2. edger多组差异性分析_简单使用DESeq2/EdgeR做差异分析

    DESeq2和EdgeR都可用于做基因差异表达分析,主要也是用于RNA-Seq数据,同样也可以处理类似的ChIP-Seq,shRNA以及质谱数据. 这两个都属于R包,其相同点在于都是对count da ...

  3. edger多组差异性分析_简单使用DESeq2/EdgeR做差异分析 – 生信笔记

    DESeq2和EdgeR都可用于做基因差异表达分析,主要也是用于RNA-Seq数据,同样也可以处理类似的ChIP-Seq,shRNA以及质谱数据. 这两个都属于R包,其相同点在于都是对count da ...

  4. edger多组差异性分析_转录组edgeR分析差异基因 | 生信菜鸟团

    转录组edgeR分析差异基因 edgeR是一个研究重复计数数据差异表达的Bioconductor软件包.一个过度离散的泊松模型被用于说明生物学可变性和技术可变性.经验贝叶斯方法被用于减轻跨转录本的过度 ...

  5. edger多组差异性分析_转录组edgeR分析差异基因

    edgeR是一个研究重复计数数据差异表达的Bioconductor软件包.一个过度离散的泊松模型被用于说明生物学可变性和技术可变性.经验贝叶斯方法被用于减轻跨转录本的过度离散程度,改进了推断的可靠性. ...

  6. edger多组差异性分析_【step by step】菜鸟学TCGA(4)-用edgeR做差异表达分析

    大家好,工作太忙,太久没有更新了,哎,泪-- 有的同学问我要代码,有的发了,后面的还没有发,一个一个发好累啊,大家有建议吗? 感觉某宝的这个课程也不贵,300多,有经济能力的小伙伴可以自己买,学得快些 ...

  7. edger多组差异性分析_使用edgeR进行两组间的差异分析

    edgeR 接受raw count的定量表格,然后根据样本分组进行差异分析,具体步骤如下 1.  读取文件 需要读取基因在所有样本中的表达量文件,示例如下gene_id ctrl-1 ctrl-2 c ...

  8. edger多组差异性分析_edgeR差异基因分析的一般过程

    基于转录组测序获得的定量表达值,识别差异表达变化的基因或其它非编码RNA分子,实际上方法还是非常多的.但就目前来看,DESeq2和edgeR是出现频率最高的两种方法了. DESeq2已经在上一篇文章中 ...

  9. edger多组差异性分析_edgeR之配对检验分析差异基因的使用教程

    edgeR的介绍 背景 RNA-seq表达谱与生物复制的差异表达分析. 实现一系列基于负二项分布的统计方法,包括经验贝叶斯估计,精确检验,广义线性模型和准似然检验. 与RNA-seq一样,它可用于产生 ...

最新文章

  1. java 反射代价_Java反射机制
  2. 视频光流估计综述:从算法原理到具体应用
  3. 解决ERROR 2003 (HY000): Can't connect to MySQL server on
  4. python介绍和用途-Python字典简介以及用法详解
  5. python映射类型-详解Python中映射类型(字典)操作符的概念和使用
  6. oracle定时任务可以备份么,Linux下Oracle设置定时任务备份数据库的教程
  7. javascript学习系列(19):数组中的Array.from方法
  8. 智能小车二十《摄像头和路由器装上小车》
  9. Datawhale 人工智能培养方案
  10. Vue的50个知识点
  11. linux rec命令_文件过多时ls命令为什么会卡住?
  12. DCGAN-深度卷积生成对抗网络-转置卷积
  13. 华南师大考研旅游管理系2010-2016年分数线汇总
  14. 网络编程——CS模型(总结)
  15. The North American Invitational Programming Contest 2016 I-Tourists
  16. JDK-8274609 JEP 421: Deprecate Finalization for Removal
  17. Android之画图
  18. 机器学习零基础?手把手教你用TensorFlow搭建图像识别系统
  19. python ----Parser使用
  20. html clear属性值,clear属性怎么用

热门文章

  1. oracle一次提交大量sql语句 begin end的使用
  2. jquery 封装幻灯插件_21个jQuery幻灯片插件
  3. s8 android调用相机,android-扎根的Galaxy S8上的设备所有者
  4. linux和手机通讯,在Linux的系统下使用红外进行手机通讯
  5. c35是什么意思_什么是C35混凝土?
  6. 硅谷的政治泡沫:反对特朗普,与美国大部分地区观念出现割裂
  7. 泰坦尼克号数据处理与预测
  8. 深度 | 剖析中国金融科技50强,数十万亿风口怎么追?
  9. 浙大版《C语言程序设计(第3版)》题目集习题4-11 兔子繁衍问题 (15 分)
  10. htmlcss,Hbuilder入门小项目——我的淘宝,相似