R/cas9OCT4_hsZygote_diffexDT.R

#' Differential expression from RNAseq assay of OCT4(POU5F1) CRISPR-Cas9 knockouts in human zygote
#' 
#' GSE100118 is a CRISPR knockdown study of the pluripotency transcription factor OCT4 during human embryogenesis.
#'  
#' Generated 10 December 2019 from the trimmed reads associated with project on GEO. These were downloaded and aligned against the human genome using
#' Kallisto before transcript abundances were estimated using limma-voom. Finally, differential gene expression values were computed.
#' 
#' @docType data
#' @usage data(cas9OCT4_hsZygote_diffexDT)
#' 
#' @examples
#' library(ggplot2)
#' library(magrittr)
#' data(cas9OCT4_hsZygote_diffexDT)
#' 
#' cas9OCT4_hsZygote_diffexDT %>% ggplot(aes(x = koOCT4_logFC, y = -log10(koOCT4_pValue))) + 
#'     geom_point(aes(colour = p.adjust(koOCT4_pValue, "fdr") < 0.01)) +
#'     scale_colour_manual(values = c("darkgrey","dodgerblue")) +
#'     theme_bw()
#'     
#'    
#'
#' cas9OCT4_hsZygote_diffexDT[,qplot(koOCT4_pValue, bins = 100)]
#' 
#' OCT4knockout_betaUniformModel <- fitBetaUniformMixtureDistribution(cas9OCT4_hsZygote_diffexDT$koOCT4_pValue, nStarts = 20)
#' 
#' 
#' OCT4knockout_betaUniformModel
#' 
#' noiseFractionUpperBound(OCT4knockout_betaUniformModel)
#' 
#' # If we were to use a P-value cutoff of 0.01, what would the FP rate be?
#' TP <- truePositiveFraction(OCT4knockout_betaUniformModel, pValueThreshold = 0.01)
#' FP <- falsePositiveFraction(OCT4knockout_betaUniformModel, pValueThreshold = 0.01)
#' round(100*FP/(TP+FP), digits = 1) # Only 2.8% FPs
#' 
#' 
#' # Perform meta-analysis using the TTRUST TF->target sets    
#'    
#' cas9OCT4_hsZygote_diffexDT[, betaUnifScore_FDR0.05 := betaUniformScore(koOCT4_pValue, OCT4knockout_betaUniformModel, FDR = 0.05)]
#' 
#' TTRUST_TF2targets_DT[, geneID := as.character(geneID)]
#' 
#' TTRUST_TF_pvalues <- cas9OCT4_hsZygote_diffexDT[ unique(TTRUST_TF2targets_DT[!is.na(geneID), .(TF,geneID)]), , on = 'geneID'][!is.na(koOCT4_pValue),.(pValueSet = list(koOCT4_pValue), geneSet = list(geneSymbol), scoreSum = sum(betaUnifScore_FDR0.05)), by = TF]
#' 
#' TTRUST_TF_pvalues[, betaUniformMixtureP := betaUniformPvalueSumTest(pValueSet[[1]], OCT4knockout_betaUniformModel), by = TF]
#' TTRUST_TF_pvalues[, fishersP := fishersPvalueSumTest(pValueSet[[1]]), by = TF]
#' 
#' TTRUST_TF_pvalues[p.adjust(betaUniformMixtureP, method = 'fdr') < 0.05] # No significant gene sets
#' TTRUST_TF_pvalues[p.adjust(fishersP, method = 'fdr') < 0.05] # Quite a few ... too many for so little signal?
#' 
#' TTRUST_TF_pvalues[scoreSum > 0]
#' 
#' @source \url{https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE100118}
#' @references Fogarty NME, McCarthy A, Snijders KE, Powell BE et al. Genome editing reveals a role for OCT4 in human embryogenesis. Nature 2017
#' @references Pimentel H, Bray NL, Puente S, Melsted P, Pachter L. Differential analysis of RNA-seq incorporating quantification uncertainty. Nat Methods. 2017
#' @references Law CW, Chen Y, Shi W, Smyth GK. voom: Precision weights unlock linear model analysis tools for RNA-seq read counts. Genome Biol. 2014
#' @format A data.table with 15,028 rows, documenting differential gene expression (logFC and unadjusted P-values) of 15,003 ENSEMBL gene entities in zygotes grown with and wihout the OCT4 transcription factor gene. Addition gene symbols, entrez gene IDs and uniprot annotations also included (duplicated ENSG entries result from many-to-one mappings)
"cas9OCT4_hsZygote_diffexDT"
adamsardar/metaDEGth documentation built on Sept. 28, 2022, 10:12 p.m.