This code takes the recount-brain_v2 output created by Dustin Sokolowski in cross_studies_metadata and adds ontology information. Specifically, this adds the brodmann_ontology, disease_ontology, tissue and tissy_ontology fields to recount-brain. The results are saved in recount_brain_v2.Rdata (as well as a csv version) which can then be used with recount::add_metadata(source = 'recount_brain_v2').

1 Build ontology lookup

First we start by building an ontology lookup table using data from data.bioontology.org/’s API.

library('tidyverse')
build_ontology_table = function(ontology_name) {
    destfile = paste0(ontology_name,".csv.gz")
    download.file(sprintf("http://data.bioontology.org/ontologies/%s/download?apikey=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb&download_format=csv", ontology_name),
                  destfile = destfile)
    tmptab = read.csv(destfile, header = TRUE, stringsAsFactors = FALSE)[,1:8]
    tmptab$ontology = ontology_name
    unlink(destfile)
    return(as_tibble(tmptab))
}
ontolookup = bind_rows(build_ontology_table('ORDO'),
                       build_ontology_table('HP'),
                       build_ontology_table('UBERON'),
                       build_ontology_table('DOID'),
                       build_ontology_table('NCIT'))

Next we load the recount-brain files created by Dustin Sokolowski and explore them.

load("recount_brain_v2_noOntology.Rdata")
head(recount_brain)
##             age age_units assay_type_s avgspotlen_l bioproject_s  biosample_s                 brain_bank brodmann_area
## ERP001304.1  51     Years         <NA>           76    PRJEB2939 SAMEA1322587 NSW Tissue Resource Centre            22
## ERP001304.2  57     Years         <NA>           75    PRJEB2939 SAMEA1322592 NSW Tissue Resource Centre            22
## ERP001304.3  44     Years         <NA>           76    PRJEB2939 SAMEA1322588 NSW Tissue Resource Centre            22
## ERP001304.4  30     Years         <NA>           76    PRJEB2939 SAMEA1322593 NSW Tissue Resource Centre            22
## ERP001304.5  32     Years         <NA>           76    PRJEB2939 SAMEA1322597 NSW Tissue Resource Centre            22
## ERP001304.6  75     Years         <NA>           76    PRJEB2939 SAMEA1322590 NSW Tissue Resource Centre            22
##             cell_line                         center_name_s clinical_stage_1 clinical_stage_2 consent_s development
## ERP001304.1      <NA> THE RAMACIOTTI CENTRE, NSW, AUSTRALIA             <NA>             <NA>    PUBLIC       Adult
## ERP001304.2      <NA> THE RAMACIOTTI CENTRE, NSW, AUSTRALIA             <NA>             <NA>    PUBLIC       Adult
## ERP001304.3      <NA> THE RAMACIOTTI CENTRE, NSW, AUSTRALIA             <NA>             <NA>    PUBLIC       Adult
## ERP001304.4      <NA> THE RAMACIOTTI CENTRE, NSW, AUSTRALIA             <NA>             <NA>    PUBLIC       Adult
## ERP001304.5      <NA> THE RAMACIOTTI CENTRE, NSW, AUSTRALIA             <NA>             <NA>    PUBLIC       Adult
## ERP001304.6      <NA> THE RAMACIOTTI CENTRE, NSW, AUSTRALIA             <NA>             <NA>    PUBLIC       Adult
##                   disease disease_status experiment_s hemisphere insertsize_l                instrument_s
## ERP001304.1 Schizophrenia        Disease    ERX080870       Left            0 Illumina Genome Analyzer II
## ERP001304.2 Schizophrenia        Disease    ERX080868       Left            0 Illumina Genome Analyzer II
## ERP001304.3 Schizophrenia        Disease    ERX080865       Left            0 Illumina Genome Analyzer II
## ERP001304.4 Schizophrenia        Disease    ERX080866       Left            0 Illumina Genome Analyzer II
## ERP001304.5 Schizophrenia        Disease    ERX080860       Left            0 Illumina Genome Analyzer II
## ERP001304.6 Schizophrenia        Disease    ERX080858       Left            0 Illumina Genome Analyzer II
##             library_name_s librarylayout_s libraryselection_s librarysource_s loaddate_s mbases_l mbytes_l organism_s
## ERP001304.1            S01          SINGLE             RANDOM  TRANSCRIPTOMIC 2012-08-12      954      790       <NA>
## ERP001304.2            S02          SINGLE             RANDOM  TRANSCRIPTOMIC 2012-08-12     2322     1708       <NA>
## ERP001304.3            S04          SINGLE             RANDOM  TRANSCRIPTOMIC 2012-08-12     1030      848       <NA>
## ERP001304.4            S05          SINGLE             RANDOM  TRANSCRIPTOMIC 2012-08-12     1091      901       <NA>
## ERP001304.5            S06          SINGLE             RANDOM  TRANSCRIPTOMIC 2012-08-12     1133      946       <NA>
## ERP001304.6            S10          SINGLE             RANDOM  TRANSCRIPTOMIC 2012-08-12     2750     2012       <NA>
##             pathology platform_s pmi pmi_units preparation present_in_recount  race releasedate_s rin     run_s
## ERP001304.1      <NA>   ILLUMINA  21     Hours      Frozen               TRUE WHITE    2012-08-03  NA ERR103430
## ERP001304.2      <NA>   ILLUMINA  33     Hours      Frozen               TRUE WHITE    2012-08-03  NA ERR103431
## ERP001304.3      <NA>   ILLUMINA  35     Hours      Frozen               TRUE WHITE    2012-08-03  NA ERR103432
## ERP001304.4      <NA>   ILLUMINA  24     Hours      Frozen               TRUE WHITE    2012-08-03  NA ERR103433
## ERP001304.5      <NA>   ILLUMINA  25     Hours      Frozen               TRUE WHITE    2012-08-03  NA ERR103434
## ERP001304.6      <NA>   ILLUMINA  36     Hours      Frozen               TRUE WHITE    2012-08-03  NA ERR103435
##               sample_name_s sample_origin  sex sra_sample_s sra_study_s   tissue_site_1 tissue_site_2
## ERP001304.1 E-MTAB-1030:S01         Brain male    ERS105742   ERP001304 Cerebral cortex Temporal lobe
## ERP001304.2 E-MTAB-1030:S02         Brain male    ERS105740   ERP001304 Cerebral cortex Temporal lobe
## ERP001304.3 E-MTAB-1030:S04         Brain male    ERS105737   ERP001304 Cerebral cortex Temporal lobe
## ERP001304.4 E-MTAB-1030:S05         Brain male    ERS105738   ERP001304 Cerebral cortex Temporal lobe
## ERP001304.5 E-MTAB-1030:S06         Brain male    ERS105732   ERP001304 Cerebral cortex Temporal lobe
## ERP001304.6 E-MTAB-1030:S10         Brain male    ERS105730   ERP001304 Cerebral cortex Temporal lobe
##                       tissue_site_3 tumor_type  viability Study_full drugName_full drug_info_full drug_type_full
## ERP001304.1 Superior temporal gyrus       <NA> Postmortem  ERP001304          <NA>             NA           <NA>
## ERP001304.2 Superior temporal gyrus       <NA> Postmortem  ERP001304          <NA>             NA           <NA>
## ERP001304.3 Superior temporal gyrus       <NA> Postmortem  ERP001304          <NA>             NA           <NA>
## ERP001304.4 Superior temporal gyrus       <NA> Postmortem  ERP001304          <NA>             NA           <NA>
## ERP001304.5 Superior temporal gyrus       <NA> Postmortem  ERP001304          <NA>             NA           <NA>
## ERP001304.6 Superior temporal gyrus       <NA> Postmortem  ERP001304          <NA>             NA           <NA>
##             full_260_280 count_file_identifier          Dataset
## ERP001304.1           NA             ERR103430 recount_brain_v1
## ERP001304.2           NA             ERR103431 recount_brain_v1
## ERP001304.3           NA             ERR103432 recount_brain_v1
## ERP001304.4           NA             ERR103433 recount_brain_v1
## ERP001304.5           NA             ERR103434 recount_brain_v1
## ERP001304.6           NA             ERR103435 recount_brain_v1

1.1 Brodmann area

The UBERON ontology has direct mappings to Brodmann areas, amenable to direct lookup.

extended_brodmann_area = paste("Brodmann (1909) area", recount_brain$brodmann_area)
ontomap = ontolookup$`Class.ID`[match(unique(extended_brodmann_area), ontolookup$Preferred.Label )]
names(ontomap) = unique(extended_brodmann_area)
ontomap['Brodmann (1909) area 41'] = "http://purl.obolibrary.org/obo/UBERON_0006095"
matchers = match( extended_brodmann_area, names(ontomap))
ontobrain = data.frame(
    brodmann_ontology = ontomap[matchers],
    stringsAsFactors = FALSE
)

## Add synonyms too, for searching by text
ontobrain$brodmann_synonyms <- ontolookup$Synonyms[
    match(ontobrain$brodmann_ontology, ontolookup$Class.ID)]
## Functions for traversing the ontolookup table to find all the parents
find_parent <- function(i) {
    res <- ontolookup$Parents[ontolookup$Class.ID == i]
    if(length(res) == 0) return(NULL)
    strsplit(res, '\\|')[[1]]
}
find_parent_recurr <- function(i) {
    res <- find_parent(i)
    if(length(res) == 0) {
        return(NULL)
    } else {
        return(c(res, unique(unlist(sapply(res, find_parent_recurr)))))
    }
}

## Find the unique brodmann ontologies listed
brodmann_uni <- as.character(unique(ontobrain$brodmann_ontology))
brodmann_uni <- brodmann_uni[!is.na(brodmann_uni)]

## Find the parents
brodmann_parents <- lapply(brodmann_uni, find_parent_recurr)
names(brodmann_parents) <- brodmann_uni

## Find what they mean
brodmann_parents_label <- lapply(brodmann_parents, function(x) {
    ontolookup$Preferred.Label[match(x, ontolookup$Class.ID)]
})

## Could have also found the parents synonyms, but it doesn't
## add much
# lapply(brodmann_parents, function(x) ontolookup$Synonyms[match(x, ontolookup$Class.ID)])

## Add them and their labels
ontobrain$brodmann_parents <- sapply(brodmann_parents, paste, collapse = ' | ')[
    match(ontobrain$brodmann_ontology, brodmann_uni)]
ontobrain$brodmann_parents_label <- sapply(brodmann_parents_label, paste, collapse = ' | ')[
    match(ontobrain$brodmann_ontology, brodmann_uni)]

1.2 Disease

We then select the disease ontology mappings.

disease_mappings = c(
    "Bipolar disorder" = "http://purl.obolibrary.org/obo/HP_0007302",
    "Schizophrenia" = "http://purl.obolibrary.org/obo/HP_0100753",
    "Hutchinson-Gilford progeria syndrome" = "http://www.orpha.net/ORDO/Orphanet_740",
    "Cortical ischemic stroke tissue" = "http://purl.obolibrary.org/obo/HP_0002140",
    "Autism spectrum disorder" = "http://purl.obolibrary.org/obo/HP_0000717",
    "Epilepsy" = "http://purl.obolibrary.org/obo/DOID_1826",
    "brain tumor unspecified" = "http://purl.obolibrary.org/obo/HP_0030692",
    "Huntington's disease" = "http://www.orpha.net/ORDO/Orphanet_399",
    "Alzheimer’s disease" = "http://purl.obolibrary.org/obo/HP_0002511",
    "Parkinson’s disease" = "http://purl.obolibrary.org/obo/DOID_14332",
    "Parkinson's disease" = "http://purl.obolibrary.org/obo/DOID_14332",
    "Rett syndrome" = "http://www.orpha.net/ORDO/Orphanet_778",
    "Spinal muscular atrophy" = "http://purl.obolibrary.org/obo/HP_0007269",
    "Amyotrophic lateral sclerosis" = "http://www.orpha.net/ORDO/Orphanet_803",
    "Angelman syndrome" = "http://www.orpha.net/ORDO/Orphanet_72",
    "Embryonal tumors with multilayered rosettes" = "http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#C4915",
    "Primitive neuroectodermal tumor" = "http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#C3716",
    "Primary Tumor" = "http://purl.obolibrary.org/obo/HP_0030692",
    "Recurrent Tumor" = "http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#C153837"
)
matchers = match( recount_brain$disease, names(disease_mappings))
ontobrain$disease_ontology = disease_mappings[matchers]
ontomap = c(ontomap, disease_mappings)

1.3 Tissue site

Since ontologies are graphs, we only need to annotate the most specific term.

tissues = recount_brain$tissue_site_1
not_na = !is.na(recount_brain$tissue_site_2)
tissues[not_na] = recount_brain$tissue_site_2[not_na]
not_na = !is.na(recount_brain$tissue_site_3)
tissues[not_na] = recount_brain$tissue_site_3[not_na]
# use only uberon
uberon = ontolookup[ontolookup$ontology=='UBERON',]
matcher = function(term) {
    tmp = grep(paste0('^', term, '$'), uberon$Preferred.Label, ignore.case = TRUE)
    if(length(tmp)==1)  {
        tmp = uberon$Class.ID[tmp]
        names(tmp) = term
        return(tmp)
    } else {
        tmp = NA
        names(tmp) = term
        return(tmp)
    }
}
tissue_mappings = sapply(unique(tissues), matcher, USE.NAMES = FALSE)
names(tissue_mappings)[is.na(tissue_mappings)]
##  [1] NA                                 "Motor cortex"                     "Mixed"                           
##  [4] "Whole brain"                      "Medulla"                          "Hippocampus"                     
##  [7] "Caudate"                          "Anterior prefrontal cortex"       "LGG"                             
## [10] "GBM"                              "Anterior cingulate cortex (BA24)" "Spinal cord (cervical c-1)"
tissue_mappings = c(tissue_mappings, 
                    
    "Motor cortex" = "http://purl.obolibrary.org/obo/UBERON_0001384",
    "Anterior cingulate gyrus" = "http://purl.obolibrary.org/obo/UBERON_0002756",
    "Anterior prefrontal cortex" = "http://purl.obolibrary.org/obo/UBERON_0000451",
    "Whole brain" = "http://purl.obolibrary.org/obo/UBERON_0000955",
    "Mixed" = "http://purl.obolibrary.org/obo/UBERON_0000955",
    "Hippocampus" = "http://purl.obolibrary.org/obo/UBERON_0002421",
    "Anterior cingulate cortex (BA24)" = "http://purl.obolibrary.org/obo/UBERON_0006101",
    "Spinal cord (cervical c-1)" = "http://purl.obolibrary.org/obo/UBERON_0002726",
    "GBM" = "http://purl.obolibrary.org/obo/HP_0012174",
    "LGG" = "http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#C132067"
)
ontomap = c(ontomap, tissue_mappings)
matchers = match(tissues, names(tissue_mappings))
ontobrain$tissue = tissues
ontobrain$tissue_ontology = tissue_mappings[matchers]

## Add synonyms too, for searching by text
ontobrain$tissue_synonyms <- ontolookup$Synonyms[
    match(ontobrain$tissue_ontology, ontolookup$Class.ID)]
## Find the unique tissue ontologies listed
tissue_uni <- as.character(unique(ontobrain$tissue_ontology))
tissue_uni <- tissue_uni[!is.na(tissue_uni)]

## Find the parents
tissue_parents <- lapply(tissue_uni, find_parent_recurr)
names(tissue_parents) <- tissue_uni

## Find what they mean
tissue_parents_label <- lapply(tissue_parents, function(x) {
    ontolookup$Preferred.Label[match(x, ontolookup$Class.ID)]
})

## Could have also found the parents synonyms, but it doesn't
## add much
# lapply(tissue_parents, function(x) ontolookup$Synonyms[match(x, ontolookup$Class.ID)])

## Add them and their labels
ontobrain$tissue_parents <- sapply(tissue_parents, paste, collapse = ' | ')[
    match(ontobrain$tissue_ontology, tissue_uni)]
ontobrain$tissue_parents_label <- sapply(tissue_parents_label, paste, collapse = ' | ')[
    match(ontobrain$tissue_ontology, tissue_uni)]

1.4 Result files

The recount_brain_v2.Rdata and recount_brain_v2.csv files contain the metadata with ontologies for Tissue, Brodmann area, and Disease added. They also include the actual tissue as prioritized by tissue_site_3 over tissue_site_2 over tissue_site_1. For the Broadmann area and the tissue, we further added their synonyms, ontology parents and ontology parent labels which will facilitate text based searches on recount_brain.

The ontology_mapping.csv file contains a dataframe of the mappings from original names to ontology entries.

recount_brain = cbind(recount_brain, ontobrain)
write.csv(recount_brain, file="recount_brain_v2.csv", row.names = FALSE)

## Export in Rdata for use with recount::add_metadata()
save(recount_brain, file = 'recount_brain_v2.Rdata')
ontomap_full = merge(as.data.frame(ontomap), ontolookup, by.x=1, by.y = 1, all.x=TRUE)
ontomap_full$original_name = names(ontomap)
ontomap_full = ontomap_full[!is.na(ontomap_full$ontomap),]
write.csv(ontomap_full, file='ontology_mapping.csv')

Next we can explore which are the ontologies present in recount_brain_v2:

map(
    recount_brain[, grep('ontology', colnames(recount_brain))],
    ~ sort(table('ontologies:' = .x), decreasing = TRUE)
)
## $brodmann_ontology
## ontologies:
## http://purl.obolibrary.org/obo/UBERON_0013540 http://purl.obolibrary.org/obo/UBERON_0006101 
##                                           339                                           117 
## http://purl.obolibrary.org/obo/UBERON_0013553 http://purl.obolibrary.org/obo/UBERON_0006483 
##                                            42                                            16 
## http://purl.obolibrary.org/obo/UBERON_0013541 http://purl.obolibrary.org/obo/UBERON_0013535 
##                                            14                                            10 
## http://purl.obolibrary.org/obo/UBERON_0006095 
##                                             6 
## 
## $disease_ontology
## ontologies:
##                  http://purl.obolibrary.org/obo/HP_0030692                     http://www.orpha.net/ORDO/Orphanet_803 
##                                                       1131                                                         79 
##                  http://purl.obolibrary.org/obo/HP_0007302                  http://purl.obolibrary.org/obo/DOID_14332 
##                                                         57                                                         46 
##                     http://www.orpha.net/ORDO/Orphanet_399 http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#C153837 
##                                                         32                                                         31 
##                  http://purl.obolibrary.org/obo/HP_0002511                  http://purl.obolibrary.org/obo/HP_0100753 
##                                                         24                                                         19 
##                   http://purl.obolibrary.org/obo/DOID_1826                  http://purl.obolibrary.org/obo/HP_0000717 
##                                                         18                                                         12 
##   http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#C4915                  http://purl.obolibrary.org/obo/HP_0002140 
##                                                         11                                                          7 
##                  http://purl.obolibrary.org/obo/HP_0007269                     http://www.orpha.net/ORDO/Orphanet_740 
##                                                          4                                                          4 
##   http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#C3716                     http://www.orpha.net/ORDO/Orphanet_778 
##                                                          3                                                          3 
##                      http://www.orpha.net/ORDO/Orphanet_72 
##                                                          2 
## 
## $tissue_ontology
## ontologies:
## http://purl.obolibrary.org/obo/UBERON_0009834 http://purl.obolibrary.org/obo/UBERON_0002037 
##                                           331                                           174 
## http://purl.obolibrary.org/obo/UBERON_0001870 http://purl.obolibrary.org/obo/UBERON_0001851 
##                                           147                                           132 
## http://purl.obolibrary.org/obo/UBERON_0001882 http://purl.obolibrary.org/obo/UBERON_0002245 
##                                           124                                           118 
## http://purl.obolibrary.org/obo/UBERON_0001874 http://purl.obolibrary.org/obo/UBERON_0001898 
##                                           109                                           104 
## http://purl.obolibrary.org/obo/UBERON_0000451 http://purl.obolibrary.org/obo/UBERON_0001876 
##                                            85                                            81 
## http://purl.obolibrary.org/obo/UBERON_0002038 http://purl.obolibrary.org/obo/UBERON_0002769 
##                                            72                                            48 
## http://purl.obolibrary.org/obo/UBERON_0001871 http://purl.obolibrary.org/obo/UBERON_0002792 
##                                            41                                            41 
## http://purl.obolibrary.org/obo/UBERON_0016525 http://purl.obolibrary.org/obo/UBERON_0000956 
##                                            35                                            32 
## http://purl.obolibrary.org/obo/UBERON_0002756 http://purl.obolibrary.org/obo/UBERON_0002336 
##                                            18                                            13 
## http://purl.obolibrary.org/obo/UBERON_0002967 http://purl.obolibrary.org/obo/UBERON_0002661 
##                                            12                                             6 
## http://purl.obolibrary.org/obo/UBERON_0002021 http://purl.obolibrary.org/obo/UBERON_0000988 
##                                             2                                             1 
## http://purl.obolibrary.org/obo/UBERON_0001872 http://purl.obolibrary.org/obo/UBERON_0002363 
##                                             1                                             1 
## http://purl.obolibrary.org/obo/UBERON_0008930 http://purl.obolibrary.org/obo/UBERON_0034891 
##                                             1                                             1

Here’s some information for making sure the files you download are complete.

## Check md5sum for the resulting files
map(dir(pattern = 'recount_brain_v2|ontology_mapping'), tools::md5sum)
## [[1]]
##               ontology_mapping.csv 
## "9f1c6b36590c1a1d9424d75386d7eef1" 
## 
## [[2]]
##    recount_brain_v2_noOntology.csv 
## "e7855403fac9dc4d6345908c1e5da5a7" 
## 
## [[3]]
##  recount_brain_v2_noOntology.Rdata 
## "aa95cc6a34b77b9062e2f77da0cac286" 
## 
## [[4]]
##               recount_brain_v2.csv 
## "2ab643a4ce55d731c637456ff50ef36b" 
## 
## [[5]]
##             recount_brain_v2.Rdata 
## "0cc562916ced9f2bf4fb2b9a1a446121"
## List of all variables
colnames(recount_brain)
##  [1] "age"                    "age_units"              "assay_type_s"           "avgspotlen_l"          
##  [5] "bioproject_s"           "biosample_s"            "brain_bank"             "brodmann_area"         
##  [9] "cell_line"              "center_name_s"          "clinical_stage_1"       "clinical_stage_2"      
## [13] "consent_s"              "development"            "disease"                "disease_status"        
## [17] "experiment_s"           "hemisphere"             "insertsize_l"           "instrument_s"          
## [21] "library_name_s"         "librarylayout_s"        "libraryselection_s"     "librarysource_s"       
## [25] "loaddate_s"             "mbases_l"               "mbytes_l"               "organism_s"            
## [29] "pathology"              "platform_s"             "pmi"                    "pmi_units"             
## [33] "preparation"            "present_in_recount"     "race"                   "releasedate_s"         
## [37] "rin"                    "run_s"                  "sample_name_s"          "sample_origin"         
## [41] "sex"                    "sra_sample_s"           "sra_study_s"            "tissue_site_1"         
## [45] "tissue_site_2"          "tissue_site_3"          "tumor_type"             "viability"             
## [49] "Study_full"             "drugName_full"          "drug_info_full"         "drug_type_full"        
## [53] "full_260_280"           "count_file_identifier"  "Dataset"                "brodmann_ontology"     
## [57] "brodmann_synonyms"      "brodmann_parents"       "brodmann_parents_label" "disease_ontology"      
## [61] "tissue"                 "tissue_ontology"        "tissue_synonyms"        "tissue_parents"        
## [65] "tissue_parents_label"

2 Reproducibility

This document was made possible thanks to BioPortal (Whetzel, Noy, Shah, Alexander, et al., 2011) and:

Code for creating this document

## Create the vignette
library('rmarkdown')
system.time(render('recount_brain_ontologies.Rmd', 'BiocStyle::html_document'))

Reproducibility information for this document.

## Reproducibility info
proc.time()
##    user  system elapsed 
##  68.854   5.155 124.622
message(Sys.time())
## 2020-11-13 16:25:41
options(width = 120)
library('sessioninfo')
session_info()
## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                                      
##  version  R version 4.0.2 Patched (2020-06-24 r78746)
##  os       CentOS Linux 7 (Core)                      
##  system   x86_64, linux-gnu                          
##  ui       X11                                        
##  language (EN)                                       
##  collate  en_US.UTF-8                                
##  ctype    en_US.UTF-8                                
##  tz       US/Eastern                                 
##  date     2020-11-13                                 
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package              * version  date       lib source        
##  AnnotationDbi          1.50.3   2020-07-25 [2] Bioconductor  
##  askpass                1.1      2019-01-13 [2] CRAN (R 4.0.0)
##  assertthat             0.2.1    2019-03-21 [2] CRAN (R 4.0.0)
##  backports              1.2.0    2020-11-02 [1] CRAN (R 4.0.2)
##  base64enc              0.1-3    2015-07-28 [2] CRAN (R 4.0.0)
##  bibtex                 0.4.2.3  2020-09-19 [2] CRAN (R 4.0.2)
##  Biobase              * 2.48.0   2020-04-27 [2] Bioconductor  
##  BiocFileCache          1.12.1   2020-08-04 [2] Bioconductor  
##  BiocGenerics         * 0.34.0   2020-04-27 [2] Bioconductor  
##  BiocManager            1.30.10  2019-11-16 [2] CRAN (R 4.0.0)
##  BiocParallel           1.22.0   2020-04-27 [2] Bioconductor  
##  BiocStyle            * 2.16.1   2020-09-25 [1] Bioconductor  
##  biomaRt                2.44.4   2020-10-13 [2] Bioconductor  
##  Biostrings             2.56.0   2020-04-27 [2] Bioconductor  
##  bit                    4.0.4    2020-08-04 [2] CRAN (R 4.0.2)
##  bit64                  4.0.5    2020-08-30 [2] CRAN (R 4.0.2)
##  bitops                 1.0-6    2013-08-17 [2] CRAN (R 4.0.0)
##  blob                   1.2.1    2020-01-20 [2] CRAN (R 4.0.0)
##  bookdown               0.21     2020-10-13 [1] CRAN (R 4.0.2)
##  broom                  0.7.2    2020-10-20 [2] CRAN (R 4.0.2)
##  BSgenome               1.56.0   2020-04-27 [2] Bioconductor  
##  bumphunter             1.30.0   2020-04-27 [2] Bioconductor  
##  callr                  3.5.1    2020-10-13 [2] CRAN (R 4.0.2)
##  cellranger             1.1.0    2016-07-27 [2] CRAN (R 4.0.0)
##  checkmate              2.0.0    2020-02-06 [2] CRAN (R 4.0.0)
##  cli                    2.1.0    2020-10-12 [2] CRAN (R 4.0.2)
##  cluster                2.1.0    2019-06-19 [3] CRAN (R 4.0.2)
##  codetools              0.2-16   2018-12-24 [3] CRAN (R 4.0.2)
##  colorspace             1.4-1    2019-03-18 [2] CRAN (R 4.0.0)
##  crayon                 1.3.4    2017-09-16 [2] CRAN (R 4.0.0)
##  curl                   4.3      2019-12-02 [2] CRAN (R 4.0.0)
##  data.table             1.13.2   2020-10-19 [2] CRAN (R 4.0.2)
##  DBI                    1.1.0    2019-12-15 [2] CRAN (R 4.0.0)
##  dbplyr                 2.0.0    2020-11-03 [1] CRAN (R 4.0.2)
##  DelayedArray         * 0.14.1   2020-07-14 [2] Bioconductor  
##  derfinder              1.22.0   2020-04-27 [2] Bioconductor  
##  derfinderHelper        1.22.0   2020-04-27 [2] Bioconductor  
##  desc                   1.2.0    2018-05-01 [2] CRAN (R 4.0.0)
##  devtools             * 2.3.2    2020-09-18 [2] CRAN (R 4.0.2)
##  digest                 0.6.27   2020-10-24 [1] CRAN (R 4.0.2)
##  doRNG                  1.8.2    2020-01-27 [2] CRAN (R 4.0.0)
##  downloader             0.4      2015-07-09 [2] CRAN (R 4.0.0)
##  dplyr                * 1.0.2    2020-08-18 [2] CRAN (R 4.0.2)
##  ellipsis               0.3.1    2020-05-15 [2] CRAN (R 4.0.0)
##  evaluate               0.14     2019-05-28 [2] CRAN (R 4.0.0)
##  fansi                  0.4.1    2020-01-08 [2] CRAN (R 4.0.0)
##  forcats              * 0.5.0    2020-03-01 [2] CRAN (R 4.0.0)
##  foreach                1.5.1    2020-10-15 [2] CRAN (R 4.0.2)
##  foreign                0.8-80   2020-05-24 [3] CRAN (R 4.0.2)
##  Formula                1.2-4    2020-10-16 [2] CRAN (R 4.0.2)
##  fs                     1.5.0    2020-07-31 [1] CRAN (R 4.0.2)
##  generics               0.1.0    2020-10-31 [1] CRAN (R 4.0.2)
##  GenomeInfoDb         * 1.24.2   2020-06-15 [2] Bioconductor  
##  GenomeInfoDbData       1.2.3    2020-05-18 [2] Bioconductor  
##  GenomicAlignments      1.24.0   2020-04-27 [2] Bioconductor  
##  GenomicFeatures        1.40.1   2020-07-08 [2] Bioconductor  
##  GenomicFiles           1.24.0   2020-04-27 [2] Bioconductor  
##  GenomicRanges        * 1.40.0   2020-04-27 [2] Bioconductor  
##  GEOquery               2.56.0   2020-04-27 [2] Bioconductor  
##  ggplot2              * 3.3.2    2020-06-19 [2] CRAN (R 4.0.2)
##  glue                   1.4.2    2020-08-27 [1] CRAN (R 4.0.2)
##  gridExtra              2.3      2017-09-09 [2] CRAN (R 4.0.0)
##  gtable                 0.3.0    2019-03-25 [2] CRAN (R 4.0.0)
##  haven                  2.3.1    2020-06-01 [2] CRAN (R 4.0.2)
##  Hmisc                  4.4-1    2020-08-10 [2] CRAN (R 4.0.2)
##  hms                    0.5.3    2020-01-08 [2] CRAN (R 4.0.0)
##  htmlTable              2.1.0    2020-09-16 [2] CRAN (R 4.0.2)
##  htmltools              0.5.0    2020-06-16 [2] CRAN (R 4.0.2)
##  htmlwidgets            1.5.2    2020-10-03 [2] CRAN (R 4.0.2)
##  httr                   1.4.2    2020-07-20 [2] CRAN (R 4.0.2)
##  IRanges              * 2.22.2   2020-05-21 [2] Bioconductor  
##  iterators              1.0.13   2020-10-15 [2] CRAN (R 4.0.2)
##  jpeg                   0.1-8.1  2019-10-24 [2] CRAN (R 4.0.0)
##  jsonlite               1.7.1    2020-09-07 [2] CRAN (R 4.0.2)
##  knitcitations        * 1.0.10   2019-09-15 [1] CRAN (R 4.0.2)
##  knitr                  1.30     2020-09-22 [1] CRAN (R 4.0.2)
##  lattice                0.20-41  2020-04-02 [3] CRAN (R 4.0.2)
##  latticeExtra           0.6-29   2019-12-19 [2] CRAN (R 4.0.0)
##  lifecycle              0.2.0    2020-03-06 [2] CRAN (R 4.0.0)
##  limma                  3.44.3   2020-06-12 [2] Bioconductor  
##  locfit                 1.5-9.4  2020-03-25 [2] CRAN (R 4.0.0)
##  lubridate              1.7.9    2020-06-08 [1] CRAN (R 4.0.0)
##  magick                 2.5.2    2020-11-10 [1] CRAN (R 4.0.2)
##  magrittr               1.5      2014-11-22 [2] CRAN (R 4.0.0)
##  Matrix                 1.2-18   2019-11-27 [3] CRAN (R 4.0.2)
##  matrixStats          * 0.57.0   2020-09-25 [2] CRAN (R 4.0.2)
##  memoise                1.1.0    2017-04-21 [2] CRAN (R 4.0.0)
##  modelr                 0.1.8    2020-05-19 [1] CRAN (R 4.0.0)
##  munsell                0.5.0    2018-06-12 [2] CRAN (R 4.0.0)
##  nnet                   7.3-14   2020-04-26 [3] CRAN (R 4.0.2)
##  openssl                1.4.3    2020-09-18 [2] CRAN (R 4.0.2)
##  pillar                 1.4.6    2020-07-10 [2] CRAN (R 4.0.2)
##  pkgbuild               1.1.0    2020-07-13 [2] CRAN (R 4.0.2)
##  pkgconfig              2.0.3    2019-09-22 [2] CRAN (R 4.0.0)
##  pkgload                1.1.0    2020-05-29 [2] CRAN (R 4.0.2)
##  plyr                   1.8.6    2020-03-03 [2] CRAN (R 4.0.0)
##  png                    0.1-7    2013-12-03 [2] CRAN (R 4.0.0)
##  prettyunits            1.1.1    2020-01-24 [2] CRAN (R 4.0.0)
##  processx               3.4.4    2020-09-03 [2] CRAN (R 4.0.2)
##  progress               1.2.2    2019-05-16 [2] CRAN (R 4.0.0)
##  ps                     1.4.0    2020-10-07 [2] CRAN (R 4.0.2)
##  purrr                * 0.3.4    2020-04-17 [2] CRAN (R 4.0.0)
##  qvalue                 2.20.0   2020-04-27 [2] Bioconductor  
##  R6                     2.5.0    2020-10-28 [1] CRAN (R 4.0.2)
##  rappdirs               0.3.1    2016-03-28 [2] CRAN (R 4.0.0)
##  RColorBrewer           1.1-2    2014-12-07 [2] CRAN (R 4.0.0)
##  Rcpp                   1.0.5    2020-07-06 [2] CRAN (R 4.0.2)
##  RCurl                  1.98-1.2 2020-04-18 [2] CRAN (R 4.0.0)
##  readr                * 1.4.0    2020-10-05 [2] CRAN (R 4.0.2)
##  readxl                 1.3.1    2019-03-13 [2] CRAN (R 4.0.0)
##  recount              * 1.14.0   2020-04-27 [2] Bioconductor  
##  RefManageR             1.2.12   2019-04-03 [1] CRAN (R 4.0.2)
##  remotes                2.2.0    2020-07-21 [2] CRAN (R 4.0.2)
##  rentrez                1.2.2    2019-05-02 [2] CRAN (R 4.0.0)
##  reprex                 0.3.0    2019-05-16 [1] CRAN (R 4.0.0)
##  reshape2               1.4.4    2020-04-09 [2] CRAN (R 4.0.0)
##  rlang                  0.4.8    2020-10-08 [1] CRAN (R 4.0.2)
##  rmarkdown            * 2.5      2020-10-21 [1] CRAN (R 4.0.2)
##  rngtools               1.5      2020-01-23 [2] CRAN (R 4.0.0)
##  rpart                  4.1-15   2019-04-12 [3] CRAN (R 4.0.2)
##  rprojroot              1.3-2    2018-01-03 [2] CRAN (R 4.0.0)
##  Rsamtools              2.4.0    2020-04-27 [2] Bioconductor  
##  RSQLite                2.2.1    2020-09-30 [2] CRAN (R 4.0.2)
##  rstudioapi             0.11     2020-02-07 [2] CRAN (R 4.0.0)
##  rtracklayer            1.48.0   2020-04-27 [2] Bioconductor  
##  rvest                  0.3.6    2020-07-25 [2] CRAN (R 4.0.2)
##  S4Vectors            * 0.26.1   2020-05-16 [2] Bioconductor  
##  scales                 1.1.1    2020-05-11 [2] CRAN (R 4.0.0)
##  sessioninfo          * 1.1.1    2018-11-05 [2] CRAN (R 4.0.0)
##  stringi                1.5.3    2020-09-09 [2] CRAN (R 4.0.2)
##  stringr              * 1.4.0    2019-02-10 [2] CRAN (R 4.0.0)
##  SummarizedExperiment * 1.18.2   2020-07-09 [2] Bioconductor  
##  survival               3.2-3    2020-06-13 [3] CRAN (R 4.0.2)
##  testthat               3.0.0    2020-10-31 [1] CRAN (R 4.0.2)
##  tibble               * 3.0.4    2020-10-12 [2] CRAN (R 4.0.2)
##  tidyr                * 1.1.2    2020-08-27 [2] CRAN (R 4.0.2)
##  tidyselect             1.1.0    2020-05-11 [2] CRAN (R 4.0.0)
##  tidyverse            * 1.3.0    2019-11-21 [1] CRAN (R 4.0.0)
##  usethis              * 1.6.3    2020-09-17 [2] CRAN (R 4.0.2)
##  VariantAnnotation      1.34.0   2020-04-27 [2] Bioconductor  
##  vctrs                  0.3.4    2020-08-29 [1] CRAN (R 4.0.2)
##  withr                  2.3.0    2020-09-22 [2] CRAN (R 4.0.2)
##  xfun                   0.19     2020-10-30 [1] CRAN (R 4.0.2)
##  XML                    3.99-0.5 2020-07-23 [2] CRAN (R 4.0.2)
##  xml2                   1.3.2    2020-04-23 [2] CRAN (R 4.0.0)
##  XVector                0.28.0   2020-04-27 [2] Bioconductor  
##  yaml                   2.2.1    2020-02-01 [2] CRAN (R 4.0.0)
##  zlibbioc               1.34.0   2020-04-27 [2] Bioconductor  
## 
## [1] /users/neagles/R/4.0
## [2] /jhpce/shared/jhpce/core/conda/miniconda3-4.6.14/envs/svnR-4.0/R/4.0/lib64/R/site-library
## [3] /jhpce/shared/jhpce/core/conda/miniconda3-4.6.14/envs/svnR-4.0/R/4.0/lib64/R/library

3 Bibliography

This document was generated using BiocStyle (Oleś, Morgan, and Huber, 2020) with knitr (Xie, 2014) and rmarkdown (Allaire, Xie, McPherson, Luraschi, et al., 2020) running behind the scenes.

Citations made with knitcitations (Boettiger, 2019) and the bibliographical file is available here.

[1] J. Allaire, Y. Xie, J. McPherson, J. Luraschi, et al. rmarkdown: Dynamic Documents for R. R package version 2.5. 2020. <URL: https://github.com/rstudio/rmarkdown>.

[2] C. Boettiger. knitcitations: Citations for ‘Knitr’ Markdown Files. R package version 1.0.10. 2019. <URL: https://CRAN.R-project.org/package=knitcitations>.

[3] G. Csárdi, R. core, H. Wickham, W. Chang, et al. sessioninfo: R Session Information. R package version 1.1.1. 2018. <URL: https://CRAN.R-project.org/package=sessioninfo>.

[4] A. Oleś, M. Morgan, and W. Huber. BiocStyle: Standard styles for vignettes and other Bioconductor documents. R package version 2.16.1. 2020. <URL: https://github.com/Bioconductor/BiocStyle>.

[5] R Core Team. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. Vienna, Austria, 2020. <URL: https://www.R-project.org/>.

[6] P. L. Whetzel, N. F. Noy, N. H. Shah, P. R. Alexander, et al. “BioPortal: enhanced functionality via new Web services from the National Center for Biomedical Ontology to access and use ontologies in software applications”. In: Nucleic Acids Research 39.suppl (Jun. 2011), pp. W541-W545. DOI: 10.1093/nar/gkr469. <URL: https://doi.org/10.1093/nar/gkr469>.

[7] H. Wickham, M. Averick, J. Bryan, W. Chang, et al. “Welcome to the tidyverse”. In: Journal of Open Source Software 4.43 (2019), p. 1686. DOI: 10.21105/joss.01686.

[8] Y. Xie. “knitr: A Comprehensive Tool for Reproducible Research in R”. In: Implementing Reproducible Computational Research. Ed. by V. Stodden, F. Leisch and R. D. Peng. ISBN 978-1466561595. Chapman and Hall/CRC, 2014. <URL: http://www.crcpress.com/product/isbn/9781466561595>.