生信小白教程之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簡單。
我有一個愿望,我現在只有人的基因全長文件,誰要是有小鼠的基因全長文件,一定要聯系我,我會把它后續加上。。。。
好人一生平安,阿門....

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。