RNA-seq中的基因表达量计算和表达差异分析

RNA-seq中的基因表达量计算和表达差异分析

差异分析的步骤:
1)比对;
2) read count计算;
3) read count的归一化;
4)差异表达分析;

背景知识:
1)比对:
普通比对: BWA,SOAP
开大GAP比对:Tophat(Bowtie2);
2) Read count(多重比对的问题):
丢弃
平均分配
利用Unique region估计并重新分配
表达量计算的本质
目标基因表达量相对参照系表达量的数值。
参照的本质:
( 1)假设样本间参照的信号值应该是相同的;
( 2)将样本间参照的观测值校正到同一水平;
( 3)从参照的数值,校正并推算出其他观测量的值。 
例如:Qpcr:目标基因表达量(循环数)相对看家基因表达量(循环数);RNA-seq:目标基因的表达量(测序reads数),相对样本RNA总表达量(总测序量的reads数),这是最常用的标准。
归一化的原因及处理原则:
1)基因长度
2)测序量
3)样本特异性(例如,细胞mRNA总量,污染等)前两者使用普通的RPKM算法就可以良好解决,关键是第三个问题,涉及到不同的算法处理。 
RNA-Seq归一化算法的意义:
基因表达量归一化:在高通量测序过程中,样品间在数据总量、基因长度、基因数目、高表达基因分布甚至同一个基因的不同转录本分布上存在差别。因此不能直接比较表达量,必须将数据进行归一化处理。 
RNA-seq差异表达分析的一般原则
1)不同样品的基因总表达量相似
2)上调差异表达与下调差异表达整体数量相似(上下调差异平衡)
3)在两组样品中不受处理效应影响的基因, 表达量应该是相近的(差异不显著)。
4)看家基因可作为表达量评价依据( 待定)

不同的算法比较:
以什么数值来衡量表达量:RPKM、FPKM、TPM
以什么作为参照标准:TMM(edgeR软件)、De seq矫正
RPKM:是Reads Per Kilobase per Million mapped reads的缩写,代表每百万reads中来自于某基因每千碱基长度的reads数。

本质:
1)以reads数为计算单位;
2)对基因长度(基因间的比较)和总数据量(样本间的比较)做矫正;
RPKM的弊端
1)由于可变剪切,同一基因有效转录区域长度未必相同(这个一般情况下可以不考虑,了解一下:Cufflinks软件考虑了这个问题)优化策略:外显子或转录本水平的表达量分析。
2) 使用reads数计算基因表达量有轻微误差(这里暂不展开,主要了解一下定义)优化策略:FPKM或 TPM
3) mRNA的总量未必相等。 
RPKM的优化:FPKm
 F = Fragment,即测序片段数量。这些片段都是从完整的cDNA打碎而来的;
本质:以文库中的片段数量为计算单位在Paired-end测序中,一个fragment就是两条PE reads构成的片段。由于是PE比对,理论上比SE比对更可靠。 
RPKM的优化:TPM
T = Transcripts
本质:以转录本的条数为计算单位。使用转录本的条数(或者说:转录本的测序深度),代替reads数,在一定条件下定量更准,尤其样本间表达基因总数差异很大的时候(例如,对照样本有1万个基因表达,另外处理组仅有4000个基因表达)。 
mRNA总量未必相等
mRNA总量不等——细胞本身不同
例如:活跃组织vs休眠的组织;癌细胞vs正常细胞
mRNA总量不等——污染
例如:核糖体污染外源RNA污染 
解决方法——不同算法比较
其中归一化算法介绍:
1)Total Count(TC):总reads数矫正
2)Upper Quartile(UQ):上四分之一分位数(总reads)
矫正
3)Median(Med);中位数(总reads数)矫正
4)Quantile (Q):基因芯片软件limma中的校正算法;
5)RPKM:总reads数,但引入了基因长度
6)几何平均数:Deseq软件中的算法;
7)TMM:edgeR软件中的算法;
8)RPKM
逻辑1:不同位置数值的稳定性不同

四分位数quartile:将数据按从小到大排列,并分成四等分,这样得到3个分割点,第一个分割点叫做lowerquartile,第二个叫Media,第三个叫Upper quartile
很显然,极大值具有极大不稳定性,而且可能会显著影
响总体之和(假设,我们之中有个马云,我们的总收入
有什么变化?)
 所以,Upper quartile和Median的数值,比总表达量之
和更加稳定,更适合作为参照。
逻辑2:表达量居中的基因的表达量值,其数值应该是相似的。
DESeq与edgeR,默认情况下都使用这一的逻辑校正。(DESeq and edgeR Bioconductor packages) 
Deseq:异常高表达的基因,会显著影响细胞中的总mRNA的数量。类似的,如果样本中受到不同程度的外源RNA,如病毒、真菌等的污染,也会显著影响样本总mRNA数,导致RPMK值的误差。对于这样的问题,Deseq尝试对数据进行矫正(矫正因子),使表达量处于中间位置的基因表达量应该是基本相同的(即使用表达量处于中间的基因表达量值作为参照,而减少高表达基因的作用)。 
Deseq: 校正因子=样本表达中位数/所有样本表达量中位数:回答了一个关键的问题:Deseq不同差异比较组间,计算得到的表达量值不同。因
为样本在变化,“所有样本表达量的中位数”也在变动。RPKM:总表达量为参照
Deseq:中位数为参照

TMM(edgeR):与Deseq类似,在去除高表达基因和差异最大的基因后,TMM也是要找到一个加权系数,使剩余的基因在被矫正后差异倍数可能小。TMM的加权系数是基于两两样本比较后推算获得的(也就是两组样本的比较,将产生与这次比较相关的加权系数)。然后将所有基因除以这个加权系数,从而保证大部分表达量居中的基因表达量最相似。 
不同RNA-seq表达量归一化算法的区别
Deseq类的校正算法:理论上更加稳定;但不同批次的比较会得到不同的表达量值,不利于进行多处理组/批次数据的统一分析(例如,趋势分析、共表达分析)校正会掩盖一些问题(例如:样本污染)
RPKM类的算法: 容易受异常高表达基因、外源污染等的干扰;但也更容易从结果的异常中,发现潜在问题;得到的表达量值是恒定的,多处理组/批次的数据可以合并分析。折中的方法:使用RPKM类的算法,但需要人工检查数据是否
异常。备注: Deseq软件也可以关闭校正的功能。

实际经验总结
总之:从多方面考虑,RPKM类算法,如果合理使用,依然是最优的。具体问题具体分析:在遇到问题的时候,找到问题的来源,从而给出解决方案(没有完美的流程,只有最佳解决方案)

原文地址:https://www.cnblogs.com/wangprince2017/p/9951026.html

时间: 2024-11-05 20:25:34

RNA-seq中的基因表达量计算和表达差异分析的相关文章

Houdini 中 Gray Scott Reaction-Diffusion算法的实现

这篇文章是吧很久以前学的一个神奇算法归一下档,在公交车上突然想起来了,觉得还是很有必要再仔细梳理一遍,对以后也许有用. 先看图再说话: Gray Scott Reaction-Diffusion算法, 在模拟微观细胞的运动或者类似的效果是非常神奇. 理论链接:http://www.karlsims.com/rd.html 原理:模拟两种物质之间在平面(暂时是平面)上的相互作用,动作分为反应与扩散. 公式: 右手边第一项为扩散,第二项为反应,第三项是供给,DA与DB为分散率,▽2A或B为相邻位置扩

RBAC在PHP中的实例还算可以

今天找了好多案例,但是都没有发现有具体的实例.大多就是TP里边的简单例子,现在我根据看到的几篇文章对RBAC有了自己的观点.下边是我的心得和例子.        直白点想要做好权限管理就首先要深层理解其含义.               我的理解就是现今流行的游戏定义:  RBAC 中有 用户----用户组----角色----权限----操作                                                    而在游戏中有:                  

测流量计算软件Kelton Engineering FloCalc v1.4.5 1CD

nPower PowerSurfacing RE v2.10.9769 for SolidWorks 2012-2015 Win64 1CD STAR-CCM+ v10.02.012-R8.Win64.Linux64-ISO 2DVD CFTurbo.v10.0.0.Win32_64 2CD ChemOffice Professional v15.0.0 1CD Comsol Multiphysics 5.1 with Update1-ISO 1DVD DFMPro.v4.0.0.2748.fo

.net 中两个日期算经过的月份数

1 DateTime startDate = DateTime.Parse("2014-11-1"); 2 DateTime endDate = DateTime.Parse("2015-9-1"); 3 int totalMonth = endDate.Year * 12 + endDate.Month - startDate.Year * 12 - startDate.Month;

sql server中根据地图经纬度算距离

从别的地方烤过来的,自己试了一下,可以计算 出来,不过正确不正确的就不太懂了. USE [niaoren]GO/****** Object:  UserDefinedFunction [dbo].[fnGetDistance]    Script Date: 2017/7/28 星期五 12:17:56 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO  --计算地球上两个坐标点(经度,纬度)之间距离sql函数      --作者:lord

没涉及到最值求解;观点:矩阵乘法无法表达出结果。 现实生活中事件、现象的数学表达

小结: 1. 矩阵就是一张普通的数表 矩阵乘法它表达的是一件具体的有现实生活场景的事件:但是不能借助它表达所有的事件. 它能,可能是只能,表达的是这个事件是通过列元素和行元素的相乘,而不能在拆分为单独的两个2行-列元素: 事件的原子不是某个行/列元素,而是一行/列元素. 3个菜市场卖着不同价格的白菜.萝卜.土豆:求总采购支出:采购量矩阵*价格矩阵 3个菜市场卖着不同价格的白菜.萝卜.土豆,现在在总采购支出计入运费,而不同的菜市场不同蔬菜的单位重量运费为价格的不同倍:例如第一个菜市场的白菜.萝卜.

RNA测序相对基因表达芯片有什么优势?

RNA测序相对基因表达芯片有什么优势? RNA-Seq和基因表达芯片相比,哪种方法更有优势?关键看适用不适用.那么RNA-Seq适用哪些研究方向?是否您的研究?来跟随本文了解一下RNA测序相对基因表达芯片有什么优势? 无假设的研究设计和更高的发现能力RNA-Seq是一种基于测序的强大方法,让研究人员能够打破传统技术的低效和花费,如实时定量PCR(RT-PCR)和芯片.无论是将RNA-Seq添加到现有的研究方法中,还是从一种方法彻底转换到另一种,RNA-Seq都带来了许多显而易见的优势.这种方法不

ORACLE中seq$表更新频繁的分析

在分析ORACLE的AWR报告时,发现SQL ordered by Executions(记录了按照SQL的执行次数排序的TOP SQL.该排序可以看出监控范围内的SQL执行次数)下有一个SQL语句执行非常频繁,一个小时执行了上万次: update seq$ set increment$=:2, minvalue=:3, maxvalue=:4, cycle#=:5, order$=:6, cache=:7, highwater=:8, audit$=:9, flags=:10 where ob

一次shell中seq的处理

一次shell中seq的处理 背景:用要shell 提取 文件中内容,文件名是用序列号如下生成,文件差不多有将近400多w个  如下:  www.ahlinux.com 原始脚本#! /bin/sh#str1="" #filecount=`ls -l /root/gjj | wc -l | awk '{print $1}'`#echo $filecount for n in `seq  $1 $2`dofilename="/windows_gjj/"${n}&quo