美文网首页
【转录组】文库标准化方法(实战篇)

【转录组】文库标准化方法(实战篇)

作者: Geekero | 来源:发表于2020-07-16 11:41 被阅读0次
    #For Normalize test
    #Author:Robin 20200619
    library(GenomicFeatures)
    
    #gtf len calculate
    txdb=makeTxDbFromGFF("/share/nas1/Data/DataBase/Genome/Homo_sapiens/Transcriptome/GRCh38_hg38/GRCh38.p13/genes/genes.gtf")  #read gtf file
    exon_txdb=exons(txdb)
    genes_txdb=genes(txdb)
    o = findOverlaps(exon_txdb,genes_txdb)
    t1=exon_txdb[queryHits(o)]
    t2=genes_txdb[subjectHits(o)]
    t1=as.data.frame(t1)
    t1$geneid=mcols(t2)[,1]
    
    g_l = lapply(split(t1,t1$geneid),function(x){
      tmp=apply(x,1,function(y){
        y[2]:y[3]
      })
      length(unique(unlist(tmp)))
    })
    g_l=data.frame(gene_id=names(g_l),length=as.numeric(g_l))
    
    write.csv(g_l,"/share/nas1/Data/Users/luohb/Pipline/Normalize/data/bf_gene_length.csv",row.names = F,quote=F)
    
    
    
    ########################## 01.FPKM #############################
    library(scater)
    ?calculateFPKM
    mtx2<-mtx
    mtx2$Length<-NULL
    
    fpkm_check<-calculateFPKM(mtx2, mtx$Length)
    
    
    """
    FPKM = total exon Fragments / (mapped reads(Millions) * exon length(KB))
    """
    len=mtx$Length
    FPKM = t(t(mtx2*10^9) / colSums(mtx2)) /len
    View(FPKM)
    View(fpkm_check)
    
    
    ######################## 02.TPM ##################
    """
    TPMi=(Ni/Li)*1000000/sum(Ni/Li+……..+ Nm/Lm)
    
        = Ni/li *10^6/sum(Ni/li)
    """
    
    len=mtx$Length/10^3 #转录本长度
    
    #先计算分子部分
    rpk = mtx2/len
    
    #在计算整体
    TPM =  t( t(rpk)*10^6 / colSums(rpk) )
    
    #check
    tpm_check <- calculateTPM(mtx2, len)
    
    View(TPM)
    View(tpm_check)
    View(rpk)
    
    
    ######################### 03.CPM ################
    """
    CPM = Total exon read counts/ Mapped reads(Millions)
        = gene A counts*10^6  / mapped reads 
    """
    CPM = t( t(mtx2) * 10^6 / colSums(mtx2))
    
    cpm_check = calculateCPM(mtx2)
    
    View(cpm_check)
    View(CPM)
    
    
    #### result save
    saveRDS(FPKM, '/share/nas1/Data/Users/luohb/Pipline/Normalize/result/FPKM.rds')
    saveRDS(TPM, '/share/nas1/Data/Users/luohb/Pipline/Normalize/result/TPM.rds')
    saveRDS(CPM, '/share/nas1/Data/Users/luohb/Pipline/Normalize/result/CPM.rds')
    

    相关文章

      网友评论

          本文标题:【转录组】文库标准化方法(实战篇)

          本文链接:https://www.haomeiwen.com/subject/dilbxktx.html