brianstock / MixSIAR

A framework for Bayesian mixing models in R:
http://brianstock.github.io/MixSIAR/
91 stars 75 forks source link

RUNTIME ERROR in jags.model: Dimension mismatch taking subset of src_tau #196

Open AndreasLuckert opened 4 years ago

AndreasLuckert commented 4 years ago

EDIT on 25-02-2020: The error occurs within the function jags.model() at line 76 with the following content: .Call("compile", p, data, as.integer(n.chains), TRUE, PACKAGE = "rjags")

The call-stack, i.e. the previously called functions, was from outer- to innermost: run_model() (namespace: MixSIAR) --> jags() (namespace: R2jags) at line 129: m <- jags.model(..) --> jags.model() (namespace: rjags) at line 76

The error produced is:

Error: RUNTIME ERROR:
Compilation error on line 128.
Dimension mismatch taking subset of src_tau

In order to help understand why the error in the title of this issue arises, I'll post in the following the entire printout of the variable data passed to the .Call()-function at line 76 in jags.model():

Browse[5]> data
$X_iso
             d18O        d2H
 [1,] -0.23138769 -0.7629143
 [2,]  0.36907494  0.5220980
 [3,]  2.23109506  0.8888474
 [4,]  1.31736517  0.9094223
 [5,]  0.72734648  0.5804021
 [6,]  1.43618753  0.5965004
 [7,]  1.97804326  0.9713432
 [8,]  1.80527634  1.0541636
 [9,]  1.12016898  0.8227014
[10,]  1.33923086  1.4911130
[11,]  1.50794970  1.5626845
[12,]  1.36824564  1.0346010
[13,]  0.95125224  0.8001685
[14,] -0.06936574  0.1897425

$N
[1] 14

$n.sources
[1] 5

$n.iso
[1] 2

$alpha
[1] 1 1 1 1 1

$frac_mu
    Meand18O Meand2H
10         0       0
100        0       0
20         0       0
30         0       0
50         0       0

$e
           [,1]       [,2]       [,3]      [,4]
[1,] 0.36733337 0.27597929 0.24603832 0.2311112
[2,] 0.08930489 0.27597929 0.24603832 0.2311112
[3,] 0.18112058 0.08109173 0.24603832 0.2311112
[4,] 0.18112058 0.18347484 0.07753944 0.2311112
[5,] 0.18112058 0.18347484 0.18434559 0.0755553

$cross
, , 1

      [,1] [,2] [,3] [,4] [,5]
 [1,]   NA   NA   NA   NA   NA
 [2,]   NA   NA   NA   NA   NA
 [3,]   NA   NA   NA   NA   NA
 [4,]   NA   NA   NA   NA   NA
 [5,]   NA   NA   NA   NA   NA
 [6,]   NA   NA   NA   NA   NA
 [7,]   NA   NA   NA   NA   NA
 [8,]   NA   NA   NA   NA   NA
 [9,]   NA   NA   NA   NA   NA
[10,]   NA   NA   NA   NA   NA
[11,]   NA   NA   NA   NA   NA
[12,]   NA   NA   NA   NA   NA
[13,]   NA   NA   NA   NA   NA
[14,]   NA   NA   NA   NA   NA

, , 2

      [,1] [,2] [,3] [,4] [,5]
 [1,]   NA   NA   NA   NA   NA
 [2,]   NA   NA   NA   NA   NA
 [3,]   NA   NA   NA   NA   NA
 [4,]   NA   NA   NA   NA   NA
 [5,]   NA   NA   NA   NA   NA
 [6,]   NA   NA   NA   NA   NA
 [7,]   NA   NA   NA   NA   NA
 [8,]   NA   NA   NA   NA   NA
 [9,]   NA   NA   NA   NA   NA
[10,]   NA   NA   NA   NA   NA
[11,]   NA   NA   NA   NA   NA
[12,]   NA   NA   NA   NA   NA
[13,]   NA   NA   NA   NA   NA
[14,]   NA   NA   NA   NA   NA

, , 3

      [,1] [,2] [,3] [,4] [,5]
 [1,]   NA   NA   NA   NA   NA
 [2,]   NA   NA   NA   NA   NA
 [3,]   NA   NA   NA   NA   NA
 [4,]   NA   NA   NA   NA   NA
 [5,]   NA   NA   NA   NA   NA
 [6,]   NA   NA   NA   NA   NA
 [7,]   NA   NA   NA   NA   NA
 [8,]   NA   NA   NA   NA   NA
 [9,]   NA   NA   NA   NA   NA
[10,]   NA   NA   NA   NA   NA
[11,]   NA   NA   NA   NA   NA
[12,]   NA   NA   NA   NA   NA
[13,]   NA   NA   NA   NA   NA
[14,]   NA   NA   NA   NA   NA

, , 4

      [,1] [,2] [,3] [,4] [,5]
 [1,]   NA   NA   NA   NA   NA
 [2,]   NA   NA   NA   NA   NA
 [3,]   NA   NA   NA   NA   NA
 [4,]   NA   NA   NA   NA   NA
 [5,]   NA   NA   NA   NA   NA
 [6,]   NA   NA   NA   NA   NA
 [7,]   NA   NA   NA   NA   NA
 [8,]   NA   NA   NA   NA   NA
 [9,]   NA   NA   NA   NA   NA
[10,]   NA   NA   NA   NA   NA
[11,]   NA   NA   NA   NA   NA
[12,]   NA   NA   NA   NA   NA
[13,]   NA   NA   NA   NA   NA
[14,]   NA   NA   NA   NA   NA

$tmp.p
      [,1] [,2] [,3] [,4] [,5]
 [1,]   NA   NA   NA   NA   NA
 [2,]   NA   NA   NA   NA   NA
 [3,]   NA   NA   NA   NA   NA
 [4,]   NA   NA   NA   NA   NA
 [5,]   NA   NA   NA   NA   NA
 [6,]   NA   NA   NA   NA   NA
 [7,]   NA   NA   NA   NA   NA
 [8,]   NA   NA   NA   NA   NA
 [9,]   NA   NA   NA   NA   NA
[10,]   NA   NA   NA   NA   NA
[11,]   NA   NA   NA   NA   NA
[12,]   NA   NA   NA   NA   NA
[13,]   NA   NA   NA   NA   NA
[14,]   NA   NA   NA   NA   NA

$factor1_levels
[1] 14

$Factor.1
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14

$cross.fac1
, , 1

      [,1] [,2] [,3] [,4] [,5]
 [1,]   NA   NA   NA   NA   NA
 [2,]   NA   NA   NA   NA   NA
 [3,]   NA   NA   NA   NA   NA
 [4,]   NA   NA   NA   NA   NA
 [5,]   NA   NA   NA   NA   NA
 [6,]   NA   NA   NA   NA   NA
 [7,]   NA   NA   NA   NA   NA
 [8,]   NA   NA   NA   NA   NA
 [9,]   NA   NA   NA   NA   NA
[10,]   NA   NA   NA   NA   NA
[11,]   NA   NA   NA   NA   NA
[12,]   NA   NA   NA   NA   NA
[13,]   NA   NA   NA   NA   NA
[14,]   NA   NA   NA   NA   NA

, , 2

      [,1] [,2] [,3] [,4] [,5]
 [1,]   NA   NA   NA   NA   NA
 [2,]   NA   NA   NA   NA   NA
 [3,]   NA   NA   NA   NA   NA
 [4,]   NA   NA   NA   NA   NA
 [5,]   NA   NA   NA   NA   NA
 [6,]   NA   NA   NA   NA   NA
 [7,]   NA   NA   NA   NA   NA
 [8,]   NA   NA   NA   NA   NA
 [9,]   NA   NA   NA   NA   NA
[10,]   NA   NA   NA   NA   NA
[11,]   NA   NA   NA   NA   NA
[12,]   NA   NA   NA   NA   NA
[13,]   NA   NA   NA   NA   NA
[14,]   NA   NA   NA   NA   NA

, , 3

      [,1] [,2] [,3] [,4] [,5]
 [1,]   NA   NA   NA   NA   NA
 [2,]   NA   NA   NA   NA   NA
 [3,]   NA   NA   NA   NA   NA
 [4,]   NA   NA   NA   NA   NA
 [5,]   NA   NA   NA   NA   NA
 [6,]   NA   NA   NA   NA   NA
 [7,]   NA   NA   NA   NA   NA
 [8,]   NA   NA   NA   NA   NA
 [9,]   NA   NA   NA   NA   NA
[10,]   NA   NA   NA   NA   NA
[11,]   NA   NA   NA   NA   NA
[12,]   NA   NA   NA   NA   NA
[13,]   NA   NA   NA   NA   NA
[14,]   NA   NA   NA   NA   NA

, , 4

      [,1] [,2] [,3] [,4] [,5]
 [1,]   NA   NA   NA   NA   NA
 [2,]   NA   NA   NA   NA   NA
 [3,]   NA   NA   NA   NA   NA
 [4,]   NA   NA   NA   NA   NA
 [5,]   NA   NA   NA   NA   NA
 [6,]   NA   NA   NA   NA   NA
 [7,]   NA   NA   NA   NA   NA
 [8,]   NA   NA   NA   NA   NA
 [9,]   NA   NA   NA   NA   NA
[10,]   NA   NA   NA   NA   NA
[11,]   NA   NA   NA   NA   NA
[12,]   NA   NA   NA   NA   NA
[13,]   NA   NA   NA   NA   NA
[14,]   NA   NA   NA   NA   NA

$tmp.p.fac1
      [,1] [,2] [,3] [,4] [,5]
 [1,]   NA   NA   NA   NA   NA
 [2,]   NA   NA   NA   NA   NA
 [3,]   NA   NA   NA   NA   NA
 [4,]   NA   NA   NA   NA   NA
 [5,]   NA   NA   NA   NA   NA
 [6,]   NA   NA   NA   NA   NA
 [7,]   NA   NA   NA   NA   NA
 [8,]   NA   NA   NA   NA   NA
 [9,]   NA   NA   NA   NA   NA
[10,]   NA   NA   NA   NA   NA
[11,]   NA   NA   NA   NA   NA
[12,]   NA   NA   NA   NA   NA
[13,]   NA   NA   NA   NA   NA
[14,]   NA   NA   NA   NA   NA

$SOURCE_array
, , 1, 1

          [,1]       [,2]
[1,] -1.161052 -2.4571837
[2,] -2.438364 -2.8991670
[3,] -2.121966 -2.2763723
[4,] -1.454014 -0.6490702
[5,] -1.090741 -0.6088899

, , 2, 1

           [,1]       [,2]
[1,]  1.6253282  1.0840099
[2,] -0.9527321 -1.6169885
[3,] -0.5448461 -0.9142014
[4,]  0.2009499  0.5163245
[5,] -0.7612190 -0.4953863

, , 3, 1

           [,1]       [,2]
[1,]  0.5981347  0.2389465
[2,] -0.4637528 -0.7470032
[3,] -1.0712021 -1.5142634
[4,] -1.0069958 -0.9633253
[5,] -1.2254631 -0.8664267

, , 4, 1

          [,1]       [,2]
[1,]  1.177940  0.6190498
[2,] -1.762005 -1.9241490
[3,] -1.572711 -1.4118192
[4,] -1.066151 -0.4444415
[5,] -1.111158 -0.6145405

, , 5, 1

           [,1]       [,2]
[1,]  1.1519789  0.6695553
[2,] -1.3402676 -1.5292596
[3,] -1.5912820 -1.8554468
[4,] -1.6803072 -1.9572796
[5,] -0.7638983 -0.4121926

, , 6, 1

           [,1]       [,2]
[1,]  0.9178837  1.1670390
[2,] -0.3996116 -0.4887930
[3,] -0.3014417 -0.2552889
[4,]  0.3054686  0.7466414
[5,] -0.3243786  0.1640757

, , 7, 1

           [,1]       [,2]
[1,]  0.9060821  0.6659537
[2,] -0.1637507 -0.2488587
[3,] -0.5387485 -0.7677464
[4,] -0.9753960 -0.9006355
[5,] -0.5137177 -0.4422172

, , 8, 1

            [,1]        [,2]
[1,]  0.26481356  0.62748107
[2,]  0.01549215  0.06109177
[3,] -0.24304631 -0.28254412
[4,] -0.51771463 -0.27060511
[5,] -0.67763058 -0.56700405

, , 9, 1

           [,1]         [,2]
[1,]  1.3467628  1.656477635
[2,]  0.5511220  1.158594858
[3,]  0.1313803 -0.007816337
[4,] -0.8318192 -0.850448070
[5,] -0.6515929 -0.692135442

, , 10, 1

           [,1]      [,2]
[1,]  1.0966994 1.1096569
[2,]  0.6855275 1.2883121
[3,]  0.6583616 1.2460845
[4,]  0.4810927 0.8476511
[5,] -0.1616798 0.1293925

, , 11, 1

           [,1]       [,2]
[1,]  1.8735606  1.5479515
[2,]  0.1322143  0.2953857
[3,] -0.3605936 -0.2664597
[4,] -0.3968430 -0.2880144
[5,] -0.3108628 -0.1779787

, , 12, 1

            [,1]        [,2]
[1,]  0.02148258 0.311412128
[2,]  0.20132850 0.479754302
[3,]  0.17425986 0.717432811
[4,]  0.68168228 1.281153345
[5,] -0.10330847 0.001236836

, , 13, 1

           [,1]      [,2]
[1,]  0.3331486 0.6527828
[2,]  0.3939402 0.8558351
[3,]  0.2525536 0.3753989
[4,]  0.2654488 0.6815313
[5,] -0.1255520 0.1233318

, , 14, 1

           [,1]       [,2]
[1,]  0.8365498  0.6241049
[2,]  0.1444770  0.6082571
[3,] -0.1738672 -0.1673114
[4,]  0.1789177  0.1116491
[5,] -0.5033814 -0.4931657

$n.rep
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
[1,]    1    1    1    1    1    1    1    1    1     1     1     1     1     1
[2,]    1    1    1    1    1    1    1    1    1     1     1     1     1     1
[3,]    1    1    1    1    1    1    1    1    1     1     1     1     1     1
[4,]    1    1    1    1    1    1    1    1    1     1     1     1     1     1
[5,]    1    1    1    1    1    1    1    1    1     1     1     1     1     1

$source_factor_levels
[1] 14

$frac_sig2
    SDd18O SDd2H
10       0     0
100      0     0
20       0     0
30       0     0
50       0     0

START OF ORIGINAL POST (containing the entire error message output and the R-script): When running the script stated below, the following error message occurs when carrying out jags.model:

module glm loaded
Compiling model graph
   Declaring variables
   Resolving undeclared variables
   Allocating nodes
Deleting model

Error in jags.model(model.file, data = data, inits = init.values, n.chains = n.chains,  : 
  RUNTIME ERROR:
Compilation error on line 128.
Dimension mismatch taking subset of src_tau

Calls: run_model -> <Anonymous> -> jags.model
Execution halted

I don't know where to start nor what to do about it.

The script I used to reproduce this is posted hereafter. If you need information about my input files, I'll provide them later if necessary.

# * Import packages
library(MixSIAR)

# * Set working directory
setwd("/home/andylu/Desktop/IDAEA_CSIC/Modeling/")

# START OF CODE  =================================

## ** MIXTURE / (water) CONSUMER data ** ##
# 1) Replace the system.file call with the path to your file
# BULK SOIL WATER (BW)
mix_filename <- ("Input/mixture_consumer_Xylem_Water_of_source_Bulk_Water_raw_IDAEA.csv") # (mixture) file for consumer (xylem) water isotopic data

# 2) Load the mixture/consumer data
mix <- load_mix_data(filename = mix_filename,
                     iso_names = c("d18O", "d2H"),
                     factors = "Time", # single term like: "bla", list of terms like: c("d18O","d2H")
                     fac_random = FALSE, # previously it was set to "fac_random=FALSE" (without quotes)
                     fac_nested = FALSE, # previously it was set to "FALSE" (without quotes)
                     cont_effects = NULL)

## ** SOURCE (water) data ** ##
# 1) Replace the system.file call with the path to your file
# BULK SOIL WATER (BW)
source_filename <- ("Input/sources_Bulk_Water_raw_IDAEA.csv") # file for the source water isotopic data

# 2) Load the source data
source <- load_source_data(filename = source_filename,
                           source_factors = "Time", # can only be one string, e.g. "Source", not a list, OR NULL
                           conc_dep = FALSE, # no concentration dependence
                           data_type = "raw",
                           mix = mix)

## ** Discrimination data ** ##
# 1) Replace the system.file call with the path to your file
# BULK SOIL WATER (BW)
discr_filename <- ("Input/discrimination_sources_Bulk_Water_raw_IDAEA.csv") # discrimination data file

# 2) Load the discrimination/TDF data
discr <- load_discr_data(filename = discr_filename, mix = mix)

## * PLOTTING * ##
# 1) Biotracer data
# plot_data(filename = "Output/Isospace_plot", plot_save_pdf = TRUE,
#             plot_save_png = FALSE, mix = mix, source = source, discr = discr)

# 2) Prior
alpha_prior_val <- 1
plot_prior(alpha.prior = alpha_prior_val, source = source, plot_save_pdf = TRUE, plot_save_png = FALSE,
           filename = "Output/Prior_plot")

## * JAGS - model preparation * ##

# 1) Write the JAGS model file

model_filename <- "Output/MixSIAR_model.txt" # name of the JAGS model file

# * Set error-processing  *
"ERROR message: Error in write_JAGS_model(filename = model_filename, resid_err = resid_err,  :
  Invalid error structure. If fitting each individual
  mix data point separately, must choose Process only error model (MixSIR).
  Set resid_err=FALSE and process_err=TRUE."
resid_err <- FALSE
process_err <- TRUE

# Carry out writing process of JAGS-model
write_JAGS_model(filename = model_filename, resid_err = resid_err,
                 process_err = process_err, mix = mix, source = source) # put together the specification of the model

# 2) OPTIONAL: Define Markov-chain differently from the standards given in run_model(run=..)
run_list <- list(chainLength = 400000, burn = 200000,
            thin = 30, chains = 3, calcDIC = TRUE) # used to specify the MCMC chains

## * RUN JAGS MODEL * ##

jags_1 <- run_model(run = "normal", mix = mix, source = source, discr = discr,
                    model_filename = model_filename, alpha.prior = alpha_prior_val,
                    resid_err = resid_err, process_err = process_err)
earthmoon commented 6 days ago

Is there anyone to deal with this problem?