.plotQualFilter <- function(data, xl, yl, title)
{
tmp <- data[data$LABEL == 'TP' | data$LABEL == 'FN',]
size <- sum(as.numeric.factor(tmp$SIZE))
print(paste('Sequin size', size))
# Only false positives
data <- data[data$LABEL == 'FP',]
# Quality score
score <- data$QUAL
stopifnot(length(score) > 0)
score <- as.numeric.factor(score)
x1 <- min(score)
x2 <- max(score)
data <- NULL
for (i in x1:x2)
{
data <- rbind(data, data.frame(QUAL = i, FP = sum(score >= i)))
}
data$QUAL <- as.numeric(data$QUAL)
# False positives per KB
data$FPR <- data$FP / (size / 1000)
p <- ggplot(data=data, aes_string(x='data$QUAL', y='data$FPR')) +
xlab(xl) +
ylab(yl) +
ggtitle(title) +
geom_point(size=1.0, alpha=0.5, color='red') +
geom_smooth(color='black', linetype='dashed', size=0.5) +
theme_bw() +
theme(plot.title = element_text(hjust = 0.5))
maxX <- max(data$QUAL)
maxY <- max(data$FPR)
p <- p + annotation_raster(AnaquinSupImage2, ymin=maxY-0.30, ymax=maxY, xmin=maxX-9, xmax=maxX)
suppressWarnings(print(.transformPlot(p)))
}
plotQualFilter <- function(data, xl, yl, title)
{
tryCatch({ .plotQualFilter(data, xl, yl, title) }, error=function(x) { emptyPlot('', yl, '') })
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.