diff --git a/R/plot_GATK_performance_log.R b/R/plot_GATK_performance_log.R index f63768b14..39b2b3c70 100644 --- a/R/plot_GATK_performance_log.R +++ b/R/plot_GATK_performance_log.R @@ -6,6 +6,8 @@ DATA_FILE = args[1] DESCRIPTION = args[2] OUTPUT_PDF = paste(DATA_FILE, ".pdf", sep="") +MAX_POINTS = 1000 + if ( onCMDLine ) { print(paste("Reading data from", DATA_FILE)) d = read.table(DATA_FILE, header=T) @@ -19,6 +21,15 @@ vec.margin <- function(x) { c(x[1], d[1:(l-1)]) } +everyNth <- function(x, n) { + l = dim(x)[1] + m = ceiling(l / n) + print(m) + keep = 1:l %% m == 0 + x[keep,] +} + + l = length(d$units.processed) d$units.processed.margin = vec.margin(d$units.processed) #prev = 0 @@ -32,14 +43,15 @@ generateOneReport <- function(d) { qs = quantile(d$processing.speed, probs = c(0.01, 0.5, 0.99)) # unit processing time - plot(d$elapsed.time, d$processing.speed, main=DESCRIPTION, xlab="Elapsed time (sec)", ylab="Processing speed (seconds per 1M units)", ylim=c(qs[1], qs[3]), type="b", col="cornflowerblue", lwd=2) + dpoints = everyNth(d, MAX_POINTS) + plot(dpoints$elapsed.time, dpoints$processing.speed, main=DESCRIPTION, xlab="Elapsed time (sec)", ylab="Processing speed (seconds per 1M units)", ylim=c(qs[1], qs[3]), type="b", col="cornflowerblue", lwd=2) abline(h=qs[2], lty=2) # instantaneous processing speed running_median_window = 101 rm = runmed(d$units.processed.margin, running_median_window) POINT_COL = "#0000AA33" - plot(d$elapsed.time, d$units.processed.margin, main=DESCRIPTION, xlab="Elapsed time (sec)", ylab="Units processed in last timing interval", type="p", cex = 0.5, col=POINT_COL) + plot(dpoints$elapsed.time, dpoints$units.processed.margin, main=DESCRIPTION, xlab="Elapsed time (sec)", ylab="Units processed in last timing interval", type="p", cex = 0.5, col=POINT_COL) lines(d$elapsed.time, rm, lwd=3, col="red") legend("topleft", c("Observations", "101-elt running median"), fill=c(POINT_COL, "red")) }