rm(list=ls()) ids <- c( "238-4136", "238-4160") for (id in ids){ basedir <- "~/Dropbox/Public" codedir <- file.path(basedir, "Scripts_for_Slicer_Export") moddir <- file.path(basedir, paste(id, "_Full_Model", sep="")) ## index is already converted index <- file.path(moddir, "index.html") ff <- file(index) dat <- readLines(ff) close(ff) index <- file.path(codedir, "Brain_Slice_Code_revised.txt") ff <- file(index) code <- readLines(ff) close(ff) type <- "checkbox" getitem <- file.path(codedir, "getItem.txt") if (type== "checkbox") getitem <- file.path(codedir, "getItem_checkbox.txt") ff <- file(getitem) getitem <- readLines(ff) close(ff) html.end <- grep(pattern="", x=dat, fixed=TRUE) java.end <- grep(pattern="renderer0.render();", x=dat, fixed=TRUE) script.end <- grep(pattern="", x=dat, fixed=TRUE)[2] dat <- data.frame(cbind(dat=dat, obj_num=cumsum(grepl(x=dat, pattern="new X\\."))), stringsAsFactors=FALSE) dropper <- function(x) return(x[x != ""]) trim <- function (x) gsub("^\\s+|\\s+$", "", x) getInfo <- function(x, info) { # print(x) if (info == "object"){ x <- x[grep(x=x, pattern="(.*) = new X.*")] x <- gsub(x=trim(x), pattern="(.*) = new X.*", replacement = "\\1") } else { x <- x[grep(x=x, pattern=paste("\\.", info, sep=""))] x <- trim(gsub(x=x, pattern=paste("vtk.*.", info, " =(.*);", sep=""), replacement = "\\1")) x <- gsub(x=x, pattern="'", replacement = "") x <- gsub(x=x, pattern=".vtk", replacement = "", fixed=TRUE) } if (length(x) == 0) x <- NA # print(length(x)) return(x) } info <- sapply(c("caption", "file", "object"), function(type) tapply(dat$dat, dat$obj_num, getInfo, info=type)) info <- info[!is.na(info[, "file"]), ] ## making all rois invisible ROIS <- info[grepl(x=c(info[, "caption"]), pattern="ROI"), "object"] for (iROI in 1:length(ROIS)) { dat$dat <- gsub(x=dat$dat, pattern = paste(ROIS[iROI], ".visible = true;", sep=""), replacement = paste(ROIS[iROI], ".visible = false;", sep=""), fixed=TRUE) # gsub(x=dat, pattern = paste(ROIS[iROI], ".opacity = .*;"), replacement = paste(ROIS[iROI], ".opacity = 0.0;"), fixed=TRUE) } ROIS <- paste(paste("'", ROIS, "'", sep=""), collapse= ", ") addscript <- paste("ROIS = [", ROIS, "];", sep="") info <- info[order(info[, "caption"]),] brains <- info[grepl(x=c(info[, "caption"]), pattern="_SS"), "object"] opac_brain <- c('function opac_brain(sliderID, textbox) {', ' var x = document.getElementById(textbox);', ' var y = document.getElementById(sliderID);', ' var val = y.value;', ' x.value = val;', ' low = Math.floor(val);', ' op_low = (val - low);', paste(brains[1], '.opacity = op_low;', sep=""), paste(brains[1], '.visible = true;', sep=""), '};') ## making all dup brains invisible and making one visible dat$dat <- gsub(x=dat$dat, pattern = paste(brains[1], ".visible = false;", sep=""), replacement = paste(brains[1], ".visible = true;", sep=""), fixed=TRUE) if (length(brains) > 1){ for (ibrain in 2:length(brains)) { dat$dat <- gsub(x=dat$dat, pattern = paste(brains[ibrain], ".visible = true;", sep=""), replacement = paste(brains[ibrain], ".visible = false;", sep=""), fixed=TRUE) # gsub(x=dat, pattern = paste(ROIS[iROI], ".opacity = .*;"), replacement = paste(ROIS[iROI], ".opacity = 0.0;"), fixed=TRUE) } # stop("me") } brains <- paste(paste("'", brains, "'", sep=""), collapse= ", ") if (length(brains) == 1) code <- gsub(x=code, pattern="o = eval(brains[1]);", replacement="o = eval(brains);", fixed=TRUE) addscript <- c(addscript, paste("brains = [", brains, "];", sep="")) info <- info[grepl(x=c(info[, "caption"]), pattern="ROI"),] info <- cbind(info, obj_num = rownames(info)) tmp <- matrix(unlist(info), nrow=nrow(info), ncol=ncol(info)) colnames(tmp) <- colnames(info) rownames(tmp) <- rownames(info) info <- tmp info <- data.frame(info, stringsAsFactors=FALSE) info <- info[order(info$caption),] addhtml <- c('
', '

') if (type== "checkbox") addhtml <- c(addhtml, apply(info, 1, function(x) paste('', x["caption"], sep="")), '

', '
') else addhtml <- c(addhtml, apply(info, 1, function(x) paste('', x["caption"], sep="")), '

', '') # addhtml <- c(addhtml, "
", # " ROIs", # "
" # ) addmore <- NULL # addmore <- c('
', '
', '', '
', '', '
') #printValue('slider2','rangeValue2'); top <- nrow(info)-1 step <- top/ 100 addmore <- c(addmore, paste('", sep=""), '') addmore <- c(addmore, paste('", sep=""), '') # addmore <- c(addmore, "") dat <- dat$dat dat <- c(dat[1:java.end], dat[(java.end+1):(script.end-1)], addscript, getitem, code, opac_brain, dat[script.end], dat[(script.end+1):(html.end-1)], addhtml, addmore, dat[html.end:length(dat)]) outfile <- file.path(moddir, "index_jsed.html") ff <- file(outfile) writeLines(dat, con=ff) close(ff) }