source('../../cfneval_lib.R') source('weightedTau.R') # set constants cost.fcn <- c('pred_pb_mean') eval.dir <- '/projects/compbio/experiments/protein-predict/casp7' target.file <- paste(eval.dir, 'target_list.txt', sep='/') score.file <- 'decoys/evaluate.anglevector.rdb' qual.metric <- 'real_cost' # read the targets targets <- read.delim(target.file, header=FALSE, colClasses="character")$V1 # set up data structures to store the decoy information decoys <- vector("list", length(targets)) names(decoys) <- targets complete.decoys <- partial.decoys <- decoys # populate those structures for(t in targets) { decoys[[t]] <- read.rdb(paste(eval.dir, t, score.file, sep='/')) decoys[[t]] <- subset(decoys[[t]], decoys[[t]][[qual.metric]] != min(decoys[[t]][[qual.metric]])) complete.decoys[[t]] <- subset(decoys[[t]], missing_atoms == 0) partial.decoys[[t]] <- subset(decoys[[t]], missing_atoms > 0) } for(t in targets) { png(paste('plots/', t, '.png', sep=''), height=600, width=800) plot(complete.decoys[[t]][[cost.fcn]], complete.decoys[[t]][[qual.metric]], xlab=cost.fcn, ylab=qual.metric, main=t) # points(complete.decoys[[t]][[cost.fcn]], # complete.decoys[[t]][[qual.metric]], # pch=1) # points(partial.decoys[[t]][[cost.fcn]], # partial.decoys[[t]][[qual.metric]], # pch=2) n <- length(complete.decoys[[t]][[cost.fcn]]) r <- vector("numeric", n) r[order(complete.decoys[[t]][[cost.fcn]])] <- 0:(n-1) w <- vector("numeric", n) tau <- vector("numeric", 7) tauexp <- vector("list", 7) for(a in 1:7) { alpha <- a - 1 w <- exp(-(alpha - 1) * r / n) tau[a] <- weightedTau(complete.decoys[[t]][[cost.fcn]], complete.decoys[[t]][[qual.metric]], w) tauexp[[a]] <- substitute(tau[alpha] == value, list(alpha=alpha, value=as.numeric(format(tau[a], digits=2)))) } mtext(substitute(list(a,b,c,d,e,f,g), list(a=tauexp[[1]], b=tauexp[[2]], c=tauexp[[3]], d=tauexp[[4]], e=tauexp[[5]], f=tauexp[[6]], g=tauexp[[7]]))) graphics.off() }