Nothing
test_that("Loop the Loop", {
# Run different data sets with different qualities through the same loops:
miniExample = data.frame(
"LOC1a" = c(11:14),
"LOC1b" = c(21:24),
"LOC2a" = c(31:33, -99),
"LOC2b" = c(41:44)
)
data("amExample1")
data("amExample2") ; amExample2 = amExample2[c(1:20),] # Just keep the first 20 rows to save speed and disk
data("amExample3") ; amExample3 = amExample3[c(1:20),] # Just keep the first 20 rows to save speed and disk
data("amExample4") ; amExample4 = amExample4[c(1:20),] # Just keep the first 20 rows to save speed and disk
data("amExample5") ; amExample5 = amExample5[c(1:20),] # Just keep the first 20 rows to save speed and disk
amdataMini = amDataset(miniExample)
amdataExample1 = amDataset(amExample1, indexColumn="sampleId", metaDataColumn="knownIndividual")
amdataExample2 = amDataset(amExample2, indexColumn="sampleId", metaDataColumn="knownIndividual")
amdataExample3 = amDataset(amExample3, indexColumn="sampleId", metaDataColumn="knownIndividual")
amdataExample4 = amDataset(amExample4, indexColumn="sampleId", metaDataColumn="knownIndividual")
amdataExample5 = amDataset(amExample5, indexColumn="sampleId", ignoreColumn=c("samplingData", "gender"))
# multilocusMaps:
mlm1 = c("LOC1", "LOC1", "LOC2", "LOC2", "LOC3", "LOC3", "LOC4", "LOC4", "LOC5", "LOC5", "LOC6", "LOC6", "LOC7", "LOC7", "LOC8", "LOC8", "LOC9", "LOC9", "LOC10", "LOC10")
mlm2 = c("LOC10", "LOC10", "LOC9", "LOC9", "LOC8", "LOC8", "LOC7", "LOC7", "LOC6", "LOC6", "LOC5", "LOC5", "LOC4", "LOC4", "LOC3", "LOC3", "LOC2", "LOC2", "LOC1", "LOC1")
# We want to run amAlleleFreq many times with many combinations of parameters
# and we want to compare the results with previous runs. Like this:
snapshot_amAlleleFreq <- function(ds, multilocusMap=NULL) {
# Log the call to the snapshot file:
{
argstr = ifelse(is.null(multilocusMap), "", paste(", multilocusMap=c(", paste(multilocusMap, collapse=", "), ")", sep=""))
cmdstr = paste("amAlleleFreq(", ds, argstr, ")", sep="")
expect_snapshot(cat(cmdstr))
}
# Capture any errors reported by allelematch:
sink(nullfile()) # Block output from 'cat' within allelematch
af <- tryCatch(
# Make the call to allelematch:
amAlleleFreq(amDatasetFocal=get(ds), multilocusMap=multilocusMap),
## If the call fails, return the error message and
## the method and arguments that threw the error:
error = function(e) {
ret = c(paste("\n Error : ", e$message, "\n Rejected : ", cmdstr, "\n"))
message("\n ", ret, sep="") # Print the message to the screen for easier debugging
ret # Return this message from 'tryCatch'
}
#, message = function(m) {}
)
sink() # Block output from 'cat' within allelematch
# Log the result to the snapshot file:
# expect_snapshot(summary.amAlleleFreq(af)) # Too big. :-(
expect_snapshot_value(af, style = "deparse")
if(class(af) == "amAlleleFreq") {
expect_snapshot(print.amAlleleFreq(af))
} else {
expect_snapshot(cat(af))
}
return(af)
}
# Parameters to loop over:
# " amAlleleFreq <- function(amDatasetFocal, , multilocusMap=NULL) {
# Regarding clusterMethod: "Only 'complete' acceptable. This option remains for experimental reasons". So, we stick with the default.
# Here comes the loops:
af0 = snapshot_amAlleleFreq("amdataMini")
af1 = snapshot_amAlleleFreq("amdataMini", multilocusMap=c(1,1,2,2))
expect_identical(af1, af0)
for (amds in c("amdataExample1", "amdataExample2", "amdataExample3", "amdataExample4", "amdataExample5")) {
af0 = snapshot_amAlleleFreq(amds)
}
})
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.