# 1 start
library(morpheus)
K <- ncol(fargs$beta)
- op <- optimParams(fargs$X, fargs$Y, K, fargs$link, fargs$M)
- x_init <- list(p=rep(1/K,K-1), beta=fargs$mu, b=rep(0,K))
+ mu <- computeMu(fargs$X, fargs$Y, list(K=K, M=fargs$M))
+ op <- optimParams(fargs$X, fargs$Y, K, fargs$link, fargs$M, 1)
+ x_init <- list(p=rep(1/K,K-1), beta=mu, b=rep(0,K))
res2 <- NULL
tryCatch({
res2 <- do.call(rbind, op$run(x_init))
}
}
}
- # Bet that at least one run succeded:
- do.call(rbind,best_par)
+ do.call(rbind,best_par) #return NULL on empty list
}
),
prepareArgs = function(fargs, index) {
library(morpheus)
io = generateSampleIO(fargs$n, fargs$p, fargs$beta, fargs$b, fargs$link)
fargs$M <- computeMoments(io$X, io$Y)
- mu <- computeMu(io$X, io$Y, list(M=fargs$M))
- fargs$mu <- mu
fargs$X <- io$X
fargs$Y <- io$Y
fargs
}, N=N, ncores=ncores, verbose=TRUE)
- for (i in 1:2)
+ p <- c(p, 1-sum(p))
+ for (i in 1:length(res)) {
+ for (j in N:1) {
+ if (is.null(res[[i]][[j]]) || is.na(res[[i]][[j]]))
+ res[[i]][[j]] <- NULL
+ }
+ print(paste("Count valid runs for ",i," = ",length(res[[i]]),sep=""))
res[[i]] <- alignMatrices(res[[i]], ref=rbind(p,beta,b), ls_mode="exact")
+ }
res
}