library(ggplot2) library(cowplot) library(dplyr) library(scales) library(gridExtra) library(grid) library(ggplotify) dat <- read.table('output/statsFiles/all.tmerge.min2reads.endSupport-all.vs.ntCoverageByGenomePartition.stats.tsv', header=T, as.is=T, sep='\t') dat <- subset(dat, seqTech=='ONT') dat <- subset(dat, capDesign=='Post') dat <- subset(dat, sizeFrac=='0+') dat <- subset(dat, sampleRep=='TestisRep1') dat$seqTech <- gsub('-', '\n', dat$seqTech) dat$sampleRep <- gsub('Post_', '', dat$sampleRep) horizCats <- length(unique(dat$capDesign)) * length(unique(dat$sampleRep)) vertCats <- length(unique(dat$seqTech)) wXyPlot = (horizCats * 0.9) +1.7 hXyPlot = (vertCats * 0.6) + 1.7 geom_textSize=1.4 themeSize = (14/5) * geom_textSize # https://stackoverflow.com/questions/25061822/ggplot-geom-text-font-size-control/25062509 lineSize=geom_textSize/8 minorLineSize=lineSize/2 dat <- filter(dat, splicingStatus=='all') dat <- select(dat, -splicingStatus) dat$partition<-factor(dat$partition, ordered=TRUE) plotBase <- "p <- ggplot(dat[order(dat$partition), ], aes(x=1, y=nt_coverage_count, fill=partition)) + geom_bar(stat='identity') + ylab('# genomic nts covered') + xlab('') + #scale_y_continuous(labels=comma)+ scale_fill_manual (values=c(intron='#d98c8c', intergenic='#33ccff', CDS='#00e64d', exonOfNCT='#6666ff', exonOfPseudo='#e066ff', UTR='#999966'))+ guides(fill = guide_legend(title='Category\n(w.r.t. GENCODE)'))+ #geom_text(position = 'stack', size=geom_textSize, aes( y = count, label = paste(sep='',percent(round(percent, digits=2)),' / ','(',comma(count),')'), hjust = 0.5, vjust = 1))+ theme(axis.ticks.x = element_blank(), axis.text.x = element_blank()) + theme(axis.text= element_text(size=themeSize*1.8), axis.ticks = element_line(size=lineSize), axis.line = element_line(colour = '#595959', size=lineSize), axis.title=element_text(size = themeSize*2), panel.grid.major = element_line(colour='#d9d9d9', size=lineSize),panel.grid.minor = element_line(colour='#e6e6e6', size=minorLineSize),panel.border = element_blank(),panel.background = element_blank(), strip.background = element_rect(colour='#737373',fill='white'), legend.key.size=unit(0.5,'line'), legend.title=element_text(size=themeSize*1.2), legend.text=element_text(size=themeSize), strip.text = element_text(size = themeSize)) + theme(axis.ticks.x = element_blank(), axis.text.x = element_blank()) + " plotFacetXy <- parse(text =paste(plotBase, "facet_grid( seqTech ~ capDesign + sampleRep, scales='free_y')")) plotFacetYx <- parse(text=paste(plotBase, "facet_grid( capDesign + sampleRep ~ seqTech, scales='free_y')")) plotFacetXy <- parse(text =paste(plotFacetXy, " + theme(strip.text.x = element_blank(), strip.text.y = element_blank())")) plotFacetYx <- parse(text=paste(plotFacetYx, " + theme(strip.text.x = element_blank(), strip.text.y = element_blank())")) pXy <- eval(plotFacetXy) pYx <- eval(plotFacetYx) legend <- get_legend(pXy) pXyNoLegend <- pXy + theme(legend.position='none') pYxNoLegend <- pYx + theme(legend.position='none') legendOnly <- grid.arrange(legend) pXyGrob <- as.grob(pXy) pYxGrob <- as.grob(pYx) pXyNoLegendGrob <- as.grob(pXyNoLegend) pYxNoLegendGrob <- as.grob(pYxNoLegend) hLegendOnly <- convertUnit(sum(legend$heights), 'in', valueOnly=TRUE) wLegendOnly <- convertUnit(sum(legend$widths), 'in', valueOnly=TRUE) hYxPlot <- wXyPlot wYxPlot <- hXyPlot hXyNoLegendPlot<- hXyPlot wXyNoLegendPlot<- wXyPlot - wLegendOnly hYxNoLegendPlot<- hYxPlot wYxNoLegendPlot<- wYxPlot - wLegendOnly save_plot('output/plots/tmerge.ntCoverageByGenomePartition.stats/ONT/Post/ONT_Post_0+_TestisRep1.tmerge.min2reads.endSupport-all.ntCoverageByGenomePartition.stats.legendOnly.png', legendOnly, base_width=wLegendOnly, base_height=hLegendOnly) save_plot('output/plots/tmerge.ntCoverageByGenomePartition.stats/ONT/Post/ONT_Post_0+_TestisRep1.tmerge.min2reads.endSupport-all.ntCoverageByGenomePartition.stats.xy.wLegend.png', pXy, base_width=wXyPlot, base_height=hXyPlot) save_plot('output/plots/tmerge.ntCoverageByGenomePartition.stats/ONT/Post/ONT_Post_0+_TestisRep1.tmerge.min2reads.endSupport-all.ntCoverageByGenomePartition.stats.xy.woLegend.png', pXyNoLegend, base_width=wXyNoLegendPlot, base_height=hXyNoLegendPlot) save_plot('output/plots/tmerge.ntCoverageByGenomePartition.stats/ONT/Post/ONT_Post_0+_TestisRep1.tmerge.min2reads.endSupport-all.ntCoverageByGenomePartition.stats.yx.wLegend.png', pYx, base_width=wYxPlot, base_height=hYxPlot) save_plot('output/plots/tmerge.ntCoverageByGenomePartition.stats/ONT/Post/ONT_Post_0+_TestisRep1.tmerge.min2reads.endSupport-all.ntCoverageByGenomePartition.stats.yx.woLegend.png', pYxNoLegend, base_width=wYxNoLegendPlot, base_height=hYxNoLegendPlot)