使用DEseq2計算FPKM后計算TPM

使用DEseq2對RNA-seq數(shù)據(jù)進行分析,并計算FPKM和TPM。

該過程使用GenomicFeatures包獲取外顯子長度,并計算非重疊外顯子長度之和作為基因長度。選取這一因素作為基因長度是參考文章http://www.itdecent.cn/p/3c21da32d7a4


step1. 安裝并加載包:

if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager",repos = "https://mirrors.#edu.cn/CRAN/") if (!requireNamespace("GenomicFeatures", quietly = TRUE)) BiocManager::install("GenomicFeatures") if (!requireNamespace("DESeq2", quietly = TRUE)) BiocManager::install("DESeq2")

library(GenomicFeatures)

library(DESeq2)

step2. 讀取gtf文件,計算基因長度:

txdb <- makeTxDbFromGFF("84kV1_3.gtf", format = "gtf", circ_seqs = character())

? ebg <- exonsBy(txdb, by="gene")

? exon_gene_sizes <- sum(width(reduce(ebg)))

step3. 讀取DEseq2所需文件:

data_in = read.csv("mycounts1.csv", head=TRUE,row.names =1, check.names = FALSE)

countData = as.data.frame(data_in)

colData = read.csv("mymeta-hj.csv", head=TRUE)

names(colData)=c("id", "condition")

step4. 構(gòu)建DEseq2數(shù)據(jù),并使用fpkm()計算FPKM值

dds <- DESeqDataSetFromMatrix(countData = countData,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? colData = colData,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? design = ~ condition)

? mcols(dds)$basepairs <- exon_gene_sizes

? fpkm_out = fpkm(dds)

? write.table(as.data.frame(fpkm_out), file="fpkm_out.txt",sep="\t",quote = FALSE)

注:這一步本來使用的rowRanges(dds)<-?ebg ,但后續(xù)分析過程中發(fā)現(xiàn),這樣導(dǎo)入基因長度可能會出現(xiàn)counts和length不匹配的情況,即將一個基因的長度賦值給另一個基因。原因是?ebg <- exonsBy(txdb, by="gene")這一步會按照基因id排序,而countDATA是按照輸入counts文件的基因順序,rowRanges并沒有按照基因id將數(shù)據(jù)合并,而是直接合并。使用mcols(dds)$basepairs的方式可以避免這一情況,將數(shù)據(jù)按照geneid合并。

step5. FPKM轉(zhuǎn)換成TPM

fpkm<-read.table("fpkm_out.txt", sep = "\t", head=TRUE, row.names = 1, check.names = FALSE)

head(fpkm)

fpkmToTpm <- function(fpkm){

? exp(log(fpkm) - log(sum(fpkm)) + log(1e6))

}

tpms <- data.frame(apply(fpkm,2,fpkmToTpm), check.names = FALSE)

head(tpms)

colSums(tpms)

write.table(as.data.frame(tpms), file="TPM_out.txt",sep="\t",quote = FALSE)


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容