#' @title Generate multiple datasets
#' @description Generate a list of list of datasets with n replicates for x datapoints.
#' @details Calls on the envGrowthChanges, generateDataSet and glv functions from seqtime to generate datasets compatible with other functions.
#'
#' @param x vector specificying environmental strength or removed species
#' @param n number of replicates
#' @param mode "env" or "abundance", env takes environmental strength into account while "abundance" includes species removal
#' @param name filename of output dataset
#'
#' @return Returns nothing, but saves .rds files of datasets
#' @export
generateSets = function(n, klemms, species, samples, x, mode="env", name, sign="none"){
alldata = list()
envlist = list()
for (i in 1:length(x)){
data = list()
if (mode == "env"){
env = list()
for (j in 1:n){
env1 = NetworkUtils::envGrowthChanges(species=species, env.factors=2, conditions=2, strength=x[i], mode=sign)
env[[j]] = env1
subset = seqtime:::generateDataSet(samples, klemms[[j]], env.matrix = env1[[2]], perturb.count = c(40,40))
data[[j]] = subset
}
envlist[[i]] = env
envname = paste(name, "_envfactors.rds", sep="")
saveRDS(envlist, envname)
}
else {
for (j in 1:n){
subset = seqtime:::generateDataSet(80, klemms[[j]])
data[[j]] = subset
}
}
alldata[[i]] = data
}
if (mode == "abundance"){
for (i in 2:length(x)){
for (j in 1:n){
removeN = x[i]
alldata[[i]][[j]] = seqtime:::removeLowAbundance(alldata[[i]][[j]], removeN)
}
}
}
saveRDS(alldata, paste(name, ".rds", sep=""))
return(alldata)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.