Intro

Here we are performing an analysis of 200 articles which is randomly selected from 1500 PMC articles.

knitr::opts_chunk$set(fig.width=7, fig.height=5) 

library("wordcloud")
## Loading required package: RColorBrewer
library("RColorBrewer")
library("wordcloud2")
library("reutils")
library("XML")
library("kableExtra")
library("Biobase")
## Loading required package: BiocGenerics
## Loading required package: parallel
## 
## Attaching package: 'BiocGenerics'
## The following objects are masked from 'package:parallel':
## 
##     clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
##     clusterExport, clusterMap, parApply, parCapply, parLapply,
##     parLapplyLB, parRapply, parSapply, parSapplyLB
## The following objects are masked from 'package:stats':
## 
##     IQR, mad, sd, var, xtabs
## The following objects are masked from 'package:base':
## 
##     anyDuplicated, append, as.data.frame, basename, cbind, colnames,
##     dirname, do.call, duplicated, eval, evalq, Filter, Find, get, grep,
##     grepl, intersect, is.unsorted, lapply, Map, mapply, match, mget,
##     order, paste, pmax, pmax.int, pmin, pmin.int, Position, rank,
##     rbind, Reduce, rownames, sapply, setdiff, sort, table, tapply,
##     union, unique, unsplit, which.max, which.min
## Welcome to Bioconductor
## 
##     Vignettes contain introductory material; view with
##     'browseVignettes()'. To cite Bioconductor, see
##     'citation("Biobase")', and for packages 'citation("pkgname")'.
## 
## Attaching package: 'Biobase'
## The following object is masked from 'package:reutils':
## 
##     content
library("vioplot")
## Loading required package: sm
## Warning in fun(libname, pkgname): couldn't connect to display ":0"
## Package 'sm', version 2.2-5.6: type help(sm) for summary information
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric

Overview of included and excluded analyses

x <- read.table("QC-analysis.tsv",header=TRUE,fill=TRUE,sep="\t")
head(x)
##   Pubmed.Central.ID Article.number Allocated          Journal
## 1        PMC6493771            691   Kaumadi PLoS Comput Biol
## 2        PMC6442023            462   Kaumadi  Front Pharmacol
## 3        PMC6384238            213   Kaumadi      Front Oncol
## 4        PMC6594459           1172   Kaumadi        Ann Oncol
## 5        PMC6649552           1407   Kaumadi       Cell Cycle
## 6        PMC6478283            637   Kaumadi         PLoS One
##              Omics.type                        Organism
## 1               EXCLUDE                         EXCLUDE
## 2               RNA-seq Homo sapiens, Rattus norvegicus
## 3 Gene expression array                    Homo sapiens
## 4              Database                    Homo sapiens
## 5               RNA-seq                    Mus musculus
## 6              Database                    Homo sapiens
##                    Gene.set.library GS.version Statistical.test.used
## 1                           EXCLUDE    EXCLUDE               EXCLUDE
## 2                               GEO         No                  GSEA
## 3                          GO, KEGG         No            Not stated
## 4                            MSigDB         No                  GSEA
## 5                          GO, KEGG         No            Not stated
## 6 KEGG, Reactome, PID, DisGeNET, GO         No            Not stated
##   FDR.Correction        App.used App.Version Code.availability
## 1        EXCLUDE         EXCLUDE     EXCLUDE           EXCLUDE
## 2             No            GSEA         Yes              <NA>
## 3            Yes clusterProfiler          No              <NA>
## 4             No            GSEA         Yes              <NA>
## 5             No           DAVID          No              <NA>
## 6             No        ToppGene          No              <NA>
##   Background.gene.set Assumptions.violated Gene.lists.provided
## 1             EXCLUDE              EXCLUDE             EXCLUDE
## 2                <NA>                  FDR                  No
## 3          Not stated           Background                 Yes
## 4                <NA>                  FDR                  No
## 5          Not stated      Background, FDR                  No
## 6          Not stated      Background, FDR                 Yes
colnames(x)
##  [1] "Pubmed.Central.ID"     "Article.number"        "Allocated"            
##  [4] "Journal"               "Omics.type"            "Organism"             
##  [7] "Gene.set.library"      "GS.version"            "Statistical.test.used"
## [10] "FDR.Correction"        "App.used"              "App.Version"          
## [13] "Code.availability"     "Background.gene.set"   "Assumptions.violated" 
## [16] "Gene.lists.provided"
dim(x)
## [1] 245  16
exclude <- subset(x,x$GS.version=="EXCLUDE")
nrow(exclude)
## [1] 14
length(unique(exclude$Pubmed.Central.ID))
## [1] 14
x <- subset(x,x$GS.version!="EXCLUDE")
nrow(x)
## [1] 231
length(unique(x$Pubmed.Central.ID))
## [1] 186

Journal

journal <- x$Journal
journal_split <- strsplit(journal,", ")
journal <- unlist(journal_split)
res <- table(journal)
res <- res[order(res)]
length(res)
## [1] 101
res
## journal
##                               3 Biotech Am J Physiol Gastrointest Liver Physiol 
##                                       1                                       1 
##                          Animals (Basel                               Ann Oncol 
##                                       1                                       1 
##                  Appl Environ Microbiol                              Biosci Rep 
##                                       1                                       1 
##                     BMC Bioinformatics.                               BMC Genet 
##                                       1                                       1 
##                          BMC Infect Dis                           BMC Med Genet 
##                                       1                                       1 
##                        BMC Med Genomics                BMC Musculoskelet Disord 
##                                       1                                       1 
##                          Cancer Control                         Cancers (Basel) 
##                                       1                                       1 
##                              Cell Cycle                       Cell Death Discov 
##                                       1                                       1 
##                                   Cells                                Chin Med 
##                                       1                                       1 
##                        Clin Epigenetics                      Clin Epigenetics.  
##                                       1                                       1 
##                             Commun Biol                           Endocrinology 
##                                       1                                       1 
##                           FEBS Open Bio                            Front Genet  
##                                       1                                       1 
##                        Genome Biol Evol                         Genomics Inform 
##                                       1                                       1 
##                                 Heliyon                              Hepatology 
##                                       1                                       1 
##                        Int J Endocrinol                      Int J Nanomedicine 
##                                       1                                       1 
##                        Int J Ophthalmol                  J Assist Reprod Genet. 
##                                       1                                       1 
##                             J Bacteriol                                J Cancer 
##                                       1                                       1 
##                    J Cardiovasc Dev Dis                     J Diabetes Investig 
##                                       1                                       1 
##                     J Immunother Cancer                       J Invest Dermatol 
##                                       1                                       1 
##                           J Ovarian Res                           J Res Med Sci 
##                                       1                                       1 
##                            J Transl Med                                 J Virol 
##                                       1                                       1 
##                    Medicine (Baltimore)                               Mol Breed 
##                                       1                                       1 
##                  Mol Ther Nucleic Acids                           Neurobiol Dis 
##                                       1                                       1 
##                               Nutrients                                  Peer J 
##                                       1                                       1 
##                              Radiat Res                              Respir Res 
##                                       1                                       1 
##                          Stem Cells Int                                 Thyroid 
##                                       1                                       1 
##                             Toxicol Sci                                Virology 
##                                       1                                       1 
##              World J Gastrointest Oncol                         Am J Transl Res 
##                                       1                                       2 
##                            Arch Med Sci                               Biol Open 
##                                       2                                       2 
##                      BMC Bioinformatics                      Cell Commun Signal 
##                                       2                                       2 
##                          Cell Death Dis                         Clin Cancer Res 
##                                       2                                       2 
##                         Clin Proteomics               Diabetes Metab Syndr Obes 
##                                       2                                       2 
##                             Dis Markers                             Epigenetics 
##                                       2                                       2 
##                          Front Neurosci                           Front Physiol 
##                                       2                                       2 
##                           Genes (Basel)                         J Hematol Oncol 
##                                       2                                       2 
##                           Med Sci Monit                            Metabolomics 
##                                       2                                       2 
##                                 Mol Med                              Rice (N Y) 
##                                       2                                       2 
##                       Transl Psychiatry                                 Viruses 
##                                       2                                       2 
##                              BMC Cancer                         Cancer Cell Int 
##                                       3                                       3 
##                           Front Immunol                           Int J Mol Sci 
##                                       3                                       3 
##                              J Clin Med                              Mol Autism 
##                                       3                                       3 
##                                Plos One                                RNA Biol 
##                                       3                                       3 
##                       Aging (Albany NY)                            Exp Ther Med 
##                                       4                                       4 
##                             Front Oncol                         Front Pharmacol 
##                                       4                                       4 
##                             Metabolites                             Mol Med Rep 
##                                       4                                       4 
##                              Oncotarget                        Cancer Manag Res 
##                                       4                                       5 
##                          Biomed Res Int                       Onco Targets Ther 
##                                       6                                       6 
##                             Front Genet                               Oncol Rep 
##                                       7                                       7 
##                              Oncol Lett                            BMC Genomics 
##                                       9                                      10 
##                                   PeerJ                                PLoS One 
##                                      10                                      10 
##                                 Sci Rep 
##                                      12
par(mar=c(1,1,1,1))
#names(res) <- gsub("Gene expression array","RNA array",names(res))
wordcloud(words = names(res), freq = res, min.freq = 1, 
          max.words=200, random.order=FALSE, rot.per=0.35, 
          colors=brewer.pal(8, "Dark2"))
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Onco Targets Ther could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words
## = 200, : Diabetes Metab Syndr Obes could not be fit on page. It will not be
## plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Front Neurosci could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Genes (Basel) could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : J Hematol Oncol could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Med Sci Monit could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Metabolomics could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Transl Psychiatry could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Am J Physiol Gastrointest Liver Physiol could not be fit on page. It will
## not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Appl Environ Microbiol could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : BMC Infect Dis could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : BMC Med Genomics could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words
## = 200, : BMC Musculoskelet Disord could not be fit on page. It will not be
## plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Cancer Control could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Cancers (Basel) could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Cell Death Discov could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Clin Epigenetics could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Clin Epigenetics. could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Endocrinology could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : FEBS Open Bio could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Genome Biol Evol could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Genomics Inform could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Int J Endocrinol could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Int J Nanomedicine could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Int J Ophthalmol could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : J Assist Reprod Genet. could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : J Cardiovasc Dev Dis could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : J Diabetes Investig could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : J Immunother Cancer could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : J Invest Dermatol could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : J Res Med Sci could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : J Transl Med could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Medicine (Baltimore) could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Mol Ther Nucleic Acids could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Neurobiol Dis could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Radiat Res could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Respir Res could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Stem Cells Int could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Toxicol Sci could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words =
## 200, : Virology could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = names(res), freq = res, min.freq = 1, max.words
## = 200, : World J Gastrointest Oncol could not be fit on page. It will not be
## plotted.

par(mar=c(5,12,3,1))
barplot(tail(res,20),horiz=TRUE,las=1,cex.names = 0.7, xlab="no. analyses",
        main = "Journal", xlim=c(0,120))
grid()

other <- sum(res[1:(nrow(res)-10)])
res2 <- c(other,tail(res,9))
names(res2)[1] <- "Other"
par(mar=c(5,12,3,1))
barplot(res2,horiz=TRUE,las=1,cex.names = 0.7, xlab="no. analyses",
        main = "Journal", xlim=c(0,1200))
grid()

Omics type

omics <- x$Omics.type
omics_split <- strsplit(omics,", ")
omics <- unlist(omics_split)
res <- table(omics)
res <- res[order(res)]
length(res)
## [1] 20
res
## omics
##             EST sequencing                       GWAS 
##                          1                          1 
##                 Lipidomics                Metgenomics 
##                          1                          1 
##                  miRNA-seq NanoString gene expression 
##                          1                          1 
##                  PCR Array        protein interaction 
##                          1                          1 
## DNA methylation sequencing                miRNA array 
##                          2                          2 
##                  CNV array             Genotype array 
##                          3                          4 
##              Protein array      DNA methylation array 
##                          6                          7 
##          Genome sequencing                 Proteomics 
##                         10                         14 
##               Metabolomics                   Database 
##                         15                         17 
##                    RNA-seq      Gene expression array 
##                         73                         87
par(mar=c(1,1,1,1))
names(res) <- gsub("Gene expression array","RNA array",names(res))
wordcloud(words = names(res), freq = res, min.freq = 1, 
          max.words=200, random.order=FALSE, rot.per=0.35, 
          colors=brewer.pal(8, "Dark2"))

par(mar=c(5,12,3,1))
barplot(tail(res,20),horiz=TRUE,las=1,cex.names = 0.7, xlab="no. analyses",
        main = "Omics type", xlim=c(0,600))
grid()

other <- sum(res[1:(nrow(res)-10)])
res2 <- c(other,tail(res,9))
names(res2)[1] <- "Other"
par(mar=c(5,12,3,1))
barplot(res2,horiz=TRUE,las=1,cex.names = 0.7, xlab="no. analyses",
        main = "Omics type", xlim=c(0,600))
grid()

Organism

org <- x$Organism
org_split <- strsplit(org,", ")
org <- unlist(org_split)
res <- table(org)
res <- res[order(res)]
length(res)
## [1] 31
res
## org
##     Acropora cervicornis            Aedes aegypti           Ananas comosus 
##                        1                        1                        1 
##       Anas platyrhynchos           Brassica napus         Candida albicans 
##                        1                        1                        1 
##   Canis lupus familiaris     Clostridium scindens        Coturnix japonica 
##                        1                        1                        1 
##      Moschus berezovskii  Mycobacterium smegmatis    Oreochromis niloticus 
##                        1                        1                        1 
##    Oryctolagus cuniculus   Pygoscelis antarcticus         Pygoscelis papua 
##                        1                        1                        1 
##       Salvelinus alpinus             Suaeda salsa        Triticum aestivum 
##                        1                        1                        1 
##               Vicia faba           Bemisia tabaci            Bos grunniens 
##                        1                        2                        2 
##        Mauremys reevesii  Mizuhopecten yessoensis             Pagrus major 
##                        2                        2                        2 
## Sclerotinia sclerotiorum             Oryza sativa               Bos taurus 
##                        2                        5                        6 
##               Sus scrofa        Rattus norvegicus             Mus musculus 
##                        6                       10                       24 
##             Homo sapiens 
##                      153
par(mar=c(1,1,1,1))
names(res) <- gsub("Homo sapiens","human",names(res))
wordcloud(words = names(res), freq = res, min.freq = 1, 
          max.words=200, random.order=FALSE, rot.per=0.35, 
          colors=brewer.pal(8, "Dark2"), scale=c(4,.5))

par(mar=c(5,12,3,1))
names(res) <- gsub("human","Homo sapiens",names(res))
barplot(tail(res,20),horiz=TRUE,las=1,cex.names = 0.7, xlab="no. analyses",
        main = "Organism", xlim=c(0,1200))
grid()

other <- sum(res[1:(nrow(res)-10)])
res2 <- c(other,tail(res,9))
names(res2)[1] <- "Other"
par(mar=c(5,12,3,1))
barplot(res2,horiz=TRUE,las=1,cex.names = 0.7, xlab="no. analyses",
        main = "Organism", xlim=c(0,1200))
grid()

Gene set library

GSL <-x$Gene.set.library
GSL_split <- strsplit(GSL,", ")
GSL <- unlist(GSL_split)
res <- table(GSL)
res <- res[order(res)]
length(res)
## [1] 25
which(names(res)=="Not stated")/sum(res)*100
## [1] 6.422018
res
## GSL
##                 ChemRICH                      COG                 CYTOBAND 
##                        1                        1                        1 
##                 DisGeNET                      GEO                     HMDB 
##                        1                        1                        1 
## Ingenuity Knowledge base Jensen Diseases database        MetaCore/MetaBase 
##                        1                        1                        1 
##                Metascape                     OMIM          Pathway commons 
##                        1                        1                        1 
##                     Pfam                      PID                   Signor 
##                        1                        1                        1 
##               Vectorbase                 BioCarta                 InterPro 
##                        1                        2                        2 
##            MetaboAnalyst                 Reactome               Not stated 
##                        2                       14                       15 
##                   MSigDB Ingenuity Knowledge Base                     KEGG 
##                       18                       22                      112 
##                       GO 
##                      124
par(mar=c(1,1,1,1))
names(res) <- gsub("Homo sapiens","human",names(res))
wordcloud(words = names(res), freq = res, min.freq = 1, 
          max.words=200, random.order=FALSE, rot.per=0.35, 
          colors=brewer.pal(8, "Dark2"))

par(mar=c(5,12,3,1))
barplot(tail(res,20),horiz=TRUE,las=1,cex.names = 0.7, xlab="no. analyses",
        main = "Gene set library", xlim=c(0,1000))
grid()

other <- sum(res[1:(nrow(res)-10)])
res2 <- c(other,tail(res,9))
names(res2)[1] <- "Other"
par(mar=c(5,12,3,1))
barplot(res2,horiz=TRUE,las=1,cex.names = 0.7, xlab="no. analyses",
        main = "Gene set library", xlim=c(0,500))
grid()

Gene set version

GSV <-x$GS.version
res <- table(GSV)
res
## GSV
##  No Yes 
## 213  18
res[1]/sum(res)*100
##       No 
## 92.20779
par(mar=c(5,12,3,1))
barplot(tail(res,20),horiz=TRUE,las=1,cex.names = 1, xlab="no. analyses",
        main = "Gene set version defined", xlim=c(0,1600))
grid()

Statistical test used

test <-x$Statistical.test.used
test <- strsplit(test,", ")
test <- unlist(test)
res <- table(test)
res <- res[order(res)]
res[which(names(res)=="Not stated")] / sum(res) * 100
## Not stated 
##   59.22747
res
## test
##                                    Binomial 
##                                           1 
## Chemical similarity set enrichment analysis 
##                                           1 
##                                        GSVA 
##                                           1 
##                              Kruskal-Wallis 
##                                           1 
##                                        MSEA 
##                                           1 
##                                        EASE 
##                                           2 
##                                     No test 
##                                          11 
##                                      Fisher 
##                                          21 
##                              Hypergeometric 
##                                          27 
##                                        GSEA 
##                                          29 
##                                  Not stated 
##                                         138
par(mar=c(1,1,1,1))
wordcloud(words = names(res), freq = res, min.freq = 1, 
          max.words=200, random.order=FALSE, rot.per=0.35, 
          colors=brewer.pal(8, "Dark2"))

par(mar=c(5,12,3,1))
barplot(tail(res,20),horiz=TRUE,las=1,cex.names = 0.7, xlab="no. analyses",
        main = "Test used", xlim=c(0,1200))
grid()

other <- sum(res[1:(nrow(res)-10)])
res2 <- c(other,tail(res,9))
names(res2)[1] <- "Other"
par(mar=c(5,12,3,1))
barplot(res2,horiz=TRUE,las=1,cex.names = 0.7, xlab="no. analyses",
        main = "Test used", xlim=c(0,1200))
grid()

FDR Correction

fdr <-x$FDR.Correction
fdr <- strsplit(fdr,", ")
fdr <- unlist(fdr)
res <- table(fdr)
res <- res[order(res)]
sum(res[which(names(res)!="Yes")])/sum(res)*100
## [1] 48.01762
res
## fdr
## Not stated         No        Yes 
##          9        100        118
par(mar=c(1,1,1,1))
wordcloud(words = names(res), freq = res, min.freq = 1, 
          max.words=200, random.order=FALSE, rot.per=0.35, 
          colors=brewer.pal(8, "Dark2"))

par(mar=c(5,12,3,1))
barplot(tail(res,20),horiz=TRUE,las=1,cex.names = 0.7, xlab="no. analyses",
        main = "FDR", xlim=c(0,800))
grid()

App used

App <-x$App.used
App_split <- strsplit(App,", ")
App <- unlist(App_split)
res <- table(App)
res <- res[order(res)]
res[which(names(res)=="Not stated")]/sum(res)*100
## Not stated 
##   7.359307
res
## App
##                           anamiR                         ChemRICH 
##                                1                                1 
##                  Custom R script                        Cytoscape 
##                                1                                1 
##                           EggNOG                            fgsea 
##                                1                                1 
##                          Funrich                           g:GOSt 
##                                1                                1 
##                       g:Profiler                          GENCLIP 
##                                1                                1 
##                        GeneCodis         geneontology.org web app 
##                                1                                1 
##                           GlueGO                   GO::TermFinder 
##                                1                                1 
##                        gProfiler                             GSVA 
##                                1                                1 
##                             KSEA                            Limma 
##                                1                                1 
##          MetaboAnalyst/Mummichog                         MetaCore 
##                                1                                1 
##       MetaCore/MetaBase (GeneGo)                        Metascape 
##                                1                                1 
##       Molecule Annotation System                             MSEA 
##                                1                                1 
##                           PASCAL                           Phyper 
##                                1                                1 
##                         R script                       ReactomePA 
##                                1                                1 
##                 SNP2GO R package                            topGO 
##                                1                                1 
##                         ToppGene                           webMeV 
##                                1                                1 
##                           agriGO                            BiNGO 
##                                2                                2 
## http://geneontology.org/ web app                             KAAS 
##                                2                                2 
##                        Mummichog                           STRING 
##                                2                                2 
##                          GOrilla                 ClueGO/Cytoscape 
##                                3                                4 
##                          Enrichr                       WebGestalt 
##                                4                                4 
##                            GOseq                         Blast2GO 
##                                5                                7 
##                    MetaboAnalyst                          PANTHER 
##                                7                                7 
##                            KOBAS                  clusterProfiler 
##                                8                               10 
##                       Not stated       Ingenuity Pathway Analysis 
##                               17                               25 
##                             GSEA                            DAVID 
##                               31                               55
par(mar=c(1,1,1,1))
wordcloud(words = names(res), freq = res, min.freq = 1, 
          max.words=200, random.order=FALSE, rot.per=0.35, 
          colors=brewer.pal(8, "Dark2"))

par(mar=c(5,12,3,1))
barplot(tail(res,20),horiz=TRUE,las=1,cex.names = 0.7, xlab="no. analyses",
        main = "App used", xlim=c(0,400))
grid()

other <- sum(res[1:(nrow(res)-10)])
res2 <- c(other,tail(res,9))
names(res2)[1] <- "Other"
par(mar=c(5,12,3,1))
barplot(res2,horiz=TRUE,las=1,cex.names = 0.7, xlab="no. analyses",
        main = "App used", xlim=c(0,500))
grid()

App version

APV <-x$App.Version
res <- table(APV)
res
## APV
##  No Yes 
## 164  65
res[1]/sum(res)*100
##       No 
## 71.61572
par(mar=c(5,12,3,1))
barplot(tail(res,20),horiz=TRUE,las=1,cex.names = 1, xlab="no. analyses",
        main = "App version defined", xlim=c(0,1600))
grid()

Code available

code <-x$Code.availability
res <- table(code)
res
## code
##  No Yes 
##  45   3
res[1]/sum(res)*100
##    No 
## 93.75
par(mar=c(5,12,3,1))
barplot(tail(res,20),horiz=TRUE,las=1,cex.names = 1, xlab="no. analyses",
        main = "Code availability", xlim=c(0,300))
grid()

Background gene set

BG <-x$Background.gene.set
res <- table(BG)
res
## BG
##                    No            Not stated Stated, but incorrect 
##                     5                   174                     4 
##                   Yes 
##                     9
sum(res[which(names(res)!="Yes")])/sum(res)*100
## [1] 95.3125
par(mar=c(5,12,3,1))
barplot(tail(res,20),horiz=TRUE,las=1,cex.names = 1, xlab="no. analyses",
        main = "Background list defined", xlim=c(0,1200))
grid()

Gene lists provided

GL <-x$Gene.lists.provided
res <- table(GL)
res
## GL
##  No Yes 
## 138  93
sum(res[which(names(res)!="Yes")])/sum(res)*100
## [1] 59.74026
par(mar=c(5,12,3,1))
barplot(tail(res,20),horiz=TRUE,las=1,cex.names = 1, xlab="no. analyses",
        main = "Gene lists provided", xlim=c(0,1200))
grid()

colnames(x)
##  [1] "Pubmed.Central.ID"     "Article.number"        "Allocated"            
##  [4] "Journal"               "Omics.type"            "Organism"             
##  [7] "Gene.set.library"      "GS.version"            "Statistical.test.used"
## [10] "FDR.Correction"        "App.used"              "App.Version"          
## [13] "Code.availability"     "Background.gene.set"   "Assumptions.violated" 
## [16] "Gene.lists.provided"

Assumptions violated

ok <- nrow(subset(x,Assumptions.violated=="No"))
ok
## [1] 35
bad <- nrow(subset(x,Assumptions.violated!="No"))
bad
## [1] 196
ok/sum(bad,ok)*100
## [1] 15.15152
ass <-x$Assumptions.violated
ass <- strsplit(ass,", ")
ass <- unlist(ass)
res <- table(ass)
res <- res[order(res)]
res
## ass
## Misinterpreted FDR values    Inference without test             No data shown 
##                         1                        11                        13 
##                        No                       FDR                Background 
##                        35                        93                       173
par(mar=c(1,1,1,1))
wordcloud(words = names(res), freq = res, min.freq = 1, 
          max.words=200, random.order=FALSE, rot.per=0.35, 
          colors=brewer.pal(8, "Dark2"))

par(mar=c(5,12,3,1))
barplot(tail(res,20),horiz=TRUE,las=1,cex.names = 1, xlab="no. analyses",
        main = "Assumptions violated", xlim=c(0,1400))
grid()

Cross check

y <- read.table("PMC_2019-analysis.tsv",header=TRUE,fill=TRUE,sep="\t")
y <- y[which(isUnique(y$Pubmed.Central.ID)),]
x <- x[which(isUnique(x$Pubmed.Central.ID)),]
yunique <- y[which(isUnique(y$Pubmed.Central.ID)),"Pubmed.Central.ID"]
xunique <- x[which(isUnique(x$Pubmed.Central.ID)),"Pubmed.Central.ID"]
xyunique <- intersect(yunique,xunique)
head(xyunique)
## [1] "PMC6317205" "PMC6318854" "PMC6323741" "PMC6328465" "PMC6333785"
## [6] "PMC6341096"
res <- sapply(xyunique,function(myid){
  myqc <- x[which(x$Pubmed.Central.ID==myid),,drop=TRUE]
  ydat <- y[which(y$Pubmed.Central.ID==myid),,drop=TRUE]
  qcres <- sapply(5:16, function(m) {
    mqc <- myqc[[m]]
    mqc <- unlist(strsplit(mqc,", "))
    mqc <- gsub("Not stated","No",mqc)
    myy <- ydat[[m]]
    myy <- unlist(strsplit(myy,", "))
    myy <- gsub("Not stated","No",myy)
  length(intersect(mqc,myy)) / length(union(mqc,myy))
  })
  return(qcres)
})

rownames(res) <- colnames(x)[5:16]
categoryMeans <- rowMeans(res)
categoryMeans
##            Omics.type              Organism      Gene.set.library 
##             0.7591241             0.9708029             0.8990268 
##            GS.version Statistical.test.used        FDR.Correction 
##             0.9270073             0.8941606             0.8175182 
##              App.used           App.Version     Code.availability 
##             0.8832117             0.9270073             0.8540146 
##   Background.gene.set  Assumptions.violated   Gene.lists.provided 
##             0.8832117             0.7785888             0.8540146
tres <- t(res)
head(tres)
##            Omics.type Organism Gene.set.library GS.version
## PMC6317205          0        1              1.0          1
## PMC6318854          1        1              1.0          1
## PMC6323741          1        1              1.0          1
## PMC6328465          1        1              1.0          1
## PMC6333785          0        1              0.5          1
## PMC6341096          1        1              1.0          1
##            Statistical.test.used FDR.Correction App.used App.Version
## PMC6317205                     1              0        1           1
## PMC6318854                     0              0        1           0
## PMC6323741                     1              1        1           1
## PMC6328465                     1              1        1           1
## PMC6333785                     1              1        1           1
## PMC6341096                     1              1        1           1
##            Code.availability Background.gene.set Assumptions.violated
## PMC6317205                 1                   1                  1.0
## PMC6318854                 1                   1                  0.5
## PMC6323741                 1                   1                  1.0
## PMC6328465                 1                   1                  1.0
## PMC6333785                 1                   1                  1.0
## PMC6341096                 1                   1                  1.0
##            Gene.lists.provided
## PMC6317205                   0
## PMC6318854                   1
## PMC6323741                   1
## PMC6328465                   1
## PMC6333785                   1
## PMC6341096                   1
par(mar=c(5,12,3,1))
vioplot(tres,horizontal=TRUE,las=1,xlab="mean Jaccard score")

par(mar=c(5,12,3,1))
barplot(categoryMeans,horiz=TRUE,las=1,xlim=c(0,1),xlab="mean Jaccard score")

articleMeans <- colMeans(res)
hist(articleMeans)

# PMCs that need to be redone
tres[which(rowMeans(tres)<1),]  %>% kbl() %>% kable_paper("hover", full_width = F)
Omics.type Organism Gene.set.library GS.version Statistical.test.used FDR.Correction App.used App.Version Code.availability Background.gene.set Assumptions.violated Gene.lists.provided
PMC6317205 0.0 1.0 1.0000000 1 1.0 0 1 1 1 1 1.0000000 0
PMC6318854 1.0 1.0 1.0000000 1 0.0 0 1 0 1 1 0.5000000 1
PMC6333785 0.0 1.0 0.5000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6342918 1.0 1.0 1.0000000 0 1.0 1 0 1 0 0 0.0000000 1
PMC6347630 1.0 0.5 1.0000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6350566 1.0 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 0
PMC6350986 0.0 1.0 1.0000000 1 1.0 1 0 0 1 1 1.0000000 1
PMC6363745 1.0 1.0 0.5000000 0 0.0 1 1 1 1 1 0.0000000 0
PMC6364390 1.0 1.0 0.5000000 1 1.0 0 1 1 1 0 0.3333333 1
PMC6370049 1.0 1.0 1.0000000 1 0.0 0 1 1 1 1 0.5000000 0
PMC6377753 1.0 1.0 0.5000000 1 1.0 1 0 1 1 1 1.0000000 1
PMC6379932 0.0 1.0 1.0000000 1 1.0 0 1 1 1 1 0.5000000 1
PMC6383095 1.0 1.0 0.5000000 1 1.0 0 1 1 1 1 0.5000000 1
PMC6383344 1.0 1.0 0.3333333 1 1.0 1 0 1 1 1 1.0000000 1
PMC6383401 1.0 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 0
PMC6384238 0.5 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6387216 1.0 0.0 1.0000000 1 1.0 1 0 1 1 1 0.0000000 1
PMC6388971 1.0 1.0 1.0000000 1 1.0 1 1 1 1 1 0.5000000 1
PMC6399257 0.0 1.0 0.0000000 1 0.0 1 0 1 0 1 0.0000000 1
PMC6412147 0.0 1.0 0.5000000 1 1.0 1 1 1 0 1 0.3333333 1
PMC6425643 1.0 1.0 1.0000000 1 1.0 1 1 1 0 1 1.0000000 1
PMC6441198 1.0 1.0 1.0000000 1 1.0 1 1 1 0 1 1.0000000 0
PMC6447890 0.0 1.0 1.0000000 1 1.0 1 0 1 1 1 1.0000000 1
PMC6459169 1.0 1.0 1.0000000 1 1.0 0 1 1 1 1 1.0000000 1
PMC6463024 1.0 1.0 1.0000000 0 1.0 1 1 0 0 1 1.0000000 1
PMC6463198 0.0 1.0 1.0000000 1 1.0 1 1 1 0 1 0.3333333 0
PMC6465396 1.0 1.0 1.0000000 1 1.0 1 1 1 1 0 1.0000000 1
PMC6468815 1.0 1.0 1.0000000 1 1.0 0 1 1 1 1 0.5000000 0
PMC6471048 1.0 1.0 1.0000000 1 1.0 0 1 1 0 1 0.5000000 1
PMC6472139 0.0 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6478283 1.0 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 0
PMC6478396 1.0 1.0 1.0000000 1 0.0 1 1 1 1 0 0.0000000 0
PMC6480502 1.0 1.0 1.0000000 1 1.0 1 0 1 1 0 1.0000000 0
PMC6486412 0.5 1.0 1.0000000 1 1.0 0 1 1 1 1 0.5000000 1
PMC6489005 1.0 1.0 1.0000000 1 1.0 0 1 1 1 1 0.5000000 1
PMC6489013 0.0 1.0 1.0000000 1 1.0 0 1 1 1 1 0.3333333 1
PMC6492420 0.5 1.0 0.3333333 1 1.0 1 1 1 1 1 0.3333333 1
PMC6498668 0.5 1.0 1.0000000 1 1.0 1 1 1 1 0 0.0000000 1
PMC6503205 0.0 1.0 1.0000000 0 1.0 1 1 1 1 0 0.0000000 1
PMC6506780 1.0 1.0 0.0000000 1 0.0 1 1 1 0 1 1.0000000 1
PMC6507394 0.0 1.0 1.0000000 0 1.0 0 0 0 1 1 0.5000000 1
PMC6507459 0.5 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6515108 0.5 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6518761 0.5 0.5 1.0000000 1 0.0 1 1 1 0 1 1.0000000 1
PMC6519025 1.0 1.0 0.5000000 1 1.0 1 1 0 0 1 1.0000000 1
PMC6520261 0.0 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6522869 0.5 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6523927 0.0 1.0 1.0000000 1 1.0 1 1 1 1 0 0.0000000 1
PMC6524193 0.5 1.0 1.0000000 1 1.0 1 1 1 1 1 0.6666667 1
PMC6526173 0.5 1.0 1.0000000 1 1.0 0 1 1 1 1 0.5000000 1
PMC6528264 0.5 1.0 0.5000000 1 0.0 1 1 1 1 0 0.0000000 1
PMC6541682 1.0 1.0 1.0000000 1 1.0 1 1 1 1 0 0.0000000 1
PMC6542760 0.0 1.0 1.0000000 1 1.0 0 1 1 0 1 0.5000000 1
PMC6549663 0.5 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6556043 0.0 1.0 1.0000000 1 0.0 1 1 1 1 1 0.3333333 1
PMC6557548 1.0 1.0 1.0000000 1 1.0 0 1 1 1 1 0.5000000 1
PMC6568258 1.0 1.0 1.0000000 0 1.0 1 1 1 1 1 1.0000000 0
PMC6572139 1.0 1.0 0.0000000 1 1.0 1 1 0 1 1 1.0000000 0
PMC6572621 1.0 1.0 1.0000000 1 1.0 0 1 1 1 1 0.5000000 1
PMC6579764 1.0 1.0 1.0000000 1 1.0 0 1 1 0 1 0.5000000 1
PMC6580234 1.0 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 0
PMC6580941 1.0 1.0 0.5000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6582507 1.0 1.0 1.0000000 1 0.5 1 0 1 1 1 1.0000000 1
PMC6584587 0.0 1.0 0.0000000 0 1.0 1 0 1 0 1 1.0000000 1
PMC6585500 0.5 0.0 0.0000000 0 0.0 0 0 0 0 0 0.0000000 0
PMC6585899 0.0 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 0
PMC6586291 0.5 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6588443 1.0 1.0 1.0000000 1 1.0 1 1 0 1 1 1.0000000 1
PMC6591089 0.5 0.5 0.0000000 1 1.0 1 1 1 1 1 0.0000000 1
PMC6591379 1.0 1.0 1.0000000 1 1.0 0 1 1 1 1 0.5000000 1
PMC6595412 1.0 1.0 1.0000000 1 0.0 1 1 1 1 1 0.5000000 0
PMC6596368 0.5 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6598377 1.0 1.0 1.0000000 1 1.0 1 1 0 0 1 1.0000000 1
PMC6599230 1.0 1.0 0.0000000 1 1.0 1 1 1 1 1 1.0000000 0
PMC6607081 0.0 1.0 1.0000000 1 1.0 0 1 1 0 1 0.5000000 1
PMC6607232 1.0 1.0 1.0000000 1 1.0 1 1 1 1 0 0.5000000 1
PMC6609559 1.0 1.0 1.0000000 1 1.0 0 1 1 1 1 0.5000000 1
PMC6614665 1.0 1.0 1.0000000 1 1.0 1 1 1 0 1 1.0000000 1
PMC6614983 1.0 1.0 1.0000000 1 1.0 0 1 1 1 1 0.5000000 1
PMC6619257 0.0 0.5 1.0000000 1 0.0 1 1 1 1 1 0.0000000 1
PMC6620395 1.0 1.0 1.0000000 1 1.0 1 1 0 1 1 1.0000000 1
PMC6620582 1.0 1.0 1.0000000 1 1.0 0 0 1 1 0 0.5000000 0
PMC6626515 1.0 1.0 1.0000000 1 1.0 1 0 1 1 1 1.0000000 1
PMC6627192 0.0 1.0 1.0000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6636026 0.0 1.0 0.5000000 0 0.0 1 0 1 0 1 1.0000000 1
PMC6650071 1.0 1.0 0.5000000 1 1.0 1 1 1 1 1 1.0000000 1
PMC6651993 0.0 1.0 1.0000000 1 1.0 1 1 1 1 0 0.5000000 1
PMC6653643 1.0 1.0 1.0000000 0 1.0 1 0 1 1 0 0.0000000 1
PMC6657577 0.0 1.0 1.0000000 1 0.0 0 1 1 1 1 0.5000000 1
PMC6677090 0.0 1.0 1.0000000 1 1.0 1 1 1 0 0 1.0000000 0
ppl <- sapply(xyunique,function(myid){
  myqc <- x[which(x$Pubmed.Central.ID==myid),,drop=TRUE]
  ydat <- y[which(y$Pubmed.Central.ID==myid),,drop=TRUE]
  px <- myqc[[3]]
  py <- ydat[[3]]
  return(c(py,px))
})

tppl <- t(ppl)

tppl_comb <- paste(tppl[,1],tppl[,2])
tppl_combs <- unique(tppl_comb)
cres <- lapply(tppl_combs,function(comb){
 combres <- tres[which(tppl_comb %in% comb),]
})

names(cres) <- tppl_combs
str(cres)
## List of 8
##  $ Mark Mark        : num [1:20, 1:12] 0 1 0 1 0 1 1 1 1 1 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : chr [1:20] "PMC6317205" "PMC6318854" "PMC6333785" "PMC6341096" ...
##   .. ..$ : chr [1:12] "Omics.type" "Organism" "Gene.set.library" "GS.version" ...
##  $ Mark Kaumadi     : num [1:21, 1:12] 1 1 1 1 1 1 1 1 1 1 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : chr [1:21] "PMC6323741" "PMC6328465" "PMC6342918" "PMC6347630" ...
##   .. ..$ : chr [1:12] "Omics.type" "Organism" "Gene.set.library" "GS.version" ...
##  $ Kaumadi Kaumadi  : num [1:18, 1:12] 1 1 1 1 1 1 1 1 0 1 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : chr [1:18] "PMC6405989" "PMC6425643" "PMC6432904" "PMC6435965" ...
##   .. ..$ : chr [1:12] "Omics.type" "Organism" "Gene.set.library" "GS.version" ...
##  $ Kaumadi Mark     : num [1:13, 1:12] 1 0 1 1 1 1 0 1 1 0 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : chr [1:13] "PMC6406182" "PMC6412147" "PMC6433918" "PMC6441198" ...
##   .. ..$ : chr [1:12] "Omics.type" "Organism" "Gene.set.library" "GS.version" ...
##  $ Kaushalya Mark   : num [1:16, 1:12] 0 1 1 1 0.5 1 0 0.5 0 0 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : chr [1:16] "PMC6472139" "PMC6476004" "PMC6478396" "PMC6480502" ...
##   .. ..$ : chr [1:12] "Omics.type" "Organism" "Gene.set.library" "GS.version" ...
##  $ Kaushalya Kaumadi: num [1:15, 1:12] 1 0.5 1 1 0.5 0.5 0.5 0 0 1 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : chr [1:15] "PMC6478283" "PMC6498668" "PMC6506780" "PMC6507312" ...
##   .. ..$ : chr [1:12] "Omics.type" "Organism" "Gene.set.library" "GS.version" ...
##  $ Sameer Kaumadi   : num [1:21, 1:12] 1 1 1 0 0.5 1 1 1 1 1 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : chr [1:21] "PMC6548796" "PMC6572139" "PMC6580485" "PMC6584587" ...
##   .. ..$ : chr [1:12] "Omics.type" "Organism" "Gene.set.library" "GS.version" ...
##  $ Sameer Mark      : num [1:13, 1:12] 0.5 0 1 1 1 1 1 1 1 0.5 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : chr [1:13] "PMC6549663" "PMC6556043" "PMC6557548" "PMC6568258" ...
##   .. ..$ : chr [1:12] "Omics.type" "Organism" "Gene.set.library" "GS.version" ...
cres2 <- lapply(cres,mean)
cres2
## $`Mark Mark`
## [1] 0.8361111
## 
## $`Mark Kaumadi`
## [1] 0.9107143
## 
## $`Kaumadi Kaumadi`
## [1] 0.9699074
## 
## $`Kaumadi Mark`
## [1] 0.8215812
## 
## $`Kaushalya Mark`
## [1] 0.8081597
## 
## $`Kaushalya Kaumadi`
## [1] 0.8972222
## 
## $`Sameer Kaumadi`
## [1] 0.8988095
## 
## $`Sameer Mark`
## [1] 0.7713675
par(mar=c(5,12,3,1))
barplot(unlist(cres2),horiz=TRUE,las=1,xlim=c(0,1),xlab="mean Jaccard score")

Session information

sessionInfo()
## R version 4.1.0 (2021-05-18)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.2 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0
## 
## locale:
##  [1] LC_CTYPE=en_AU.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_AU.UTF-8        LC_COLLATE=en_AU.UTF-8    
##  [5] LC_MONETARY=en_AU.UTF-8    LC_MESSAGES=en_AU.UTF-8   
##  [7] LC_PAPER=en_AU.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] parallel  stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] vioplot_0.3.7       zoo_1.8-9           sm_2.2-5.6         
##  [4] Biobase_2.52.0      BiocGenerics_0.38.0 kableExtra_1.3.4   
##  [7] XML_3.99-0.6        reutils_0.2.3       wordcloud2_0.2.1   
## [10] wordcloud_2.6       RColorBrewer_1.1-2 
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_1.0.7        highr_0.9         bslib_0.2.5.1     compiler_4.1.0   
##  [5] jquerylib_0.1.4   bitops_1.0-7      tools_4.1.0       digest_0.6.27    
##  [9] lattice_0.20-44   viridisLite_0.4.0 jsonlite_1.7.2    evaluate_0.14    
## [13] lifecycle_1.0.0   rlang_0.4.11      rstudioapi_0.13   yaml_2.2.1       
## [17] xfun_0.25         stringr_1.4.0     httr_1.4.2        knitr_1.33       
## [21] xml2_1.3.2        htmlwidgets_1.5.3 sass_0.4.0        systemfonts_1.0.2
## [25] grid_4.1.0        webshot_0.5.2     svglite_2.0.0     glue_1.4.2       
## [29] R6_2.5.0          tcltk_4.1.0       rmarkdown_2.10    magrittr_2.0.1   
## [33] scales_1.1.1      htmltools_0.5.1.1 rvest_1.0.1       colorspace_2.0-2 
## [37] stringi_1.7.3     RCurl_1.98-1.3    munsell_0.5.0