knitr::opts_chunk$set(echo = TRUE)
library(plotly)
library(kableExtra)

Started on r format(Sys.time(), "%Y-%m-%d %H:%M:%S")

Cov19QC {.tabset}

Summary

mySummary <- data.frame(Passed = rep(0,4), PassedFraction = rep(0,4), Failed = rep(0,4), FailedFraction = rep(0,4))
rownames(mySummary) = c('rawReads > 100K', 'mappingRate > 0.2', 'avgCoverage > 100', 'minCoverageFraction > 80%')

mySummary['rawReads > 100K', 'Passed'] = c(sum(dataset[['Read Count']] >= 10^5))
mySummary['rawReads > 100K', 'Failed'] = c(sum(dataset[['Read Count']] < 10^5))
mySummary['rawReads > 100K', 'PassedFraction'] = mySummary['rawReads > 100K', 'Passed']/nrow(dataset)
mySummary['rawReads > 100K', 'FailedFraction'] = mySummary['rawReads > 100K', 'Failed']/nrow(dataset)

mySummary['mappingRate > 0.2', 'Passed'] = c(sum(result[['mappingRate']] >= 20, na.rm = TRUE))
mySummary['mappingRate > 0.2', 'Failed'] = c(sum(result[['mappingRate']] < 20, na.rm = TRUE))
mySummary['mappingRate > 0.2', 'PassedFraction'] = mySummary['mappingRate > 0.2', 'Passed']/nrow(result)
mySummary['mappingRate > 0.2', 'FailedFraction'] = mySummary['mappingRate > 0.2', 'Failed']/nrow(result)

mySummary['avgCoverage > 100', 'Passed'] = c(sum(result[['avgCov']] >= 100, na.rm = TRUE))
mySummary['avgCoverage > 100', 'Failed'] = c(sum(result[['avgCov']] < 100, na.rm = TRUE))
mySummary['avgCoverage > 100', 'PassedFraction'] = mySummary['avgCoverage > 100', 'Passed']/nrow(result)
mySummary['avgCoverage > 100', 'FailedFraction'] = mySummary['avgCoverage > 100', 'Failed']/nrow(result)

mySummary['minCoverageFraction > 80%', 'Passed'] = c(sum(result[['minCov']] >= 0.8))
mySummary['minCoverageFraction > 80%', 'Failed'] = c(sum(result[['minCov']] < 0.8))
mySummary['minCoverageFraction > 80%', 'PassedFraction'] = mySummary['minCoverageFraction > 80%', 'Passed']/nrow(result)
mySummary['minCoverageFraction > 80%', 'FailedFraction'] = mySummary['minCoverageFraction > 80%', 'Failed']/nrow(result)

ezInteractiveTableRmd(values=mySummary)

Sample Stats

ezInteractiveTableRmd(values=result)

Plots

Raw Read Counts

The read counts in each sample.

if(dataset[['PlateName [Characteristic]']][1] != 'ready-made by the user'){
  dataset <- dataset[order(dataset[['PlateName [Characteristic]']], dataset[['Read Count']]),]
  dataset[['Name']] <- paste(dataset[['PlateName [Characteristic]']], dataset[['Name']], sep = '_')
} else {
  dataset <- dataset[order(dataset[['Read Count']]),]
}
dataset[['Read Count']] <- dataset[['Read Count']]/10^3
dataset[['Name']] <- factor(dataset[['Name']], levels=unique(dataset[['Name']]))

The read counts per Plate

if(dataset[['PlateName [Characteristic]']][1] != 'ready-made by the user'){
  m <- list(
    l = 80,
    r = 80,
    b = 200,
    t = 100,
    pad = 0
  )
  readCountPerPlate <- tapply(dataset[['Read Count']], INDEX = dataset[['PlateName [Characteristic]']], sum)/10^3
  names(readCountPerPlate) <- unique(dataset[['PlateName [Characteristic]']])

  plot_ly(x=names(readCountPerPlate), y=readCountPerPlate, type="bar") %>%
    layout(title="Total reads",
           yaxis = list(title = "Counts [M]"),
           margin = m
    )
}
m <- list(
  l = 80,
  r = 80,
  b = 200,
  t = 100,
  pad = 0
)

plot_ly(x=dataset[['Name']], y=dataset[['Read Count']], type="bar") %>%
  layout(title="Total reads",
         yaxis = list(title = "Counts [K]"),
         margin = m
  )

Mapping Rate

if(result[['PlateName [Characteristic]']][1] != 'ready-made by the user'){
  result2 <- result[order(result[['PlateName [Characteristic]']], result[['Read Count']]),]
  result2[['Name']] <- paste(result2[['PlateName [Characteristic]']], result2[['Name']], sep = '_')
  } else {
  result2 <- result[order(result[['Read Count']]),] 
  }
  result2[['Name']] <- factor(result2[['Name']], levels=unique(result2[['Name']]))
m <- list(
  l = 80,
  r = 80,
  b = 200,
  t = 100,
  pad = 0
)
plot_ly(x=result2[['Name']], y=result2[['mappingRate']], type="bar") %>%
  layout(title="Mapping Rate",
         yaxis = list(title = "in %"),
         margin = m
  )

Coverage

  avgCoverage <- result2$avgCov
  names(avgCoverage) <- result2[['Name']]
m <- list(
  l = 80,
  r = 80,
  b = 200,
  t = 100,
  pad = 0
)
plot_ly(x=result2[['Name']], y=result2[['avgCov']], type="bar") %>%
  layout(title="average Coverage",
         yaxis = list(title = "Genomic Coverage"),
         margin = m
  )

Sample Clustering

idxMat = ezMatrix(match(gt, c("0/0", "0/1", "1/1")) -2, rows=rownames(gt), cols=sub('.bam','', basename(colnames(gt))))

d = dist(t(idxMat))
if (all(!is.na(d))){
    hc=hclust(d, method="ward.D2" );
    hcd = as.dendrogram(hclust(d, method="ward.D2"), hang=-0.1)
    par(mar=c(12.1,4.1,4.1,2.1))
    plot(hcd, main="Cluster by Genotype", xlab="")
}

Input Dataset

ezInteractiveTableRmd(values=input$meta)

Settings

settings = character()
settings["Reference:"] <- param[['refBuild']]
settings["nReads"] <- param[['readsUsed']]
settings[["AdapterSeq"]] <- param[['Adapter1']]
settings[["minCoverage"]] <- param[['minCov']]
settings[["minReads"]] <- param[['minReads']]
settings["specialOptions"] <- param[['specialOptions']]
kable(settings, row.names=TRUE, 
      col.names="Setting", format="html") %>%
  kable_styling(bootstrap_options = "striped", full_width = F,
                position = "left")

SessionInfo

ezSessionInfo()


uzh/ezRun documentation built on May 4, 2024, 3:23 p.m.