一文讲清楚原理 常用转录组的表达量定量工具RSEM与Salmon | 生信笔记10

传统的expression index

主要包含FPKM、RPKM、还有TPM,作为归一的工具,让不同重复、不同组别的表达量可以进行比较。

其中TPM被认为是更优的归一方法,用于映射单个基因的表达量在整体表达量中的情况。

RSEM(目前最准确的定量工具)

**RSEM ****(RNA-Seq by Expectation Maximization):**是一个转录本定量的计算工具,input file可以是FASTQ、BAM等。用于估算RNA-seq数据中每个基因和转录本的表达水平输出结果可以是read count、TPM或FPKM等多种格式,

这个计算需要基于转录本的长度但是并不是根据转录本的全长

from:26.stat115 chapter 4.6 rsem vs salmon_哔哩哔哩_bilibili

这张图可以看出在一个transcript中,两段的nt覆盖率较低,RSEM在定量过程中,会选取中间高质量的部分,从而减少bias。这也就比手动写脚本来计算表达量的方式要更优。(因为FPKM、TPM这些计算公式本身很简单,很多人可能会手动计算

对于不同的Isoform(可变剪切产生的不同transcript)


from:26.stat115 chapter 4.6 rsem vs salmon_哔哩哔哩_bilibili

RSEM还可以使用最大似然法(ML)提供精确的转录本表达量估计,考虑到每个配对到每个exon的reads来估算不同的isoform的表达量。

但是基于目前我们对转录本的了解有限,或者说有些未知的转录本没有被发现,这个表达量可能偶尔会存在一些偏误。

Salmon(运行速度更快)

虽然RSEM被认为是最精准的定量方法,但是它运行速度很慢。因为首先要map到基因组再定量,但是真正的转录区域其实并不大,像人类,只占了基因组的2%。可以通过将reads比对到转录本来进行定量,从而提高读取映射的速度。

Salmon特点:

  • 采用准确且快速的定量方法

  • 使用轻量级映射策略

  • 计算效率更高,运行速度更快

这两种工具都能够有效地计算基因和转录本的表达量,为研究人员提供可靠的转录组分析结果。选择使用哪种工具通常取决于具体的研究需求、数据规模和计算资源。

`tximport` 函数用于从转录本定量工具(如 Salmon、Sailfish、Kallisto、RSEM 等)的输出中导入转录本水平的丰度估计值,并将其汇总到基因水平。以下是该函数的基本使用方法和参数说明: #### 函数定义 ```R tximport(files, type = c("none", "salmon", "sailfish", "kallisto", "rsem"), txIn = TRUE, txOut = FALSE, countsFromAbundance = c("no", "scaledTPM", "lengthScaledTPM"), tx2gene = NULL, varReduce = FALSE, dropInfReps = FALSE, ignoreTxVersion = FALSE, geneIdCol, txIdCol, abundanceCol, countsCol, lengthCol, importer = NULL) ``` #### 参数说明 - `files`:一个字符向,包含每个样本的定量输出文件的路径。 - `type`:指定使用的定量工具,可选值为 `"none"`、`"salmon"`、`"sailfish"`、`"kallisto"`、`"rsem"` 等。 - `txIn`:逻辑值,指示输入是否为转录本水平的数据。 - `txOut`:逻辑值,指示是否输出转录本水平的数据。 - `countsFromAbundance`:指定如何从丰度估计值计算计数,可选值为 `"no"`、`"scaledTPM"`、`"lengthScaledTPM"`。 - `tx2gene`:一个数据框,包含转录本 ID 到基因 ID 的映射关系。 - `varReduce`:逻辑值,是否进行方差缩减。 - `dropInfReps`:逻辑值,是否丢弃无穷大的重复值。 - `ignoreTxVersion`:逻辑值,是否忽略转录本版本号。 - `geneIdCol`、`txIdCol`、`abundanceCol`、`countsCol`、`lengthCol`:指定 `tx2gene` 数据框中相应列的名称。 - `importer`:自定义的导入函数。 #### 使用示例 假设使用 Salmon 进行转录本定量,并且有一个 `tx2gene` 数据框用于转录本到基因的映射。 ```R # 加载 tximport 包 library(tximport) # 定义样本文件路径 files <- c("sample1/quant.sf", "sample2/quant.sf") # 定义 tx2gene 数据框 tx2gene <- data.frame( tx_id = c("TX1", "TX2", "TX3"), gene_id = c("GENE1", "GENE1", "GENE2") ) # 使用 tximport 导入数据 txi <- tximport(files, type = "salmon", tx2gene = tx2gene) # 查看导入的数据 head(txi$counts) ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值