生信小白教程之Count转TPM,FPKM

相信很多科研工作者(不包括比我厉害的大佬们)在做转录组时,都是在公司做测序,然后数据也交给公司分析,又然后,期待做个差异分析,得出像下图那么完美的热图。
卖家秀

然而,然而,,我们得到的确实这样滴
买家秀

这,这,花红柳绿的什么玩意!!!!
大家表示很吃惊,一看文献原文,是专门挑出了差异基因,难怪这么好看,此时第一想到的就是测序公司客服,(微信问)在吗?好久不见回复(人家还有大单子,跑你这长途还不够油钱);拨打电话(前提是你有电话号),没人接,,,,TMD

于是想自己分析数据,然而

然而,,,会吗?

linux?
其实没有那么难,公司一般都会提供测序的count数据,自己转化成TPM,FPKM然后挑出显著差异基因做就O的K啦。
开始展示:
1.获取基因全长文件
贴心的我把它放到了网盘,请自取
链接:https://pan.baidu.com/s/1FxWPiEwGFobiWka8cNrnbw 提取码:0cp1 复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V4的分享
2.构建带有对应基因长度的表达矩阵

rm(list = ls())#删除目前工作目录的变量
library(xlsx)
library(readxl)
ann<- read_excel("Counts.xlsx")#读取基因文件
input<- read_excel("len.xlsx")#自己在Excel中把网盘里的txt文件基因和长度共两列提取出来
library(dplyr)
merge<-left_join(ann,input,by="Gene")#根据基因那列进行合并
merge <- na.omit(merge)#删除错误值行
write.csv(merge,file = "merge.csv",sep = "\t")#读出文件,直接往下运行也许

3,计算TPM

mycounts<-read.csv("merge.csv")
head(mycounts)
rownames(mycounts)<-mycounts[,1]
mycounts<-mycounts[,-1]
head(mycounts)#最后一列Length是基因长度

#TPM计算
kb <- mycounts$Length / 1000
kb
countdata <- mycounts[,1:45]
rpk <- countdata / kb
rpk
tpm <- t(t(rpk)/colSums(rpk) * 1000000)
head(tpm)
write.table(tpm,file="tpm.xls",sep="\t",quote=F)

4.计算RPKM

fpkm <- t(t(rpk)/colSums(countdata) * 10^6) 
head(fpkm)
write.table(fpkm,file="fpkm.xls",sep="\t",quote=F)

Over,是不是super简单。
我有一个愿望,我现在只有人的基因全长文件,谁要是有小鼠的基因全长文件,一定要联系我,我会把它后续加上。。。。
好人一生平安,阿门....

你可能感兴趣的:(生信小白教程之Count转TPM,FPKM)