## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup, message=F, warning=F---------------------------------------------- #remotes::install_github("Divo-Lee/SIEVEseq") ## ----------------------------------------------------------------------------- library(SIEVEseq) ## ----------------------------------------------------------------------------- data("clrCounts3") #500 genes, 200 samples per group, differential variability for the first 50 genes, #CLR-transformed counts table dim(clrCounts3) clrCounts3[1:5, c(1:3, 201:203)] ## ----------------------------------------------------------------------------- SN.plot(clrCounts3[2, 1:200]) # gene 2 in control group SN.plot(clrCounts3[2, 201:400]) # gene 2 in case group ## ----------------------------------------------------------------------------- clr.SN.fit(clrCounts3[2, 1:200]) # gene 2 in control group clr.SN.fit(clrCounts3[3:4, 201:400]) # gene 3 and gene 4 in case group ## ----------------------------------------------------------------------------- data("clrCounts3") #CLR-transformed counts table, 500 genes, 200 samples per group, #differential expression for the first 50 genes data("clrCounts2") #CLR-transformed counts table, 500 genes, 200 samples per group, #differential variability for the first 50 genes, dim(clrCounts3); dim(clrCounts2) #CLR-transformed counts table, 500 genes, 200 samples per group, #differential expression for the first 50 genes, groups <- c(rep(0,200), rep(1,200)) # 200 control samples, and 200 case samples clrseq_result1 <- clrSeq(clrCounts3, group = groups) # DE dataset clrseq_result2 <- clrSeq(clrCounts2, group = groups) # DV dataset ## ----------------------------------------------------------------------------- head(clrseq_result1, 3) # MLE, DE genes # tail(clrseq_result1, 3) # MLE, non-DE genes # ## ----------------------------------------------------------------------------- head(clrseq_result2, 3) # MLE, DV genes # tail(clrseq_result2, 3) # MLE, non-DV genes # ## ----------------------------------------------------------------------------- sieve_try1 <- clrSIEVE(clrSeq_result = clrseq_result1, alpha_level = 0.05, order_DE = FALSE, order_LFC = FALSE, order_DS = FALSE, order_sieve = FALSE) names(sieve_try1) ## ----------------------------------------------------------------------------- DE_test_result1 <- sieve_try1$clrDE_test # results of DE tests head(DE_test_result1, 3) # DE genes tail(DE_test_result1, 3) # non-DE genes ## ----------------------------------------------------------------------------- sieve_try2 <- clrSIEVE(clrSeq_result = clrseq_result2, alpha_level = 0.05, order_DE = FALSE, order_LFC = FALSE, order_DS = FALSE, order_sieve = FALSE) names(sieve_try1) DV_test_result2 <- sieve_try2$clrDV_test head(DV_test_result2, 3) tail(DV_test_result2, 3) ## ----------------------------------------------------------------------------- DS_test_result3 <- sieve_try2$clrDS_test head(DS_test_result3, 3) ## ----------------------------------------------------------------------------- SIEVE_results <- sieve_try1$clrSIEVE_tests head(SIEVE_results, 3) ## ----------------------------------------------------------------------------- violin.plot.SIEVE(data = clrCounts3, "gene1", group = groups, group.names = c("control", "case")) # DE gene (non-DV and non-DS) clrseq_result1[1,] # MLE, gene1 of clrCounts3. group 1: control; group 2: case ## ----message=F, warning=F----------------------------------------------------- #install.packages("compositions") #library(compositions) # a package for compositional data analysis # clr-transformation clr.transform <- function(data = NULL){ # data: count table, genes in rows and samples in columns data[data == 0] <- 1/2 # A pseudo count 0.5 is added if the count is zero clr.count <- t(clr(t(data))) clr.count <- matrix(as.numeric(clr.count), nrow = dim(data)[1], ncol = dim(data)[2]) row.names(clr.count) <- row.names(data) return(clr.count) }