From 714ab7ad28a9851d0965ad0ec90cb81b6d334216 Mon Sep 17 00:00:00 2001 From: bball Date: Wed, 7 Nov 2018 17:10:26 -0700 Subject: [PATCH 1/4] add sobol plots to outputs --- docker/R/lib/sobol.R | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docker/R/lib/sobol.R b/docker/R/lib/sobol.R index 311e7d127..eaefcc06e 100644 --- a/docker/R/lib/sobol.R +++ b/docker/R/lib/sobol.R @@ -197,9 +197,9 @@ if (nrow(result) > 0) { file_names_R[j] <- paste(analysis_dir,"/m_",gsub(" ","_",objnames[j], fixed=TRUE),".RData",sep="") save(n, file=file_names_R[j]) if (debug_messages == 1) { - print(paste("n$S: "),n$S) + print(paste("n$S: ",n$S)) } - if (all(is.finite(n$S))) { + if (all(is.finite(unlist(n$S)))) { file_names_png[j] <- paste(analysis_dir,"/sobol_",gsub(" ","_",objnames[j],fixed=TRUE),".png",sep="") png(file_names_png[j], width=8, height=8, units="in", pointsize=10, res=200, type="cairo") plot(n,ylim=c(min(n$S),max(n$S))) @@ -210,7 +210,9 @@ if (nrow(result) > 0) { } else { file_zip <- c(file_names_R,paste(analysis_dir,"/vardisplaynames.json",sep='')) } - print(paste("file_zip:",file_zip)) + if (debug_messages == 1) { + print(paste("file_zip:",file_zip)) + } if(!dir.exists(paste(analysis_dir,"/downloads",sep=''))){ dir.create(paste(analysis_dir,"/downloads",sep='')) print(paste("created dir:",analysis_dir,"/downloads",sep='')) From f7a58271074cd7d8de82846517d1e4492207147a Mon Sep 17 00:00:00 2001 From: bball Date: Wed, 7 Nov 2018 21:28:46 -0700 Subject: [PATCH 2/4] sobol plots and best_results to analysis json level --- docker/R/lib/morris.R | 3 ++- docker/R/lib/sobol.R | 25 +++++++++++++++++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/docker/R/lib/morris.R b/docker/R/lib/morris.R index 47f7e00af..029157281 100644 --- a/docker/R/lib/morris.R +++ b/docker/R/lib/morris.R @@ -250,6 +250,7 @@ if (nrow(result) > 0) { } else { file_zip <- c(file_names_jsons,file_names_R,paste(analysis_dir,"/vardisplaynames.json",sep='')) } + # here if (debug_messages == 1) { print(paste("file_zip:",file_zip)) } @@ -258,7 +259,7 @@ if (nrow(result) > 0) { print(paste("created dir:",analysis_dir,"/downloads",sep='')) } zip(zipfile=paste(analysis_dir,"/downloads/morris_results_",rails_analysis_id,".zip",sep=''),files=file_zip, flags = "-j") - } + } #move this? } else { print("Results is null") } diff --git a/docker/R/lib/sobol.R b/docker/R/lib/sobol.R index eaefcc06e..81e4cfa78 100644 --- a/docker/R/lib/sobol.R +++ b/docker/R/lib/sobol.R @@ -182,8 +182,10 @@ if (debug_messages == 1) { print(paste("nrow(result):",nrow(result))) print(paste("ncol(result):",ncol(result))) } +file_names_jsons <- c("") file_names_R <- c("") file_names_png <- c("") +total_answer <- '{"Sobol_Indicies":{' if (nrow(result) > 0) { for (j in 1:nrow(result)){ #print(paste("result[j,]:",unlist(result[j,]))) @@ -193,7 +195,15 @@ if (nrow(result) > 0) { print(n) #print(paste("is.recursive(n):",is.recursive(n))) #print(paste("is.atomic(n):",is.atomic(n))) - + answer <- paste('"',gsub(" ","_",objnames[j],fixed=TRUE),'":{',paste('"',gsub(".","|",varnames, fixed=TRUE),'":',as.numeric(unlist(n$S)),sep='', collapse=','),'}',sep='') + if (j < nrow(result)) { + total_answer <- paste(total_answer,answer,',',sep="") + } else { + total_answer <- paste(total_answer,answer) + } + + file_names_jsons[j] <- paste(analysis_dir,"/sobol_",gsub(" ","_",objnames[j],fixed=TRUE),".json",sep="") + write.table(answer, file=file_names_jsons[j], quote=FALSE,row.names=FALSE,col.names=FALSE) file_names_R[j] <- paste(analysis_dir,"/m_",gsub(" ","_",objnames[j], fixed=TRUE),".RData",sep="") save(n, file=file_names_R[j]) if (debug_messages == 1) { @@ -205,11 +215,18 @@ if (nrow(result) > 0) { plot(n,ylim=c(min(n$S),max(n$S))) dev.off() - file_zip <- c(file_names_R,file_names_png,paste(analysis_dir,"/vardisplaynames.json",sep='')) + file_zip <- c(file_names_jsons,file_names_R,file_names_png,paste(analysis_dir,"/vardisplaynames.json",sep='')) } else { - file_zip <- c(file_names_R,paste(analysis_dir,"/vardisplaynames.json",sep='')) + file_zip <- c(file_names_jsons,file_names_R,paste(analysis_dir,"/vardisplaynames.json",sep='')) } + } #here + total_answer <- paste(total_answer,'}}') + bestresults_filename <- paste(analysis_dir,'/best_result.json',sep='') + print(bestresults_filename) + print(paste("best json:",total_answer)) + write.table(total_answer, file=bestresults_filename, quote=FALSE,row.names=FALSE,col.names=FALSE) + file_zip <- append(file_zip,bestresults_filename) if (debug_messages == 1) { print(paste("file_zip:",file_zip)) } @@ -218,7 +235,7 @@ if (nrow(result) > 0) { print(paste("created dir:",analysis_dir,"/downloads",sep='')) } zip(zipfile=paste(analysis_dir,"/downloads/sobol_results_",rails_analysis_id,".zip",sep=''),files=file_zip, flags = "-j") - } + #} #move this? } else { print("Results is null") } From bdbd22fad433c56942d2f20d8fee046e8a97c81d Mon Sep 17 00:00:00 2001 From: bball Date: Wed, 7 Nov 2018 22:00:44 -0700 Subject: [PATCH 3/4] make morris best_results json legit --- docker/R/lib/morris.R | 23 ++++++++++++++++++----- docker/R/lib/sobol.R | 3 +-- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/docker/R/lib/morris.R b/docker/R/lib/morris.R index 029157281..0998a9947 100644 --- a/docker/R/lib/morris.R +++ b/docker/R/lib/morris.R @@ -180,7 +180,8 @@ file_names_png <- c("") file_names_box_png <- c("") file_names_box_sorted_png <- c("") file_names_bar_png <- c("") -file_names_bar_sorted_png <- c("") +file_names_bar_sorted_png <- c("") +total_answer <- '{"Morris":{' if (nrow(result) > 0) { for (j in 1:nrow(result)){ #print(paste("result[j,]:",unlist(result[j,]))) @@ -197,8 +198,14 @@ if (nrow(result) > 0) { var_mu[i] <- mean(n$ee[,i]) var_mu_star[i] <- mean(abs(n$ee[,i])) var_sigma[i] <- sd(n$ee[,i]) - } - answer <- paste('{',paste('"',gsub(".","|",varnames, fixed=TRUE),'":','{"var_mu": ',var_mu,',"var_mu_star": ',var_mu_star,',"var_sigma": ',var_sigma,'}',sep='', collapse=','),'}',sep='') + } + answer <- paste('"',gsub(" ","_",objnames[j],fixed=TRUE),'":{',paste('"',gsub(".","|",varnames, fixed=TRUE),'":','{"var_mu": ',var_mu,',"var_mu_star": ',var_mu_star,',"var_sigma": ',var_sigma,'}',sep='', collapse=','),'}',sep='') + #answer <- paste('{',paste('"',gsub(".","|",varnames, fixed=TRUE),'":','{"var_mu": ',var_mu,',"var_mu_star": ',var_mu_star,',"var_sigma": ',var_sigma,'}',sep='', collapse=','),'}',sep='') + if (j < nrow(result)) { + total_answer <- paste(total_answer,answer,',',sep="") + } else { + total_answer <- paste(total_answer,answer) + } file_names_jsons[j] <- paste(analysis_dir,"/morris_",gsub(" ","_",objnames[j],fixed=TRUE),".json",sep="") write.table(answer, file=file_names_jsons[j], quote=FALSE,row.names=FALSE,col.names=FALSE) file_names_R[j] <- paste(analysis_dir,"/m_",gsub(" ","_",objnames[j], fixed=TRUE),".RData",sep="") @@ -250,7 +257,13 @@ if (nrow(result) > 0) { } else { file_zip <- c(file_names_jsons,file_names_R,paste(analysis_dir,"/vardisplaynames.json",sep='')) } - # here + }# here + total_answer <- paste(total_answer,'}}') + bestresults_filename <- paste(analysis_dir,'/best_result.json',sep='') + print(bestresults_filename) + print(paste("best json:",total_answer)) + write.table(total_answer, file=bestresults_filename, quote=FALSE,row.names=FALSE,col.names=FALSE) + file_zip <- append(file_zip,bestresults_filename) if (debug_messages == 1) { print(paste("file_zip:",file_zip)) } @@ -259,7 +272,7 @@ if (nrow(result) > 0) { print(paste("created dir:",analysis_dir,"/downloads",sep='')) } zip(zipfile=paste(analysis_dir,"/downloads/morris_results_",rails_analysis_id,".zip",sep=''),files=file_zip, flags = "-j") - } #move this? + #} #move this? } else { print("Results is null") } diff --git a/docker/R/lib/sobol.R b/docker/R/lib/sobol.R index 81e4cfa78..c4cadfeb5 100644 --- a/docker/R/lib/sobol.R +++ b/docker/R/lib/sobol.R @@ -220,7 +220,7 @@ if (nrow(result) > 0) { } else { file_zip <- c(file_names_jsons,file_names_R,paste(analysis_dir,"/vardisplaynames.json",sep='')) } - } #here + } total_answer <- paste(total_answer,'}}') bestresults_filename <- paste(analysis_dir,'/best_result.json',sep='') print(bestresults_filename) @@ -235,7 +235,6 @@ if (nrow(result) > 0) { print(paste("created dir:",analysis_dir,"/downloads",sep='')) } zip(zipfile=paste(analysis_dir,"/downloads/sobol_results_",rails_analysis_id,".zip",sep=''),files=file_zip, flags = "-j") - #} #move this? } else { print("Results is null") } From ab0f85df3ec973fc4556f42d63c46e830040ab7b Mon Sep 17 00:00:00 2001 From: bball Date: Thu, 8 Nov 2018 18:13:43 -0700 Subject: [PATCH 4/4] add displaynames to sobol plots --- docker/R/lib/sobol.R | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docker/R/lib/sobol.R b/docker/R/lib/sobol.R index c4cadfeb5..0fc39c295 100644 --- a/docker/R/lib/sobol.R +++ b/docker/R/lib/sobol.R @@ -154,6 +154,7 @@ if (type == "sobol") { } else if (type == "martinez") { m <- sobolmartinez(model=NULL, X1=vars, X2=vars2, nboot=nboot, conf=conf) } else { print("unknown method")} + if (debug_messages == 1) { print(paste("m:", m)) print(paste("m$X:", m$X)) @@ -176,6 +177,7 @@ print("bounds are satisfied, continuing...") try(results <- clusterApplyLB(cl, m1, f),silent=FALSE) #print(paste("nrow(results):",nrow(results))) #print(paste("ncol(results):",ncol(results))) +print(paste("results:",results)) result <- as.data.frame(results) if (debug_messages == 1) { print(paste("length(objnames):",length(objnames))) @@ -192,7 +194,15 @@ if (nrow(result) > 0) { #print(paste("result[,j]:",unlist(result[,j]))) n <- m tell(n,as.numeric(unlist(result[j,]))) - print(n) + if (debug_messages == 1) { + print(paste("nrow(n$S):",nrow(n$S))) + print(paste("(n$S):",(n$S))) + print(paste("(vardisplaynames):",(vardisplaynames))) + } + if (!any(duplicated(vardisplaynames))) { + rownames(n$S) <- vardisplaynames + } + print(paste("n:",n)) #print(paste("is.recursive(n):",is.recursive(n))) #print(paste("is.atomic(n):",is.atomic(n))) answer <- paste('"',gsub(" ","_",objnames[j],fixed=TRUE),'":{',paste('"',gsub(".","|",varnames, fixed=TRUE),'":',as.numeric(unlist(n$S)),sep='', collapse=','),'}',sep='')