## LSD bootstrap solo addition to pick up where it has failed...
## function declaration
LSD_Redo <- function(t.exp=TRUE,N=1000,n.tips=50,n.bs=100,reps=10,bs.label="lsdbs",outgroup=FALSE,
fasta.file="Data/1000.fasta",mu=0.0001,R0=2,Tg=2.6,bs=TRUE,sample=FALSE, oldestboolean=FALSE,
dir="C:/Users/Oliver/Google Drive/Academic Work/Imperial/O15-12/BEAST/Data Collection/VarianceCheck/",
dir.names = c("Size0","Size1","Size0.1","Size10"),rep.name = "rep",
lsd.dir="C:\\Users\\Oliver\\Desktop\\lsd",network.path="\\\\fi--san02.dide.ic.ac.uk\\homes\\olw13\\Data\\",
input){
## EXTRA FUNCTIONS ##
givesWarning <- function(expr){
tryCatch(eval(expr),
warning = function(cond) TRUE)
}
## HANDLE VARIABLES ##
##########################################################
param.dir <- paste(dir,"mu_",mu,"_R0_",R0,"_Tg_",Tg,"/",sep="")
network <- paste(network.path,tail(strsplit(dir,"/")[[1]],1),"\\",sep="")
network.dir <- paste(network.path,tail(strsplit(dir,"/")[[1]],1),"\\","mu_",mu,"_R0_",R0,"_Tg_",Tg,"\\",sep="")
a <- 0
## MAIN LOOP ##
##########################################################
for (d in 1:length(dir.names)){
main.dir <- paste(param.dir,dir.names[d],"/",sep="")
network.main.dir <- paste(network.dir,dir.names[d],"\\",sep="")
for (r in 1:reps){
rep.dir <- paste(main.dir,rep.name,r,"/",sep="")
network.rep.dir <- paste(network.main.dir,rep.name,r,"\\",sep="")
if(input$fail[((d-1)*reps)+r]==FALSE){
## do nothing as fine
} else {
## attempt to rerun
if(givesWarning(system(input$lsds[((d-1)*10)+r]))==TRUE){
a <- a+1
} else {
input$fail[((d-1)*reps)+r] <- FALSE
## colate and plotbootstrap error against sigma
lsd.tb <- read.table(file=paste(rep.dir,"lsdbs_tree.txt.result",sep=""),skip = 20,nrows = n.bs)
input[[d]][,r] <- lsd.tb[,6]
input[[d+length(dir.names)]][,r] <- as.numeric(substr(lsd.tb[,4], 1, nchar(as.character(lsd.tb[,4]))-1))
t.res[[d]][,r] <- lsd.tb[,6]
m.res[[d]][,r] <- as.numeric(substr(lsd.tb[,4], 1, nchar(as.character(lsd.tb[,4]))-1))
## find most accurate sample set
#best.nex <- which((t.res[[d]][,r])^2==min((t.res[[d]][,r]^2)))
#if (length(best.nex)>1) best.nex <- best.nex[1]
## create BEAST xml in the network data directory
#Nex_2_BEASTxml(template.xml = "C:/Users/Oliver/Google Drive/Academic Work/Imperial/git/sims4/Data/test.xml",
# nex = paste(rep.dir,bs.label,best.nex,".nex",sep=""),file = paste(network.rep.dir,"lsd-beast",r,".beast.xml",sep=""),
# rep.str = paste("lsd-beast",r,sep=""),cont = t.exp)
## create necessary submit bat in the network share
#fileConn<-file(paste(network.rep.dir,"lsd-beast",r,".cluster.bat",sep=""))
#writeLines(paste("job submit /scheduler:fi--dideclusthn.dide.ic.ac.uk /stdout:",
# network.rep.dir,"out",r,".txt /stderr:",network.rep.dir,"err",r,".txt ",
# "/numcores:1-1 /jobtemplate:GeneralNodes ", paste(network.rep.dir,"lsd-beast",r,".beast.bat",sep=""),sep=""),
# fileConn)
#close(fileConn)
## create necessary beast bat in the network share
#fileConn2<-file(paste(network.rep.dir,"lsd-beast",r,".beast.bat",sep=""))
#writeLines(paste("call setjava64 \n",
# "java -Djava.library.path=\"\\\\fi--san02.dide.ic.ac.uk\\homes\\olw13\\libhmsbeagle\" -jar",
# " \"\\\\fi--san02.dide.ic.ac.uk\\homes\\olw13\\BEAST\\lib\\beast.jar\"",
# " -working -overwrite -beagle -beagle_CPU -beagle_SSE -beagle_instances 8 -threads 8 ",
# paste("\"",network.rep.dir,"lsd-beast",r,".beast.xml\"",sep=""),
# sep=""),fileConn2)
#close(fileConn2)
## call cluster BEAST
#system(paste(network.rep.dir,"lsd-beast",r,".cluster.bat",sep=""))
}
}
}
}
if (a>=1){
print(paste("Redo: ",a,"Failures exist",sep=""))
}
return(input)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.