Started on r format(Sys.time(), "%Y-%m-%d %H:%M:%S")
knitr::opts_chunk$set(echo = TRUE) ## This report requires the object resultList, dataset, param require(knitr) require(kableExtra)
## debug: #require(ezRun) #load("/home/gtan/analysis/gtan/p2438-RNABamStats/resultList.RData") #load("/home/gtan/analysis/gtan/p2438-RNABamStats/dataParam.rda") ## end of debug conds = ezConditionsFromDataset(dataset, param=param) samples = rownames(dataset) sampleColors = getSampleColors(conds, samples) bamFiles = dataset$BAM
if (param$writeIgvSessionLink){ # titles[["Genome Browser"]] = "Genome Browser" # addTitle(doc, titles[[length(titles)]], 2, id=titles[[length(titles)]]) ## NOTEP: igv links are not yet added to the report. if (length(bamFiles) > 4){ idx = which(!duplicated(conds)) idx = idx[1:min(4, length(idx))] } else { idx = 1:length(bamFiles) } for (each in idx){ writeIgvSession(genome=getIgvGenome(param), refBuild=param$ezRef["refBuild"], file=basename(sub(".bam", "-igv.xml", bamFiles[each])), bamUrls=paste(PROJECT_BASE_URL, bamFiles[each], sep="/")) writeIgvJnlp(jnlpFile=basename(sub(".bam", "-igv.jnlp", bamFiles[each])), projectId=param$projectId, sessionUrl=paste(PROJECT_BASE_URL, sub(".bam", "-igv.xml", bamFiles[each]), sep="/")) } }
is.numeric0 <- function(x) { identical(x, numeric(0)) } basicStats = ezMatrix(0, rows=samples, cols=c('MappingRate', 'DuplicationRate', 'avgCoverage', 'errorRate', 'insertionRate', 'deletionRate')) for (sm in samples){ if(any(sapply(resultList[[sm]], is.numeric0))){ resultList[[sm]][sapply(resultList[[sm]], is.numeric0)] = 0 } basicStats[sm, 'MappingRate'] = resultList[[sm]]$mappingRate basicStats[sm, 'DuplicationRate'] = resultList[[sm]]$dupRate basicStats[sm, 'avgCoverage'] = resultList[[sm]]$avgCoverage basicStats[sm, 'errorRate'] = resultList[[sm]]$errorRate basicStats[sm, 'insertionRate'] = resultList[[sm]]$insertRate basicStats[sm, 'deletionRate'] = resultList[[sm]]$delRate } ezInteractiveTableRmd(basicStats, digits=3)
The plot holds for each sample the number of reads in Millions that have X matches in the target and are reported in the file.
mmValues = integer() for (sm in samples){ mmValues = union(mmValues, as.integer(names(resultList[[sm]]$multiMatchInFileTable))) } mmCounts = ezMatrix(0, rows=samples, cols=sort(mmValues)) for (sm in samples){ mm = resultList[[sm]]$multiMatchInFileTable mmCounts[sm, names(mm)] = mm }
alignmentCountBarPlot(mmCounts, relative=FALSE, file="multiMatchInFile-barplot.txt") alignmentCountBarPlot(mmCounts, relative=TRUE)
txtFile <- "read-alignment-statistics.txt" ezWrite.table(mmCounts, file=txtFile, head="Sample")
plots <- list.files(".","fragmentSize_.*png$") for(i in 1:length(plots)){ filename <- plots[i] cat("![](",filename,")") }
plots <- list.files(".","libComplexity_.*png$") for(i in 1:length(plots)){ filename <- plots[i] cat("![](",filename,")") }
Plots about DuplicationRate
plots <- list.files(".","QualiMapStats_.*png$") for(i in 1:length(plots)){ filename <- plots[i] cat("![](",filename,")") }
require(DT) qualimapResults = data.frame(SampleName = samples, ReportLink = file.path(samples, 'qualimapReport.html'), stringsAsFactors = F) qualimapResults$ReportLink = paste0('<a href="',qualimapResults$ReportLink,'">',qualimapResults$ReportLink,'</a>') datatable(qualimapResults, escape = F, caption='', colnames=colnames(qualimapResults), options=list(dom = 'Bfrtip', pageLength=25, autoWidth=TRUE))
ezInteractiveTableRmd(dataset)
ezSessionInfo()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.