plain <- function(x,...) {
format(x, ..., scientific = FALSE, drop0trailing = TRUE, big.mark = ",")
}
bc_rank_plot <- function(stats, raw_cells, filt_cells, save){
cells <- raw_cells %in% filt_cells
keep <- !duplicated(stats$total)
plot_df <- data.frame(Rx=stats$rank, Tx=stats$total, cell=cells)
plot_df <- plot_df[keep, ]
png(save, width = 700, height = 500)
print({
ggplot(subset(plot_df, plot_df$Tx >0), aes(x=Rx, y=Tx, col=cell, alpha=cell))+
geom_point(size=3) +
geom_hline(yintercept = stats@metadata$knee, lty = 2, col = '#0972D5', size=1.5) +
annotate("text", x=max(plot_df$Tx), y=stats@metadata$knee+10000, label="Knee", color = "#0972D5", size=5.5) +
geom_hline(yintercept = stats@metadata$inflection, lty = 2, col = '#09CFD5', size = 1.5) +
annotate("text", x=max(plot_df$Tx), y=stats@metadata$inflection+500, label="Inflection", color = "#09CFD5", size=5.5) +
scale_x_log10(labels = plain, breaks = trans_breaks("log10", function(x) round(10^x, 0))) +
scale_y_log10(breaks = trans_breaks('log10', function(x) floor(10^x)), labels = plain)+
scale_color_manual(values = c('#8595A8', '#6406B6'), name = NULL, labels = c("Background", "Cells")) +
scale_alpha_manual(values = c(0.5,1)) +
labs(x = 'Barcodes', y = 'UMI counts', title = 'Barcode Rank Plot') +
guides(alpha = "none", colour = guide_legend(reverse = TRUE, override.aes=list(size = 5))) +
theme_linedraw() +
theme(plot.title = element_text(size=20, hjust=0.5, face = 'bold'),
axis.title = element_text(size = 18),
axis.text = element_text(size = 15),
legend.text = element_text(size=19),
legend.background = element_rect(fill = 'transparent'),
legend.position = c(0.15,0.15))
})
dev.off()
}
print_HTML <- function(seq_stats, cell_stats, dir, sample_id){
system(paste0('base64 ', dir, '/barcode_rank.png > ', dir, '/barcode_rank.txt'))
b64_bc <- readChar(paste0(dir, '/barcode_rank.txt'), file.info(paste0(dir, '/barcode_rank.txt'))$size)
target <- HTMLInitFile(dir, filename=paste0(sample_id, '_summary'))
HTML('', file=target)
HTML("
", file=target)
HTML.title(' Pre-Processing Summary', HR=1, file = target)
HTML("
", file = target)
HTML.title(sample_id, HR=2, file = target)
HTML("", file=target)
HTML("
", file=target)
HTML.title('Sequencing/Alignment Stats', HR=3, file=target)
HTML('
', file=target)
HTML(paste(' ', seq_stats$stat, ' | ', seq_stats$value, ' |
'), file=target)
HTML('
', file=target)
HTML.title('Cell Stats', HR=3, file=target)
HTML('
', file=target)
HTML(paste(' ', cell_stats$stat, ' | ', cell_stats$value, ' |
'), file=target)
HTML('
', file=target)
HTML("
", file = target)
HTML("
", file=target)
HTML(paste0("

"), file=target)
HTML("
", file = target)
HTML("
", file = target)
HTML(' ', file=target)
HTMLEndFile()
}