Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一行命令将count转为CPM/TPM/FPKM

一行命令将count转为CPM/TPM/FPKM

作者头像
生信技能树
发布于 2023-02-27 13:42:22
发布于 2023-02-27 13:42:22
3.9K00
代码可运行
举报
文章被收录于专栏:生信技能树生信技能树
运行总次数:0
代码可运行
实现代码

一行命令将count转为CPM/TPM/FPKM 的软件为rnanorm,是一个基于Python开发的命令行工具。安装可以通过命令安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install rnanorm

我以featureCounts的输出文件进行举例,用featureCounts对进行基因count计数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
featureCounts -T 10 -t exon -g gene_id -Q 10 --primary -p \
    -a gencode.vM25.annotation.gtf -F GTF -o sample.count \
    mapping/*.fil.bam 

得到的gene count在sample.count文件里

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# tail -n +2 sample.count 是排除第一行
$ tail -n +2 sample.count | sed '1s/Geneid/FEATURE_ID/g' | cut -f 1,7- > sample.count.tsv
$ head sample.count.tsv
FEATURE_ID      mapping/RNA.fb.e11.5.rep1.fil.bam       mapping/RNA.fb.e11.5.rep2.fil.bam       mapping/RNA.fb.e16.5.rep1.fil.bam       mapping/RNA.fb.e16.5.rep2.fil.bam
ENSMUSG00000102693.1    1       0       0       0
ENSMUSG00000064842.1    1       0       0       0
ENSMUSG00000051951.5    6       11      16      16
ENSMUSG00000102851.1    2       0       0       0
ENSMUSG00000103377.1    1       2       3       0
ENSMUSG00000104017.1    1       1       0       0
ENSMUSG00000103025.1    0       3       2       2
ENSMUSG00000089699.1    0       0       0       0
ENSMUSG00000103201.1    0       1       2       1

用cut将基因ID一列,和count数值的列提取出来。用sed将Geneid换成FEATURE_ID,因为当前版本rnanorm( 1.5.1)要求第一列的基因ID列名必须为FEATURE_ID

然后就是一行代码将count转为CPM/TPM/FPKM。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rnanorm sample.count.tsv --annotation gencode.vM25.annotation.gtf \
    --cpm-output sample.count.cpm.tsv
    --tpm-output sample.count.tpm.tsv \
    --fpkm-output sample.count.fpkm.tsv \
  • 位置参数为基因count文件
  • --annotation 基因组注释GTF文件
  • --cpm-output CPM输出文件
  • --tpm-output TPM输出文件
  • --fpkm-output FPKM输出文件

后面的前面

RNA-Seq测序得到的fastq数据比对至参考基因组,得到SAM/BAM文件,然后进行read count计数,得到基因表达信息。然而由于不同基因长度不同,基因长,自然容易获得更read count;不同批次数据测序量不同,数据测序量多,自然read count就会高了。所以不同基因表达量不能直接进行比较,需要进行标准化。

要对基因长度进行矫正,就除以基因长度:

  • 1000bp长度基因A count=1000, 矫正后1000/1000=1
  • 5000bp长度的基因B count=5000, 矫正后5000/5000=1

要对测序深度进行矫正,就除以总测序量:

  • 总read count=100000, 基因A read count 1000, 矫正后1000/100000
  • 总read count=200000, 基因B read count 2000, 矫正后2000/200000

CPM

CPM (count per million),对测序深度做了一个矫正。

CPM = (gene_read_count / total_count ) * 10^6

至于为啥乘一个million(10^6),我猜大概是因为gene_read_count / total_count数值太小了,不方便人查看,又英文中计数单位有个,十,百,千,百万,十亿。十亿(billion)较大了, 千(thousand)又太小了, million这个数量级刚好差不多,就乘这么个数值,在百万层级看基因表达量。

RPKM

RPKM(reads per kilobase per million),对测序深度和长度做了一个矫正。用于单端测序数据。

RPKM = (gene_read_count / (total_count*gene_length) * 10^6 * 10^3

基因count除以总read count,除以gene长度。然后避免数值太小,根据测序深度大小乘10^6, 基因长度就乘以一个10^3。

FPKM

RPKM(fragments per kilobase per million) 用于双端数据,一个fragment是一对reads。故FPKM = RPKM / 2

TPM

TPM(transcript per million), 基因FPKM 占总的FPKM的比例, TPM衡量基因在样本中的相对表达量,对同一个基因不同样本,其FPKM可能相同,但相对所有基因而言,其在不同样本中可能所占比例不同。

TPM = gene_fpkm / total_fpkm * 10^6

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
RNA-seq入门实战(三):在R里面整理表达量counts矩阵
连续两次求贤令:曾经我给你带来了十万用户,但现在祝你倒闭,以及 生信技能树知识整理实习生招募,让我走大运结识了几位优秀小伙伴!大家开始根据我的ngs组学视频进行一系列公共数据集分析实战,其中几个小伙伴让我非常惊喜,不需要怎么沟通和指导,就默默的完成了一个实战!
生信技能树
2022/07/26
21.1K0
RNA-seq入门实战(三):在R里面整理表达量counts矩阵
RNA-seq入门实战(二):上游数据的比对计数——Hisat2+ featureCounts 与 Salmon
连续两次求贤令:曾经我给你带来了十万用户,但现在祝你倒闭,以及 生信技能树知识整理实习生招募,让我走大运结识了几位优秀小伙伴!大家开始根据我的ngs组学视频进行一系列公共数据集分析实战,其中几个小伙伴让我非常惊喜,不需要怎么沟通和指导,就默默的完成了一个实战!
生信技能树
2022/07/26
5.2K0
RNA-seq入门实战(二):上游数据的比对计数——Hisat2+ featureCounts 与 Salmon
RNAseq数据分析中count、FPKM和TPM之间的转换
现在常用的基因定量方法包括:RPKM, FPKM, TPM。这些表达量的主要区别是:通过不同的标准化方法为转录本丰度提供一个数值表示,以便于后续差异分析。
DoubleHelix
2023/12/14
24.1K0
RNAseq数据分析中count、FPKM和TPM之间的转换
count转TPM/FPKM实战(GSE229904)
接下来是对学员的答疑部分,学员提了一个问题,他想知道怎么将我们的count值进行标准化转为tpm和fpkm值。我们技能树对这个转换已经介绍过非常多次啦:
生信技能树
2025/03/29
3680
count转TPM/FPKM实战(GSE229904)
全长转录组 | 三代全长转录组分析流程(PacBio & ONT )-- IsoQuant
今天我们介绍一款使用三代全长转录本数据进行转录本注释和定量的工具 - IsoQuant。2023年1月2日,康奈尔大学医学院Hagen U. Tilgner团队和圣彼得堡国立大学Andrey D. Prjibelski团队合作在Nature Biotechnology(NBT)杂志发表题为 “Accurate isoform discovery with IsoQuant using long reads” 的文章 (图1)。作者开发了 IsoQuant -- 一款使用内含子图(intron graphs)的计算工具,在有参考基因组注释或者无参的情况下能够利用长度长序列准确重构转录本。对于新的转录本发现,IsoQuant 使Oxford Nanopore(ONT)数据在有参或无参模式下的假阳性率分别降低了5倍和2.5倍。IsoQuant 同时也提高了Pacific Biosciences数据的性能。
三代测序说
2024/02/22
1.8K1
全长转录组 | 三代全长转录组分析流程(PacBio & ONT )-- IsoQuant
RNA-seq 详细教程:搞定count归一化(5)
差异表达分析工作流程的第一步是计数归一化,这是对样本之间的基因表达进行准确比较所必需的。
数据科学工厂
2023/01/29
1.9K0
stringTie:转录本组装和定量工具
对于转录组数据而言,最基础的分析就是基因和转录本水平的定量了,定量就是确定一个基因或者转录本的表达量,其中定量的方式有很多种。
生信修炼手册
2020/05/08
14K2
stringTie:转录本组装和定量工具
Counts FPKM RPKM TPM CPM 的转化
最近有粉丝自告奋勇希望可以把他自己在简书等平台的生物信息学笔记分享在我们公众号,在专业的舞台上跟大家切磋!
生信技能树
2022/06/08
4.1K0
鉴定lncRNA流程全套代码整理
前两期周更我们通过一篇文章的复现整理了mRNA和lncRNA分析基本流程,但并没有涉及新lncRNA的鉴定,本周的推文本质上是我个人学习鉴定lncRNA的全套流程笔记,整合了我们公众号往期的资源,对代码进行了勘误更新,内容非常详实。
生信菜鸟团
2023/08/23
3.7K1
鉴定lncRNA流程全套代码整理
转录组fpkm是什么意思_fpkm值越大表达量
在转录组测序(RNA-Seq)中,基因的表达量是我们关注的重点。基因表达量的衡量指标有:RPKM、FPKM、TPM。
全栈程序员站长
2022/09/20
13.9K0
基因芯片数据分析(六):DESeq2包的基本原理
DESeq2是另外一个分析差异基因的R包,它的功能很多,使用也比较复杂。我们在前面提到过,RPKM,FPKM与TPM是常用的用于均一化不同的样本reads数的方法,不过DESeq2和edgeR并不使用前面的三种方法,因为在对文库进行均一化时,存在两个问题,如下所示:
DoubleHelix
2019/12/13
14K1
转录组差异分析FPKM与count处理差别大吗
这些天来,我们一般都是处理上游定量好的count数据,然后进行下游的转录组分析。但是,我们查看GEO数据集时,会发现有些数据集并没有提供count数据,而仅仅提供了FPKM或者RPKM等格式的数据。那当数据集提供的是FPKM数据集时,我们还能处理吗。前面曾老师分享的推文中描述了FPKM的处理方式,具体见RNAseq数据,下载GEO中的FPKM文件后该怎么下游分析,评论区中有小伙伴谈到limma包的作者不推荐用limma处理FPKM数据,最好用原始数据进行分析。那用count与用FPKM去处理获得的差异基因具有巨大的差别吗?曾老师前两天提出了这个疑问,于是便有了今天的推文。接下来,我们就探索一下用count与用FPKM去处理获得的差异基因是否具有巨大差别吧?
生信菜鸟团
2023/01/05
12.4K1
转录组差异分析FPKM与count处理差别大吗
RNA-seq(6): reads计数,合并矩阵并进行注释
小结 计数分为三个水平: gene-level, transcript-level, exon-usage-level 标准化方法: FPKM RPKM TMM TPM
Y大宽
2018/09/10
7K0
RNA-seq(6): reads计数,合并矩阵并进行注释
看优秀本科生如何一周内学会Linux进而搞定RNA-seq上游分析
我是武汉大学基础医学专业第一届的学生,2016年9月刚进大学的时候就选了导师进入实验室接受科研训练。虽然我们实验室不是专门做生物信息学的,但第一次和导师正式交流的时候,她就建议我要学点生信。(巧合的是2016年9月也是生信菜鸟团转型生信技能树的时间点,如果所有的导师都如此明智就好了)
生信技能树
2020/04/14
8.9K1
看优秀本科生如何一周内学会Linux进而搞定RNA-seq上游分析
RNA-seq数据差异表达分析
分析转录组测序数据时,通常使用p值/q值和foldchange值来衡量基因的差异的表达水平。目前,大家普遍都认为转录组数据的read counts(即基因的reads数量)符合泊松分布。几个用于差异表达分析的R包如DESeq2和edgeR等,都是基于负二项分布模型设计的,整体而言结果相差不大。Limma包也可以用来分析RNA-seq数据,但主要用于分析芯片数据,现在用的人不多了。当然如果用泊松分布来做差异表达分析的话,也存在缺点,可能会忽视生物学样本间的个体差异。
阿凡亮
2020/04/13
4.4K0
基于Kallisto或Salmon的转录组定量流程
Kallisto和Salmon在RNA-seq数据分析中,相比于包含hisat2和STAR等软件的流程,展现出更高的处理速度。这主要归因于它们基于转录组序列reference(即cDNA序列)的特性和k mer比对原理。以下是关于Kallisto和Salmon在RNA-seq流程中速度优势的关键点归纳:
生信学习者
2024/06/13
2030
基于Kallisto或Salmon的转录组定量流程
基因芯片数据分析(五):edgeR包的基本原理
在转录组测序(RNA-Seq)中,基因的表达量是我们关注的重点。基因表达量的衡量指标有:RPKM、FPKM、TPM。
DoubleHelix
2019/12/13
9.8K2
转录组测序的count矩阵如何去批次呢(sva包的ComBat_seq函数)
很容易就拿到了count矩阵,但是早期大家喜欢RPKM(Reads Per Kilobase per Million reads)、FPKM(Fragments Per Kilobase of transcript per Million fragments)和TPM(Transcripts Per Million),这三种常用标准化指标。
生信菜鸟团
2024/05/11
1.8K0
转录组测序的count矩阵如何去批次呢(sva包的ComBat_seq函数)
你凭啥写“该基因在人体中高表达”--谁给你的勇气,梁静茹吗?
摸着你的良心,你有没有在文章的introduction里面煞有介事的介绍过某基因,你写“xxx基因是在人体中分布广泛、高表达且高保守的基因/蛋白,主要参与XXX等生物学过程”,套路,都是套路!
生信技能树
2018/12/12
2.9K0
你凭啥写“该基因在人体中高表达”--谁给你的勇气,梁静茹吗?
规范统一格式的GEO RNA-seq count及其标准化数据
参考网址:https://www.ncbi.nlm.nih.gov/geo/info/rnaseqcounts.html#why
用户11414625
2024/12/20
4690
规范统一格式的GEO RNA-seq count及其标准化数据
推荐阅读
相关推荐
RNA-seq入门实战(三):在R里面整理表达量counts矩阵
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验