# #——回声= FALSE,结果=“隐藏”,消息= FALSE ------------------------------- 需要(knitr)美元opts_chunk组(错误= FALSE,消息= FALSE,警告= FALSE, dpi = 30) knitr:: opts_chunk美元集(dev =“png”,fig.align = "中心 ") ## ---- 图书馆,回声= FALSE ------------------------------------------------------ 库(bayNorm)库(BiocStyle)图书馆(SummarizedExperiment)图书馆(SingleCellExperiment) # #——install_Bioconductor,eval = FALSE ----------------------------------------- # 库(BiocManager) # BiocManager::安装(“bayNorm ") ## ---- 安装,eval = FALSE ------------------------------------------------------ # 库(devtools) # devtools:: install_github(“WT215 / bayNorm ") ## ---- β,回声= TRUE, eval = TRUE ------------------------------------------------ 数据(EXAMPLE_DATA_list) #假设输入数据是SummarizedExperiment对象:# singlecellexperexperiment对象也可以在bayNorm中输入:#rse <- singlecellexperexperiment:: singlecellexperexperiment (assays=list(counts=EXAMPLE_DATA_list$inputdata)) BETA_est<- betafun (Data=rse,MeanBETA=0.06) summary(BETA_est$BETA) ## ----intro_bayNorm, echo=TRUE,eval=TRUE--------------------------------------- #返回3D数组规范化数据,从后验分布中提取20个样本:bayNorm_3D<-bayNorm(Data=rse, BETA_vec = NULL, mode_version=FALSE, mean_version=FALSE,S=20,verbose =FALSE, parallel =TRUE) #返回2D矩阵归一化数据(MAP of后部):#简单设置mode_version=TRUE,但保留mean_version=FALSE #返回2D矩阵归一化数据(后部均值):#简单地设置mean_version=TRUE,但保持mode_version=FALSE ## ----intro_bayNorm_sup, echo=TRUE,eval=TRUE----------------------------------- #现在,如果你想生成2D矩阵(MAP),使用之前生成的相同的#预估值:bayNorm_2D<-bayNorm_sup(Data=rse, PRIORS=bayNorm_3D$PRIORS, input_params=bayNorm_3D$input_params, mode_version=TRUE, mean_version =FALSE, verbose =FALSE) #或者你可能想使用之前生成的相同的先验#估计生成2D矩阵#(后验的平均值):bayNorm_2D < -bayNorm_sup (Data =证交所,先知先觉= bayNorm_3D先验美元,input_params = bayNorm_3D input_params美元,mode_version = FALSE, mean_version = TRUE, verbose = FALSE) # #——DE_fun呼应= TRUE, eval = FALSE --------------------------------------------- # 库(桅杆)#库(reshape2 ) # ######## SCnorm_runMAST3 ########## # SCnorm_runMAST3 < -功能(数据、NumCells){#如果(长度(昏暗的(数据))= = 2){#结果< -SCnorm_runMAST(数据,NumCells) #} else if(length(dim(Data))==3){# # library(foreach) # resultss<- foreach(sampleind=1:dim(Data)[3],.combine=cbind)%do%{# print(sampleind) # # qq<-SCnorm_runMAST(Data[,,sampleind], NumCells) # return(qq$adjpval) #} #} # return(resultss) #} # # SCnorm_runMAST <- function(Data,NumCells) {# # NA_ind<-which(rowsum (Data)==0) # Data = as.matrix(log2(Data+1)) # G2<-Data[,-seq(1,NumCells[1])] # G2<-Data[,-seq(1,NumCells[1])] # qq_temp<- rowMeans(G2)-rowMeans(G1) # qq_temp[NA_ind]=NA # # numGenes = dim(Data)[1] # datalong = melt(Data) # Cond = c(rep("c1", NumCells[1]*numGenes), rep("c2", NumCells[2]*numGenes)) # dataL = cbind(datalong, Cond) # colnames(dataL) = c("gene","cell","value","Cond") # dataL$gene = factor(dataL$gene) # dataL$cell = factor(dataL$cell) # vdata = FromFlatDF(dataframe = dataL, idvars = "cell", primerid = "gene", measurement = "value", id = numeric(0), cellvars = "Cond", featurevars = NULL, phenovars = NULL) # # zlm.output = zlm(~ Cond, vdata, method='glm', ebayes=TRUE) # # zlm.lr = lrTest(zlm.output, 'Cond') # # gpval = zlm.lr[,,'Pr(>Chisq)'] # adjpval = p.adjust(gpval[,1],"BH") ## Use only pvalues from the continuous part. # adjpval = adjpval[rownames(Data)] # return(list(adjpval=adjpval, logFC_re=qq_temp)) # } # # # # ## ----DE_run, echo=TRUE,eval=FALSE--------------------------------------------- # #Now, detect DE genes between two groups of cells with 15 cells in each group respectively # # #For 3D array # DE_out<-SCnorm_runMAST3(Data=bayNorm_3D$Bay_out, NumCells=c(15,15)) # med_pvals<-apply(DE_out,1,median) # #DE genes are called with threshold 0.05: # DE_genes<-names(which(med_pvals<0.05)) # # #For 2D array # DE_out<-SCnorm_runMAST3(Data=bayNorm_2D$Bay_out, NumCells=c(15,15)) # DE_genes<-names(which(DE_out$adjpval<0.05)) ## ----SessionInfo-------------------------------------------------------------- sessionInfo()