Entering edit mode
ChIPQCreport
requires that the "Replicate" of each sample be provided during the construction of its experiment
object.
If it is not provided, ChIPQCreport
fails with a cryptic error, even if invoked for only a single experimental sample:
> samples SampleID Tissue Factor bamReads ControlID 1 ENCFF863PSQ DOHH2 CTCF ENCFF863PSQ.sorted.markeddup.bam ENCFF631ENA bamControl Peaks 1 ENCFF631ENA.sorted.markeddup.bam NA > experiment <- ChIPQC(samples, annotation="hg38") > ChIPQCreport(experiment, F) Saving 7 x 7 in image Error in seq.default(h[1], h[2], length.out = n) : 'to' cannot be NA, NaN or infinite > traceback() 25: stop("'to' cannot be NA, NaN or infinite") 24: seq.default(h[1], h[2], length.out = n) 23: seq(h[1], h[2], length.out = n) 22: rotate(seq(h[1], h[2], length.out = n)) 21: f(...) 20: self$palette(n) 19: f(..., self = self) 18: self$map(df[[j]]) 17: FUN(X[[i]], ...) 16: lapply(aesthetics, function(j) self$map(df[[j]])) 15: f(..., self = self) 14: scale$map_df(df = df) 13: FUN(X[[i]], ...) 12: lapply(scales$scales, function(scale) scale$map_df(df = df)) 11: unlist(lapply(scales$scales, function(scale) scale$map_df(df = df)), recursive = FALSE) 10: FUN(X[[i]], ...) 9: lapply(data, scales_map_df, scales = npscales) 8: ggplot_build(x) 7: print.ggplot(x) 6: print(x) 5: grid.draw.ggplot(plot) 4: grid.draw(plot) 3: ggsave(plotCC(object, facet = facet, facetBy = facetBy, colourBy = colourBy, lineBy = lineBy, addMetaData = addMetaData), filename = file.path(reportFolder, "CCPlot.png")) 2: ChIPQCreport(experiment, F) 1: ChIPQCreport(experiment, F) > sessionInfo() R version 3.3.0 (2016-05-03) Platform: x86_64-pc-linux-gnu (64-bit) Running under: CentOS release 6.5 (Final) locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats4 parallel stats graphics grDevices utils datasets [8] methods base other attached packages: [1] ChIPQC_1.8.7 DiffBind_2.0.2 [3] SummarizedExperiment_1.2.3 Biobase_2.32.0 [5] GenomicRanges_1.24.2 GenomeInfoDb_1.8.1 [7] IRanges_2.6.1 S4Vectors_0.10.1 [9] BiocGenerics_0.18.0 ggplot2_2.1.0 loaded via a namespace (and not attached): [1] edgeR_3.14.0 [2] splines_3.3.0 [3] TxDb.Hsapiens.UCSC.hg18.knownGene_3.2.2 [4] TxDb.Mmusculus.UCSC.mm10.knownGene_3.2.2 [5] gtools_3.5.0 [6] assertthat_0.1 [7] latticeExtra_0.6-28 [8] amap_0.8-14 [9] RBGL_1.48.1 [10] Rsamtools_1.24.0 [11] Category_2.38.0 [12] RSQLite_1.0.0 [13] backports_1.0.2 [14] lattice_0.20-33 [15] limma_3.28.10 [16] digest_0.6.10 [17] RColorBrewer_1.1-2 [18] XVector_0.12.0 [19] checkmate_1.8.0 [20] colorspace_1.2-6 [21] Matrix_1.2-6 [22] plyr_1.8.4 [23] GSEABase_1.34.0 [24] chipseq_1.22.0 [25] TxDb.Hsapiens.UCSC.hg38.knownGene_3.1.3 [26] XML_3.98-1.4 [27] pheatmap_1.0.8 [28] ShortRead_1.30.0 [29] biomaRt_2.28.0 [30] genefilter_1.54.2 [31] zlibbioc_1.18.0 [32] xtable_1.8-2 [33] GO.db_3.3.0 [34] scales_0.4.0 [35] brew_1.0-6 [36] gdata_2.17.0 [37] TxDb.Rnorvegicus.UCSC.rn4.ensGene_3.2.2 [38] BiocParallel_1.6.2 [39] annotate_1.50.0 [40] GenomicFeatures_1.24.2 [41] survival_2.39-4 [42] magrittr_1.5 [43] systemPipeR_1.6.2 [44] fail_1.3 [45] gplots_3.0.1 [46] hwriter_1.3.2 [47] GOstats_2.38.0 [48] graph_1.50.0 [49] tools_3.3.0 [50] BBmisc_1.9 [51] stringr_1.1.0 [52] sendmailR_1.2-1 [53] munsell_0.4.3 [54] locfit_1.5-9.1 [55] AnnotationDbi_1.34.3 [56] Biostrings_2.40.2 [57] caTools_1.17.1 [58] grid_3.3.0 [59] RCurl_1.95-4.8 [60] TxDb.Celegans.UCSC.ce6.ensGene_3.2.2 [61] rjson_0.2.15 [62] AnnotationForge_1.14.2 [63] bitops_1.0-6 [64] base64enc_0.1-3 [65] gtable_0.2.0 [66] DBI_0.4-1 [67] reshape2_1.4.1 [68] R6_2.1.3 [69] GenomicAlignments_1.8.3 [70] Nozzle.R1_1.1-1 [71] dplyr_0.4.3 [72] rtracklayer_1.32.1 [73] KernSmooth_2.23-15 [74] stringi_1.1.1 [75] TxDb.Hsapiens.UCSC.hg19.knownGene_3.2.2 [76] BatchJobs_1.6 [77] Rcpp_0.12.7 [78] TxDb.Dmelanogaster.UCSC.dm3.ensGene_3.2.2 [79] TxDb.Mmusculus.UCSC.mm9.knownGene_3.2.2
This error does not occur for an identical invocation of ChIPQCreport
for an experiment
object whose sample was assigned "Replicate" = 1.
Great, thanks Rory.
Thanks, Rory!
Might it be possible to add a check for that within
ChIPQCreport
itself (and for it to automatically use theChIPQCsample
object, from theChIPQCexperiment
), to prevent users from needing to use a workaround with only a single sample (i.e. to maintain a consistent API)?The ChIPQCreport() function should generate reports from ChIPQCexperiment and ChIPQCsample in a very similar manner.
In your case the below examples would give equivalent results. This would work with Replicates are NA as in your case.
> ChIPQCreport(QCsample(experiment)[[1]])
> ChIPQCreport(experiment,facetBy="Sample",colourBy=NULL,lineBy=NULL)
Both ChIPQCsample and ChIPQCexperiment reports should contain the same information but when creating from an ChIPQCexperiment, various aesthetics are filled in from the samplesheet or user defined metadata. By default we use Replicate to colour lines and so in your case this failed. One immediate solution, as Rory recommends, is to simply work with one sample and no metadata - first example, the other immediate solution is to set parameters such as "facetBy","Sample","lineBy","colourBy" to columns with metadata.
I agree a check for valid columns is required and will look to implement in the future.
best,
tom
I appreciate this useful information!
I will keep that workaround in mind and am glad to hear that.
Thanks,
Coby
Just wanted to follow-up on this. This workaround is still needed in the latest version (1.12.0) and the same cryptic error message is emitted without it.