前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >RNA-Seq的Counts和FPKM数据如何转换成TPM?

RNA-Seq的Counts和FPKM数据如何转换成TPM?

作者头像
DoubleHelix
发布于 2020-07-28 02:56:22
发布于 2020-07-28 02:56:22
25.9K00
代码可运行
举报
文章被收录于专栏:生物信息云生物信息云
运行总次数:0
代码可运行

我们做转录组分析,得到的数据通常是raw counts 的数据,raw counts 的数据有很多R包进行归一化。在TCGA数据库中下载的RNA-Seq的数据就有2种形式,raw counts 和FPKM,尽管有很多文章是直接利用FPKM进行分析的,但是FPKM存在不准确性,通常我们会使用TPM。关于什么是FPKM?什么是TPM?我在前面的文章中就有介绍:RNA-seq的counts,RPM, RPKM, FPK值到底有什么区别?。如果从原始的下机数据开始分析,那就根据自己需要进行转换,但通常我们大多数拿到的是raw counts数据,一般送测序,也会要求返回raw counts的数据,从数据库下载的数据我们通常也是选择raw counts数据或者FPKM的数据。那么我们如何将这些数据进行转换成TPM的数据呢?read count和FPKM结果都可以转成TPM,但是因为FPKM跟TPM的计算都考虑了基因长度,所以从FPKM转TPM最方便快捷。只需要按照下面公式就可以计算:

具体可参考前面的文章:RNA-seq的counts,RPM, RPKM, FPK值到底有什么区别?,这里提供的是R代码。

首先我们得有FPKM的数据,这里我以之前TCGA数据库的数据为例。数据可在文章【TCGA数据库33个Project的RNA-Seq转录组数据为你整理打包好了】中下载。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
load("F:/TCGA/HTSeq-FPKM/Rdata/data/TCGA-COAD-Exp.Rdata")
exp <- transomeData[["proteinCodingExpData"]][["Exp"]]

之前上传的数据是字符串,需要转换成数值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(dplyr)
exp <- exp %>% data.matrix() %>% as.data.frame()
head(exp)[,1:2]

首先,我们定义个函数,也就是上面的公式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FPKM2TPM <- function(fpkm){
  exp(log(fpkm) - log(sum(fpkm)) + log(1e6))
}

然后我们利用apply函数进行遍历,就可以转换啦。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TPMs <- apply(exp,2,FPKM2TPM)

除了FPKM转换成TPM外,其他的数据也可以进行转换。

  • Counts转TPM
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Counts2TPM <- function(counts, effLen){
  rate <- log(counts) - log(effLen)
  denom <- log(sum(exp(rate)))
  exp(rate - denom + log(1e6))
}
  • Counts转FPKM
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

Counts2FPKM <- function(counts, effLen){
  N <- sum(counts)
  exp( log(counts) + log(1e9) - log(effLen) - log(N) )
}
  • Counts转Effective counts
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Counts2EffCounts <- function(counts, len, effLen){
  counts * (len / effLen)
}

参考:https://haroldpimentel.wordpress.com/2014/05/08/what-the-fpkm-a-review-rna-seq-expression-units/

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

本文分享自 MedBioInfoCloud 微信公众号,前往查看

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

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

评论
登录后参与评论
1 条评论
热度
最新
elastic和graphQL可以混用吗
elastic和graphQL可以混用吗
回复回复点赞举报
推荐阅读
Node——activeError: error:0308010C:digital envelope routines::unsupported
启动项目报错error:0308010C:digital envelope routines::unsupported,其实很简单因为node版本的原因,本地默认的版本是v20.15.0,项目是老项目默认的版本是v16.16.0;
思索
2024/08/26
2810
activeError: error:0308010C:digital envelope routines::unsupported
苛求君子,宽纵小人,自以为明察秋毫,而实则反助小人张目——鲁迅 昨天遇到这个报错了: PS D:\project\promotion\vue\gridsome-starter-default-master> gridsome develop Gridsome v0.7.23 Initializing plugins... Load sources - 0s Create GraphQL schema - 0.03s Create pages and templates - 0.15s Genera
阿超
2022/11/16
9390
NodeJs——error:03000086:digital envelope routines::initialization error
vue2前端项目在服务器上打包报错,发现是高版本的node使用的是OpenSSL 3.0,导致的不兼容,所以先临时抛出下环境变量,继续使用老板本的OpenSSL的实现;
思索
2024/08/15
2320
babel-loader@8 requires Babel 7.x (the package '@babel/core'). If you'd like to use Babel 6.x ('babe
webpack报错 错误信息如下: babel-loader@8 requires Babel 7.x (the package '@babel/core'). If you'd like to use Babel 6.x ('babel-core'), you should install 'babel-loader@7'. at Function.Module._resolveFilename (internal/modules/cjs/loader.js:625:15) at Fun
小贝壳
2020/03/05
1.1K0
Syntax Error: Error: Cannot find module ‘node-sass‘
启动vue项目的时候,会出现这样的报错 Syntax Error: Error: Cannot find module ‘node-sass’
王小婷
2025/05/19
900
Syntax Error: Error: Cannot find module ‘node-sass‘
uni-app 安装 scss 引发的报错
最近接手了一个有点历史的小程序,用 uni-app 开发的,没有装 css 预处理器,开发效率有点低,装好之后控制台报错了:
小鑫
2022/04/26
2.7K0
NPM运行保存问题解决
百度了一下,是说版本不对,不是LTS版本,建议我更换Node版本 我本机安装了nvm管理工具,所以通过nvm去查询下node的版本信息
云叶知秋
2024/02/21
4310
多图详解,一次性搞懂Webpack Loader
Webpack 是一个模块化打包工具,它被广泛地应用在前端领域的大多数项目中。利用 Webpack 我们不仅可以打包 JS 文件,还可以打包图片、CSS、字体等其他类型的资源文件。而支持打包非 JS 文件的特性是基于 Loader 机制来实现的。因此要学好 Webpack,我们就需要掌握 Loader 机制。本文阿宝哥将带大家一起深入学习 Webpack 的 Loader 机制,阅读完本文你将了解以下内容:
童欧巴
2021/08/20
1.1K0
多图详解,一次性搞懂Webpack Loader
webpack-dev-server使用报错
参考 https://stackoverflow.com/questions/57724011/how-to-fix-cannot-find-module-webpack-bin-config-yargs
用户6379025
2022/12/26
5150
从零开始学VUE之Webpack(使用CSSLoader和StyleLoader转化样式文件)
拷贝一份项目重新命名为simpleloader(拷贝过程会慢,应为其中存在module依赖)
彼岸舞
2021/06/07
7750
从零开始学VUE之Webpack(使用CSSLoader和StyleLoader转化样式文件)
从零开始学VUE之Webpack(Html打包插件的使用)
看到的错误大概是不能读取属性中的 initialize方法,是一个没有定义的,经过查看源码,发现在最新的版本中确实没有这个方法了,后来看了下老师的版本是3.2.0,我的是5.3.1
彼岸舞
2021/06/07
8850
从零开始学VUE之Webpack(Html打包插件的使用)
nodejs 升级后, vue+webpack 项目 node-sass 报错的解决方法
关于 node 环境升级到 v8^ 以上,node-sass 报错的解决方法 今天给同事电脑升级了一下系统,顺便升级了所有的软件,发现原来好好的项目报错了。报错大致信息如下: ERROR Fail
FungLeo
2018/01/08
2.4K0
vue运行报错:SyntaxError: Cannot use import statement outside a module
PS C:\Users\wangting\Desktop\assets_web_admin\assets_web_admin> npm run dev > vue-element-admin@4.2.1 dev C:\Users\wangting\Desktop\assets_web_admin\assets_web_admin > vue-cli-service serve INFO Starting development server... 10% building 2/2 modules
王小婷
2020/12/31
3.2K0
mac下使用vue create 项目名称 创建项目后无法运行ERROR  Error: Cannot find module 'vue-template-compiler/package.json'
promote:vue_pro wangxinqiang$ npm run serve
botkenni
2019/09/03
6.1K0
mac下使用vue create 项目名称 创建项目后无法运行ERROR  Error: Cannot find module 'vue-template-compiler/package.json'
vite配置vite-plugin-style-import插件后启动报错
不管报什么错,大部分是因为 node版本不够,至少是node 14+的版本才可以,我使用的是node v12.2.0
蓓蕾心晴
2022/05/09
1.7K0
【第9期】webpack入门学习手记(三)
由于微信不允许外部链接,你需要点击页面尾部左下角的阅读原文,才能访问文中的链接。 距离上一次更新这个系列,过去了两天。最近实在是有点忙,没有挤出时间整理。感觉日更还真是困难以下是正文。 管理资源 如果看过之前的系列文章,应该会有一个学习项目webpackStudy,可以从文章下方找到之前的链接。官网给出的示例都是在一个项目中的html页面、package.json和webpack.config.js中进行修改。我为了保留每一小节的代码,并没有按照官网给出的方案处理,而是重新新建的配置文件。可以通过腾讯云开发
siberiawolf
2020/03/24
1.1K0
【第9期】webpack入门学习手记(三)
npm run dev启动报错:Error: Cannot find module 'semver'
PS C:\Users\wangting\Desktop\Wisdom_admin\wisdom_admin> npm run dev > eladmin-web@2.6.0 dev C:\Users\wangting\Desktop\Wisdom_admin\wisdom_admin > vue-cli-service serve internal/modules/cjs/loader.js:985 throw err; ^ Error: Cannot find module 'semver
王小婷
2021/11/24
4K0
npm run dev启动报错:Error: Cannot find module 'semver'
Error: Cannot find module ‘webpack-cli/bin/config-yargs‘的解决方法
Webpack 踩坑笔记: webpack-dev-server 启动命令失败(Error: Cannot find module ‘webpack-cli/bin/config-yargs‘) 果然是版本的问题,引发的血案,之前 "webpack-cli": "^3.3.12", "webpack": "4.16.5", "webpack-bundle-analyzer": "2.13.1", "webpack-cli": "^3.1.0", "webpack-dev-server": "^3.1.5", 认真查询后发现,应该降级webpack-cli的版本, 执行:卸载安装,会成功!
张哥编程
2024/12/13
2380
Error: Cannot find module ‘webpack-cli/bin/config-yargs‘的解决方法
找不到node_modules/node-sass/vendor目标的解决办法
但是npm run 命令时出错: no such file or directory, scandir ‘/app/admin/node_modules/node-sass/vendor’
程裕强
2021/05/24
4.7K0
找不到node_modules/node-sass/vendor目标的解决办法
Vue学习笔记之opensslErrorStack: [ ‘error:03000086:digital envelope routines::initialization error‘ ]的问题
将NodeJS版本版本降低到项目制定的版本; 在重新安装之前,一定要卸载干净,具体的卸载方式可以参考这个链接: windows如何把已安装的nodejs高版本降级为低版本(图文教程)
Jetpropelledsnake21
2023/03/07
6.8K0
Vue学习笔记之opensslErrorStack: [ ‘error:03000086:digital envelope routines::initialization error‘ ]的问题
推荐阅读
相关推荐
Node——activeError: error:0308010C:digital envelope routines::unsupported
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档