Nothing
library(Racmacs)
library(testthat)
context("Test reading and editing of strain details")
# Load the map and the chart
map <- read.acmap(filename = test_path("../testdata/testmap.ace"))
## Point attributes
ptattributes <- tibble::tribble(
~attr, ~settable,
"Names", TRUE
)
test_that("Edit map strain details", {
# Name testing
for (n in seq_len(nrow(ptattributes))) {
property <- ptattributes$attr[n]
edit_supported <- ptattributes$settable[n]
agGetterFunction <- get(paste0("ag", property))
srGetterFunction <- get(paste0("sr", property))
`agGetterFunction<-` <- get(paste0("ag", property, "<-"))
`srGetterFunction<-` <- get(paste0("sr", property, "<-"))
# Test setting
ag_names_new <- paste0(agGetterFunction(map), "_NEW")
sr_names_new <- paste0(srGetterFunction(map), "_NEW")
if (edit_supported) {
agGetterFunction(map) <- ag_names_new
srGetterFunction(map) <- sr_names_new
expect_equal(agGetterFunction(map), ag_names_new)
expect_equal(srGetterFunction(map), sr_names_new)
} else {
expect_error(agGetterFunction(map) <- ag_names_new)
expect_error(srGetterFunction(map) <- sr_names_new)
}
}
# Date testing ------
new_agDates <- rep("2018-01-04", numAntigens(map))
agDates(map) <- new_agDates
expect_equal(agDates(map), new_agDates)
})
# Getting and setting groups
test_that("Getting and setting groups", {
ag_groups <- paste("GROUP", rep(1:5, each = 2))
sr_groups <- paste("GROUP", 1:5)
expect_equal(agGroups(map), NULL)
expect_equal(srGroups(map), NULL)
expect_equal(agGroupValues(map), rep(0, 10))
expect_equal(srGroupValues(map), rep(0, 5))
agGroups(map) <- ag_groups
srGroups(map) <- sr_groups
expect_equal(agGroups(map), as.factor(ag_groups))
expect_equal(srGroups(map), as.factor(sr_groups))
agGroups(map) <- NULL
srGroups(map) <- NULL
expect_equal(agGroups(map), NULL)
expect_equal(srGroups(map), NULL)
})
# Known and unknown dates
test_that("Mix of known and unknown dates", {
map <- acmap(
titer_table = matrix(c("<10", "40", "80", "160"), 2, 2)
)
agDates(map) <- c("", "2018-01-01")
expect_equal(
c("", "2018-01-01"),
agDates(map)
)
})
# Getting and setting clades
test_that("Getting and setting clades", {
expect_equal(numAntigens(map), length(agClades(map)))
expect_equal(numSera(map), length(srClades(map)))
new_ag_clades <- as.character(seq_len(numAntigens(map)))
new_ag_clades[c(2, 4)] <- "a"
new_sr_clades <- as.character(seq_len(numSera(map)))
new_sr_clades[c(1, 2)] <- "b"
expect_error(agClades(map) <- new_ag_clades)
expect_error(srClades(map) <- new_sr_clades)
new_ag_clades <- as.list(new_ag_clades)
new_sr_clades <- as.list(new_sr_clades)
agClades(map) <- new_ag_clades
srClades(map) <- new_sr_clades
expect_equal(agClades(map), new_ag_clades)
expect_equal(srClades(map), new_sr_clades)
tmp <- tempfile(fileext = ".ace")
save.acmap(map, tmp)
map <- read.acmap(tmp)
unlink(tmp)
expect_equal(agClades(map), new_ag_clades)
expect_equal(srClades(map), new_sr_clades)
})
# Getting and setting antigen lab ids
test_that("Getting and setting antigen lab ids", {
expect_equal(numAntigens(map), length(agLabIDs(map)))
new_ag_labids <- as.character(seq_len(numAntigens(map)))
new_ag_labids[c(2, 4)] <- "a"
expect_error(agLabIDs(map) <- new_ag_labids)
new_ag_labids <- as.list(new_ag_labids)
agLabIDs(map) <- new_ag_labids
expect_equal(agLabIDs(map), new_ag_labids)
tmp <- tempfile(fileext = ".ace")
save.acmap(map, tmp)
map <- read.acmap(tmp)
unlink(tmp)
expect_equal(agLabIDs(map), new_ag_labids)
})
# Getting and setting annotations
test_that("Getting and setting annotations", {
expect_equal(numAntigens(map), length(agAnnotations(map)))
expect_equal(numSera(map), length(srAnnotations(map)))
new_ag_annotations <- as.character(seq_len(numAntigens(map)))
new_ag_annotations[c(2, 4)] <- "a"
new_sr_annotations <- as.character(seq_len(numSera(map)))
new_sr_annotations[c(1, 2)] <- "b"
expect_error(agAnnotations(map) <- new_ag_annotations)
expect_error(srAnnotations(map) <- new_sr_annotations)
new_ag_annotations <- as.list(new_ag_annotations)
new_sr_annotations <- as.list(new_sr_annotations)
agAnnotations(map) <- new_ag_annotations
srAnnotations(map) <- new_sr_annotations
expect_equal(agAnnotations(map), new_ag_annotations)
expect_equal(srAnnotations(map), new_sr_annotations)
tmp <- tempfile(fileext = ".ace")
save.acmap(map, tmp)
map <- read.acmap(tmp)
unlink(tmp)
expect_equal(agAnnotations(map), new_ag_annotations)
expect_equal(srAnnotations(map), new_sr_annotations)
})
# Getting and setting other attributes
test_that("Getting and setting other attributes", {
# Read in the test map
map <- read.acmap(filename = test_path("../testdata/testmap.ace"))
# Test defaults
expect_equal(agExtra(map), rep("", numAntigens(map)))
expect_equal(srExtra(map), rep("", numSera(map)))
expect_equal(srSpecies(map), rep("", numSera(map)))
# Test editing
ag_extras <- paste("AG EXTRA", seq_len(numAntigens(map)))
sr_extras <- paste("SR EXTRA", seq_len(numSera(map)))
sr_species <- paste("SR SPECIES", seq_len(numSera(map)))
agExtra(map) <- ag_extras
srExtra(map) <- sr_extras
srSpecies(map) <- sr_species
# Check changed values
expect_equal(agExtra(map), ag_extras)
expect_equal(srExtra(map), sr_extras)
expect_equal(srSpecies(map), sr_species)
# Check saving and reloading
tmp <- tempfile(fileext = ".ace")
save.acmap(map, tmp)
loaded_map <- read.acmap(tmp)
expect_equal(agExtra(loaded_map), ag_extras)
expect_equal(srExtra(loaded_map), sr_extras)
expect_equal(srSpecies(loaded_map), sr_species)
})
# Getting and setting B lineage
test_that("Getting and setting B lineage", {
# Read in the test map
map <- read.acmap(filename = test_path("../testdata/testmap.ace"))
# Test defaults
expect_equal(agLineage(map), rep("", numAntigens(map)))
expect_equal(srLineage(map), rep("", numSera(map)))
# Test editing
ag_lineage <- rep("V", numAntigens(map))
sr_lineage <- rep("Y", numSera(map))
agLineage(map) <- ag_lineage
srLineage(map) <- sr_lineage
# Check changed values
expect_equal(agLineage(map), ag_lineage)
expect_equal(srLineage(map), sr_lineage)
# Check saving and reloading
tmp <- tempfile(fileext = ".ace")
save.acmap(map, tmp)
loaded_map <- read.acmap(tmp)
expect_equal(agLineage(loaded_map), ag_lineage)
expect_equal(srLineage(loaded_map), sr_lineage)
})
# Getting and setting reassortant status
test_that("Getting and setting reassortant status", {
# Read in the test map
map <- read.acmap(filename = test_path("../testdata/testmap.ace"))
# Test defaults
expect_equal(agReassortant(map), rep("", numAntigens(map)))
expect_equal(srReassortant(map), rep("", numSera(map)))
# Test editing
ag_reassortant <- rep("R", numAntigens(map))
sr_reassortant <- rep("R", numSera(map))
agReassortant(map) <- ag_reassortant
srReassortant(map) <- sr_reassortant
# Check changed values
expect_equal(agReassortant(map), ag_reassortant)
expect_equal(srReassortant(map), sr_reassortant)
# Check saving and reloading
tmp <- tempfile(fileext = ".ace")
save.acmap(map, tmp)
loaded_map <- read.acmap(tmp)
expect_equal(agReassortant(loaded_map), ag_reassortant)
expect_equal(srReassortant(loaded_map), sr_reassortant)
})
# Getting and setting boolean strings
test_that("Getting and setting strings", {
# Read in the test map
map <- read.acmap(filename = test_path("../testdata/testmap.ace"))
# Test defaults
expect_equal(agStrings(map), rep("", numAntigens(map)))
expect_equal(srStrings(map), rep("", numSera(map)))
# Test editing
ag_strings <- rep("E", numAntigens(map))
sr_strings <- rep("C", numSera(map))
agStrings(map) <- ag_strings
srStrings(map) <- sr_strings
# Check changed values
expect_equal(agStrings(map), ag_strings)
expect_equal(srStrings(map), sr_strings)
# Check saving and reloading
tmp <- tempfile(fileext = ".ace")
save.acmap(map, tmp)
loaded_map <- read.acmap(tmp)
expect_equal(agStrings(loaded_map), ag_strings)
expect_equal(srStrings(loaded_map), sr_strings)
})
# Getting and setting ag continent
test_that("Getting and setting continent", {
# Read in the test map
map <- read.acmap(filename = test_path("../testdata/testmap.ace"))
# Test defaults
expect_equal(agContinent(map), rep("", numAntigens(map)))
# Test editing
ag_continent <- rep("NORTH-AMERICA", numAntigens(map))
agContinent(map) <- ag_continent
# Check changed values
expect_equal(agContinent(map), ag_continent)
# Check saving and reloading
tmp <- tempfile(fileext = ".ace")
save.acmap(map, tmp)
loaded_map <- read.acmap(tmp)
expect_equal(agContinent(loaded_map), ag_continent)
})
# Getting and setting other attributes
test_that("Getting and setting homologous antigens", {
# Read in the test map
map <- read.acmap(filename = test_path("../testdata/testmap.ace"))
# Test defaults
expect_equal(
srHomologousAgs(map),
lapply(seq_len(numSera(map)), function(x) integer(0))
)
# Check errors
expect_error(srHomologousAgs(map) <- c(2, 1, NA, 4, 3))
expect_error(srHomologousAgs(map) <- list(2, c("a", 6), NULL, 5, 4))
expect_error(srHomologousAgs(map) <- as.list(1:4))
# Test editing
homo_ags <- list(2, c(3, 6), NULL, 5, 3)
srHomologousAgs(map) <- homo_ags
# Check changed values
expect_equal(srHomologousAgs(map), check.integerlist(homo_ags))
# Check saving and reloading
tmp <- tempfile(fileext = ".ace")
save.acmap(map, tmp)
loaded_map <- read.acmap(tmp)
expect_equal(srHomologousAgs(map), check.integerlist(homo_ags))
# Check removing antigens
map_removed <- removeAntigens(map, 3)
expect_equal(srHomologousAgs(map_removed), check.integerlist(list(2, 5, NULL, 4, NULL)))
# Check reordering antigens
map_reordered <- orderAntigens(map, 10:1)
expect_equal(srHomologousAgs(map_reordered), check.integerlist(list(9, c(8, 5), NULL, 6, 8)))
})
# Input errors
test_that("Antigen and serum input errors", {
# Read in the test map
map <- read.acmap(filename = test_path("../testdata/testmap.ace"))
expect_error(agNames(map) <- as.list(agNames(map)))
expect_error(agNames(map) <- 1:length(agNames(map)))
expect_error(agNames(map) <- agNames(map)[1:2])
expect_error(srNames(map) <- as.list(srNames(map)))
expect_error(srNames(map) <- 1:length(srNames(map)))
expect_error(srNames(map) <- srNames(map)[1:2])
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.