tests/testthat/test-general-utilities.R

context("General Utility")
library("org.Hs.eg.db")

fakePvalues <- lapply(1:10, function(x) return(list(pvalue=runif(1,0,1))))
naPvalue <- list(pvalue=NA)
nullPvalue <- list(pvalue=NULL)

test_that("extractPvalues", {
  res = sapply(fakePvalues, extractPvalues)
  expect_true(is.na(extractPvalues(naPvalue)))
  expect_true(is.na(extractPvalues(nullPvalue)))
  expect_equal(fakePvalues[[1]]$pvalue, extractPvalues(fakePvalues[[1]]))
  expect_equal(res, unname(unlist(fakePvalues)))
})

vec <- "SYMBOL:MMP15"
vec1 <- c("SYMBOL:MMP15","ENTREZID:10", "SYMBOL:CMA1") #mixed ids
vec2 <- c("SYMBOL:MMP15", "SYMBOL:MMP24", "SYMBOL:CMA1")
vec3 <- c("ENTREZID:1","ENTREZID:10", "ENTREZID:100")
vec4 <- c("A1BG","NAT2","SYMBOL:ADA") #not all are graphite style
vec5 <- c("UNIPROT:Q86VV6", "UNIPROT:Q9Y5R2","UNIPROT:P23946","UNIPROT:Q4FEB3") #many2one
vec6 <- c("SYMBOL:MMP15", "SYMBOL:ENRICA", "SYMBOL:CMA1","SYMBOL:PAOLO") #symbols not in dictionary
vec7 <- c("ENTREZID:1","ENTREZID:ENRICA", "ENTREZID:100","ENTREZID:PAOLO") #entrez not in dictionary
vec8 <- NULL

test_that("conversionToSymbols", {
  expect_identical(conversionToSymbols(vec, "org.Hs.eg.db"), "MMP15")
  expect_identical(conversionToSymbols(vec1, "org.Hs.eg.db"), c("SYMBOL:MMP15","ENTREZID:10","SYMBOL:CMA1"))
  expect_identical(conversionToSymbols(vec2, "org.Hs.eg.db"), c("MMP15","MMP24","CMA1"))
  expect_identical(conversionToSymbols(vec3, "org.Hs.eg.db"), c("A1BG","NAT2","ADA"))
  expect_identical(conversionToSymbols(vec4, "org.Hs.eg.db"), c("A1BG","NAT2","SYMBOL:ADA"))
  expect_identical(conversionToSymbols(vec5, "org.Hs.eg.db"), c("MMP24","MMP24","CMA1","CMA1"))
  expect_identical(conversionToSymbols(vec6, "org.Hs.eg.db"), c("MMP15","ENRICA","CMA1","PAOLO"))
  expect_identical(conversionToSymbols(vec7, "org.Hs.eg.db"), c("A1BG","ENRICA","ADA","PAOLO"))
  expect_true(is.null(conversionToSymbols(vec8, "org.Hs.eg.db")))
})

test_that("extractPositivePortion", {
  expect_identical(extractPositivePortion(matrix(c(1,1,-1,2), 2)), matrix(c(1,1,0,2),2))
  expect_identical(extractPositivePortion(matrix(c(1,1,-1,1), 2), invert=T), matrix(c(0,0,1,0),2))
})

test_that("check_minimal_proportion", {
  cls <- c(rep(0, 10), rep(1,90))
  expect_true(check_minimal_proportion(cls, min_prop=0.1))
  cls[1] <- 1
  expect_false(check_minimal_proportion(cls, min_prop=0.1))
  cls <- c(rep(0, 90), rep(20,10))
  expect_true(check_minimal_proportion(cls, min_prop=0.1))
  cls[100] <- 0
  expect_false(check_minimal_proportion(cls, min_prop=0.1))
})


ex <- matrix(1:100, 10, 10,dimnames = list(letters[1:10], LETTERS[1:10]))
MO <- MOSClip::Omics(data=list(e=ex,
                               df=as.data.frame(ex)),
                     methods=c("summarizeWithPca", "summarizeWithPca"))
MO_err <- MOSClip::Omics(data=list(e=as.character(ex)), 
                         methods=c("summarizeWithPca"))
smallMO <- MOSClip:::filterMultiOmicsForSamples(MO, c("A"))

test_that("filterMultiOmicsForSamples", {
  expect_identical(smallMO@data[[1]], as.matrix(smallMO@data[[2]]))
  expect_error(filterMultiOmicsForSamples(MO, c("Z")))
  expect_error(filterMultiOmicsForSamples(MO_err, c("A")))
})
cavei/MOSClip documentation built on May 12, 2019, 5:22 p.m.