christianparobek / skeleSim

Null models, performance testing, and power estimation with population simulations
3 stars 6 forks source link

error running Forecasting example #54

Closed EricArcher closed 8 years ago

EricArcher commented 8 years ago

I'm able to walk through the Forecasting example and save the parameter file. When I tried to run it through skeleSimGUI() it looked like nothing happened but creating the script and working directory. When I ran the script on the console, I get the following error (with traceback):


> source('~/Desktop/ssTestRoot/Correct_or_not.20160513.0954.5777.script.R', echo=TRUE)

> library(skeleSim)

> getwd()
[1] "/Users/eric.archer"

> setwd('/Users/eric.archer/Desktop/ssTestRoot')

> getwd()
[1] "/Users/eric.archer/Desktop/ssTestRoot"

> load('Correct_or_not.20160513.0954.5777.params.rdata')

> ls()
 [1] "all.coalesce"            "create.new.history"      "demomat"                 "demomatUI"              
 [5] "fastsimcoalInit"         "historiesEqual"          "is.history"              "is.history.new"         
 [9] "landscape.mig.matrix"    "make.interactive.matrix" "matrixIn"                "matrixInUI"             
[13] "rmetasimInit"            "scenario.mig.matrix"     "simcoal.history.change"  "simcoal.history.plot"   
[17] "ssClass"                 "ssClassInit"             "vectorIn"                "vectorIn.js"            
[21] "vectorInCol"             "vectorInColUI"           "vectorInRow"             "vectorInRowUI"          
[25] "vectorInUI"              "vectorInUI.js"          

> ssClass <- runSim(ssClass)
title.not.null at.least.1.rep 
          TRUE           TRUE 
                       [,1] [,2]
dem.matr.same.dims     TRUE TRUE
freqs.leng.num.alleles TRUE TRUE
nall.leng.num.loci     TRUE TRUE
afrqs.leng.num.loci    TRUE TRUE
mut.leng.num.loci      TRUE TRUE
nsizes.eq.npops        TRUE TRUE
nsamps.eq.npops        TRUE TRUE
at.lst.1.pop           TRUE TRUE
at.lst.1.loc           TRUE TRUE
at.lst.1.samp          TRUE TRUE
mut.rate.ok            TRUE TRUE
mig.fmt                TRUE TRUE
is.mig.square          TRUE TRUE
mig.btwn.0.1           TRUE TRUE
mig.diag.eq.0          TRUE TRUE

parameter check complete

Error in combinations(h, s, 1:h)[h:1, ] : subscript out of bounds
> traceback()
10: landscape.mig.matrix(h = num.pops, s = num.stgs, R.custom = mig.rates) at rms.init.landscape.R#51
9: rms.init.landscape(num.pops = sc@num.pops, carrying = sc@pop.size, 
       mig.rates = sc@migration[[1]], num.loc = sc@num.loci, loc.type = sc@locus.type, 
       mut.rate = sc@mut.rate, seq.length = sc@sequence.length, 
       num.stgs = sc@simulator.params@num.stgs, selfing = sc@simulator.params@selfing, 
       surv.matr = sc@simulator.params@surv.matr, repr.matr = sc@simulator.params@repr.matr, 
       male.matr = sc@simulator.params@male.matr, init.pop.sizes = round(sum(sc@pop.size) * 
           rep(1/(sc@num.pops * sc@simulator.params@num.stgs), sc@num.pops * 
               sc@simulator.params@num.stgs)), num.alleles = sc@simulator.params@num.alleles, 
       allele.freqs = sc@simulator.params@allele.freqs) at rms.run.R#15
8: params@sim.func(params) at runSim.R#46
7: tryCatchList(expr, classes, parentenv, handlers)
6: tryCatch({
       num.sc <- length(params@scenarios)
       num.reps <- params@num.sim.reps
       params@scenario.reps <- as.matrix(expand.grid(scenario = 1:num.sc, 
           replicate = 1:num.reps))
       quit <- FALSE
       num.iter <- nrow(params@scenario.reps)
       results$timing$start.time <- Sys.time()
       for (i in 1:num.iter) {
           if (quit) 
               break
           params@current.scenario <- params@scenario.reps[i, "scenario"]
           params@current.replicate <- params@scenario.reps[i, "replicate"]
           params <- params@sim.func(params)
           params <- params@rep.analysis.func(params)
           label <- currentLabel(params)
           file <- paste(label, ".params.rdata", sep = "")
           if (!dir.exists(label)) 
               dir.create(label)
           save(params, file = file.path(label, file))
           results$timing$end.time <- Sys.time()
           if (!is.null(num.secs)) {
               elapsed <- results$timing$end.time - results$timing$start.time
               units(elapsed) <- "secs"
               if (elapsed > num.secs) 
                   break
           }
       }
       elapsed <- results$timing$end.time - results$timing$start.time
       results$timing$completion.time <- autoUnits(num.iter * elapsed/i)
       results$timing$pct.complete <- round(100 * i/num.iter, 1)
       results$params <- params
   }, finally = setwd(wd)) at runSim.R#33
5: runSim(ssClass) at Correct_or_not.20160513.0954.5777.script.R#7
4: eval(expr, envir, enclos)
3: eval(ei, envir)
2: withVisible(eval(ei, envir))
1: source("~/Desktop/ssTestRoot/Correct_or_not.20160513.0954.5777.script.R", 
       echo = TRUE)
stranda commented 8 years ago

fixed