There are a few methods of importing annotation data into R. The following are two attempts, the second is currently being used in these analyses.
AnnotationHub is a newer service and has promise to be an excellent top-level resource for gathering annotation data.
tt <- sm(library(AnnotationHub))
ah <- sm(AnnotationHub())
orgdbs <- query(ah, "OrgDB")
annot_lm <- query(ah, c("OrgDB", "Friedlin"))
lm_name <- names(annot_lm)
annot_lm <- sm(annot_lm[[lm_name[[2]]]])
txtdbs <- query(ah, "TxDb")
## AH48429 appears to be panamensis
##annot_lp <- annot_lp[["AH48429"]]
annot_lp <- query(ah, c("OrgDB", "panamensis"))
lp_name <- names(annot_lp)
annot_lp <- sm(annot_lp[[lp_name[[2]]]])
Since this document was originally written, I have made substantial changes to how I create, load, and manipulate the eupathdb annotation data. As a result, this needs to be significantly reworked.
AnnotationHub is the new and fancier version of what OrganismDb does. Keith already made these for the parasites though, lets try and use one of those.
tritryp_metadata <- EuPathDB::download_eupath_metadata(webservice="tritrypdb")
testing_panamensis <- EuPathDB::make_eupath_organismdbi("panamensis")
testing_braziliensis <- EuPathDB::make_eupath_organismdbi("braziliensis")
testing_donovani <- EuPathDB::make_eupath_organismdbi("donovani")
testing_mexicana <- EuPathDB::make_eupath_organismdbi("mexicana")
testing_major <- EuPathDB::make_eupath_organismdbi("major")
testing_crith <- EuPathDB::make_eupath_organismdbi("Crit", metadata=tritryp_metadata)
Assuming the above packages got created, we may load them and extract the annotation data.
tritryp_metadata <- EuPathDB::download_eupath_metadata(webservice="tritrypdb")
major_names <- EuPathDB::get_eupath_pkgnames("major")
## Starting metadata download.
## Finished metadata download.
## Found the following hits: Leishmania major strain Friedlin, Leishmania major strain LV39c5, Leishmania major strain SD 75.1, choosing the first.
## org.Lmajor.Friedlin.v41.eg.db
wanted_fields <- c("annot_cds_length", "annot_chromosome", "annot_gene_entrez_id",
"annot_gene_name", "annot_strand", "gid", "go_go_id",
"go_go_term_name", "go_ontology",
"interpro_description" ,"interpro_e_value", "type_gene_type")
old_name <- "org.Lmajor.Friedlin.v38.eg.db"
lm_org <- sm(EuPathDB::load_orgdb_annotations(old_name, keytype="gid", fields=wanted_fields))
panamensis_names <- EuPathDB::get_eupath_pkgnames("panamensis")
## Starting metadata download.
## Finished metadata download.
## Found the following hits: Leishmania panamensis MHOM/COL/81/L13, Leishmania panamensis strain MHOM/PA/94/PSC-1, choosing the first.
## org.Lpanamensis.MHOMCOL81L13.v41.eg.db
old_name <- "org.Lpanamensis.MHOMCOL81L13.v38.eg.db"
lp_org <- sm(EuPathDB::load_orgdb_annotations(old_name, keytype="gid", fields=wanted_fields))
braziliensis_names <- EuPathDB::get_eupath_pkgnames("braziliensis")
## Starting metadata download.
## Finished metadata download.
## Found the following hits: Leishmania braziliensis MHOM/BR/75/M2903, Leishmania braziliensis MHOM/BR/75/M2904, choosing the first.
## org.Lbraziliensis.MHOMBR75M2903.v41.eg.db
old_name <- "org.Lbraziliensis.MHOMBR75M2903.v38.eg.db"
lb_org <- sm(EuPathDB::load_orgdb_annotations(old_name, keytype="gid", fields=wanted_fields))
##donovani_names <- get_eupath_pkgnames("donovani")
##donovani_names$orgdb
##ld_org <- load_orgdb_annotations(donovani_names$orgdb, keytype="gid", fields=wanted_fields)
##
##mexicana_names <- get_eupath_pkgnames("mexicana")
##mexicana_names$orgdb
##lmex_org <- load_orgdb_annotations(mexicana_names$orgdb, keytype="gid", fields=wanted_fields)
##
##fasciculata_names <- get_eupath_pkgnames("rithidia", metadata=tritryp_metadata)
##fasciculata_names$orgdb
##cf_org <- load_orgdb_annotations(fasciculata_names$orgdb, keytype="gid", fields=wanted_fields)
In contrast, it is possible to load most annotations of interest directly from the gff files used in the alignments. More in-depth information for the human transcriptome may be extracted from biomart.
## The old way of getting genome/annotation data
lp_gff <- "reference/lpanamensis.gff"
lb_gff <- "reference/lbraziliensis.gff"
hs_gff <- "reference/hsapiens.gtf"
lp_fasta <- "reference/lpanamensis.fasta.xz"
lb_fasta <- "reference/lbraziliensis.fasta.xz"
hs_fasta <- "reference/hsapiens.fasta.xz"
lp_annotations <- sm(load_gff_annotations(lp_gff, type="gene"))
rownames(lp_annotations) <- paste0("exon_", lp_annotations$web_id, ".1")
lb_annotations <- sm(load_gff_annotations(lb_gff, type="gene"))
hs_gff_annot <- sm(load_gff_annotations(hs_gff, id_col="gene_id"))
hs_annotations <- sm(load_biomart_annotations())$annotation
hs_annotations$ID <- hs_annotations$geneID
rownames(hs_annotations) <- make.names(hs_annotations[["ensembl_gene_id"]], unique=TRUE)
dim(hs_annotations)
## [1] 197995 12
hs_size_dist <- plot_histogram(hs_annotations[["cds_length"]])
hs_size_dist +
ggplot2::scale_x_continuous(limits=c(0, 20000))
## Warning: Removed 103681 rows containing non-finite values (stat_bin).
## Warning: Removed 103681 rows containing non-finite values (stat_density).
## Warning: Removed 2 rows containing missing values (geom_bar).
Maria Adelaida requested adding the xCell cell types to the data.
## Length Class Mode
## spill 3 -none- list
## spill.array 3 -none- list
## signatures 489 GeneSetCollection list
## genes 10808 -none- character
## Loading required package: annotate
## Loading required package: XML
## Loading required package: graph
##
## Attaching package: 'graph'
## The following object is masked from 'package:XML':
##
## addNode
## setName: aDC%HPCA%1.txt
## geneIds: C1QA, C1QB, ..., CCL22 (total: 8)
## geneIdType: Null
## collectionType: Null
## setIdentifier: PEDS-092FVH8-LT:623:Tue Jun 6 14:36:33 2017:2
## description:
## organism:
## pubMedIds:
## urls:
## contributor:
## setVersion: 0.0.1
## creationDate:
## [1] "aDC%HPCA%1.txt" "aDC%HPCA%2.txt"
## [3] "aDC%HPCA%3.txt" "aDC%IRIS%1.txt"
## [5] "aDC%IRIS%2.txt" "aDC%IRIS%3.txt"
## [7] "Adipocytes%ENCODE%1.txt" "Adipocytes%ENCODE%2.txt"
## [9] "Adipocytes%ENCODE%3.txt" "Adipocytes%FANTOM%1.txt"
## Here we see that the signatures are encoded as 3 element lists, the first element is the
## cell type, followed by source, followed by replicate.txt.
cell_types <- unlist(lapply(strsplit(x=names(sigs), split="%"), function(x) { x[[1]] }))
cell_sources <- unlist(lapply(strsplit(x=names(sigs), split="%"), function(x) { x[[2]] }))
type_fact <- as.factor(cell_types)
types <- levels(type_fact)
celltypes_to_genes <- list()
for (c in 1:length(types)) {
type <- types[c]
idx <- cell_types == type
set <- sigs[idx]
genes <- set %>%
geneIds() %>%
unlist()
celltypes_to_genes[[type]] <- as.character(genes)
}
genes_to_celltypes <- Biobase::reverseSplit(celltypes_to_genes)
g2c_df <- data.frame(row.names=unique(names(genes_to_celltypes)))
g2c_df[["found"]] <- 0
for (c in 1:length(celltypes_to_genes)) {
celltype_name <- names(celltypes_to_genes)[[c]]
celltype_column <- as.data.frame(celltypes_to_genes[[c]])
colnames(celltype_column) <- celltype_name
rownames(celltype_column) <- make.names(celltype_column[[1]], unique=TRUE)
celltype_column[[1]] <- TRUE
g2c_df <- merge(g2c_df, celltype_column, by="row.names", all.x=TRUE)
rownames(g2c_df) <- g2c_df[[1]]
g2c_df <- g2c_df[, -1]
print(dim(g2c_df))
}
## [1] 5079 2
## [1] 5079 3
## [1] 5079 4
## [1] 5079 5
## [1] 5079 6
## [1] 5079 7
## [1] 5079 8
## [1] 5079 9
## [1] 5079 10
## [1] 5079 11
## [1] 5079 12
## [1] 5079 13
## [1] 5079 14
## [1] 5079 15
## [1] 5079 16
## [1] 5079 17
## [1] 5079 18
## [1] 5079 19
## [1] 5079 20
## [1] 5079 21
## [1] 5079 22
## [1] 5079 23
## [1] 5079 24
## [1] 5079 25
## [1] 5079 26
## [1] 5079 27
## [1] 5079 28
## [1] 5079 29
## [1] 5079 30
## [1] 5079 31
## [1] 5079 32
## [1] 5079 33
## [1] 5079 34
## [1] 5079 35
## [1] 5079 36
## [1] 5079 37
## [1] 5079 38
## [1] 5079 39
## [1] 5079 40
## [1] 5079 41
## [1] 5079 42
## [1] 5079 43
## [1] 5079 44
## [1] 5079 45
## [1] 5079 46
## [1] 5079 47
## [1] 5079 48
## [1] 5079 49
## [1] 5079 50
## [1] 5079 51
## [1] 5079 52
## [1] 5079 53
## [1] 5079 54
## [1] 5079 55
## [1] 5079 56
## [1] 5079 57
## [1] 5079 58
## [1] 5079 59
## [1] 5079 60
## [1] 5079 61
## [1] 5079 62
## [1] 5079 63
## [1] 5079 64
## [1] 5079 65
## found aDC Adipocytes Astrocytes B-cells Basophils CD4+ memory T-cells
## A1CF 0 NA NA NA NA NA NA
## CD4+ naive T-cells CD4+ T-cells CD4+ Tcm CD4+ Tem CD8+ naive T-cells
## A1CF NA NA NA NA NA
## CD8+ T-cells CD8+ Tcm CD8+ Tem cDC Chondrocytes
## A1CF NA NA NA NA NA
## Class-switched memory B-cells CLP CMP DC Endothelial cells
## A1CF NA NA NA NA NA
## Eosinophils Epithelial cells Erythrocytes Fibroblasts GMP Hepatocytes
## A1CF NA NA NA NA NA TRUE
## HSC iDC Keratinocytes ly Endothelial cells Macrophages Macrophages M1
## A1CF NA NA NA NA NA NA
## Macrophages M2 Mast cells Megakaryocytes Melanocytes Memory B-cells
## A1CF NA NA NA NA NA
## MEP Mesangial cells Monocytes MPP MSC mv Endothelial cells Myocytes
## A1CF NA NA NA NA NA NA NA
## naive B-cells Neurons Neutrophils NK cells NKT Osteoblast pDC
## A1CF NA NA NA NA NA NA NA
## Pericytes Plasma cells Platelets Preadipocytes pro B-cells Sebocytes
## A1CF NA NA NA NA NA NA
## Skeletal muscle Smooth muscle Tgd cells Th1 cells Th2 cells Tregs
## A1CF NA NA NA NA NA NA
## [ reached 'max' / getOption("max.print") -- omitted 5 rows ]
Annotation for gene ontologies may be gathered from a similarly large number of sources. The following are a couple.
## Try using biomart
hs_go_biomart <- sm(load_biomart_go())
## or the org.Hs.eg.db sqlite database
tt <- sm(library("Homo.sapiens"))
hs <- Homo.sapiens
##hs_go_ensembl <- load_orgdb_go(hs, hs_annotations$geneID)
##dim(hs_go_biomart)
##dim(hs_go_ensembl)
##hs_goids <- hs_go_biomart
## While testing, I called this desc, that will need to change.
##lp_tooltips <- make_tooltips(lp_annotations)
##lb_tooltips <- make_tooltips(lb_annotations)
lp_lengths <- lp_annotations[, c("ID", "width")]
lb_lengths <- lb_annotations[, c("ID", "width")]
hs_lengths <- hs_annotations[, c("ensembl_gene_id", "cds_length")]
colnames(hs_lengths) <- c("ID", "width")
lp_goids <- read.csv(file="reference/lpan_go.txt.xz", sep="\t", header=FALSE)
lb_goids <- read.csv(file="reference/lbraz_go.txt.xz", sep="\t", header=FALSE)
colnames(lp_goids) <- c("ID","GO","ont","name","source","tag")
colnames(lb_goids) <- c("ID","GO","ont","name","source","tag")
The macrophage experiment has samples across 2 contexts, the host and parasite. The following block sets up one experiment for each. If you open the all_samples-species.xlsx files, you will note immediately that a few different attempts were made at ascertaining the most likely experimental factors that contributed to the readily apparent batch effects.
Keep in mind that if I change the experimental design with new annotations, I must therefore regenerate the following.
hs_final_annotations <- hs_annotations
hs_final_annotations <- hs_final_annotations[, c("ensembl_transcript_id", "ensembl_gene_id",
"hgnc_symbol", "description", "gene_biotype")]
hs_final_annotations$rn <- rownames(hs_final_annotations)
note <- "New experimental design factors by snp added 2016-09-20"
hs_final_annotations <- merge(hs_final_annotations, g2c_df,
by.x="hgnc_symbol", by.y="row.names", all.x=TRUE)
rownames(hs_final_annotations) <- hs_final_annotations$rn
hs_final_annotations$rn <- NULL
na_idx <- is.na(hs_final_annotations$xcell_types)
hs_final_annotations[na_idx, "xcell_types"] <- ""
hs_expt <- sm(create_expt("sample_sheets/all_samples-combined.xlsx",
gene_info=hs_final_annotations,
file_column="humanfile",
notes=note))
hs_annotations <- fData(hs_expt)
undef_idx <- hs_annotations == "undefined"
hs_annotations[undef_idx] <- FALSE
fData(hs_expt[["expressionset"]]) <- hs_annotations
knitr::kable(head(hs_expt$design, n=1))
sampleid | pathogenstrain | experimentname | tubelabel | alias | condition | batch | anotherbatch | snpclade | snpcladev2 | snpcladev3 | pathogenstrain.1 | label | donor | time | pctmappedparasite | pctcategory | state | sourcelab | expperson | pathogen | host | hostcelltype | noofhostcells | infectionperiodhpitimeofharvest | moiexposure | parasitespercell | pctinf | rnangul | rnaqcpassed | libraryconst | libqcpassed | index | descriptonandremarks | observation | lowercaseid | humanfile | parasitefile | file | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HPGL0241 | HPGL0241 | none | macrophage | TM130-Nil (Blue label) | Nil | uninf | a | a | undef | undef | undef | none | uninf_1 | d130 | undef | undef | 0 | uninfected | Ade | Adriana | none | Human | Human macs | Max 2 mill | 2h - 24h chase period | NA | unknown | unknown | 468 | Y | Wanderson | Y | 1 | Uninfected human macrophages | NA | hpgl0241 | preprocessing/hpgl0241/outputs/tophat_hsapiens/accepted_paired.count.xz | undef | null |
parasite_expt <- sm(create_expt("sample_sheets/all_samples-combined.xlsx",
gene_info=lp_annotations, file_column="parasitefile"))
knitr::kable(head(parasite_expt$design, n=3),
caption="The first three rows of the parasite experimental design.")
sampleid | pathogenstrain | experimentname | tubelabel | alias | condition | batch | anotherbatch | snpclade | snpcladev2 | snpcladev3 | pathogenstrain.1 | label | donor | time | pctmappedparasite | pctcategory | state | sourcelab | expperson | pathogen | host | hostcelltype | noofhostcells | infectionperiodhpitimeofharvest | moiexposure | parasitespercell | pctinf | rnangul | rnaqcpassed | libraryconst | libqcpassed | index | descriptonandremarks | observation | lowercaseid | humanfile | parasitefile | file | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HPGL0242 | HPGL0242 | s2271 | macrophage | TM130-2271 | Self-Healing | sh | a | a | white | whitepink | right | s2271 | sh_2271 | d130 | undef | 30 | 3 | self_heal | Ade | Adriana | Lp | Human | Human macs | Max 2 mill | 2h - 24h chase period | 0.0486111111111111 | unknown | unknown | 276 | Y | Wanderson | Y | 8 | Infected human macrophages. | NA | hpgl0242 | preprocessing/hpgl0242/outputs/tophat_hsapiens/accepted_paired.count.xz | preprocessing/hpgl0242/outputs/tophat_lpanamensis/accepted_paired.count.xz | null |
HPGL0244 | HPGL0244 | s5433 | macrophage | TM130-5433 | Chronic | chr | a | a | blue_self | blue | left | s5433 | chr_5433 | d130 | undef | 15 | 1 | chronic | Ade | Adriana | Lp | Human | Human macs | Max 2 mill | 2h - 24h chase period | 0.0486111111111111 | unknown | unknown | 261 | Y | Wanderson | Y | 27 | Infected human macrophages | NA | hpgl0244 | preprocessing/hpgl0244/outputs/tophat_hsapiens/accepted_paired.count.xz | preprocessing/hpgl0244/outputs/tophat_lpanamensis/accepted_paired.count.xz | null |
HPGL0245 | HPGL0245 | s1320 | macrophage | TM130-1320 | Chronic | chr | a | a | multicolor | yellowbrownmulti | right | s1320 | chr_1320 | d130 | undef | 40 | 4 | chronic | Ade | Adriana | Lp | Human | Human macs | Max 2 mill | 2h - 24h chase period | 0.0486111111111111 | unknown | unknown | 199 | Y | Wanderson | Y | 11 | Infected human macrophages | NA | hpgl0245 | preprocessing/hpgl0245/outputs/tophat_hsapiens/accepted_paired.count.xz | preprocessing/hpgl0245/outputs/tophat_lpanamensis/accepted_paired.count.xz | null |
Table S1 is going to be a summary of the metadata in all_samples-combined This may also include some of the numbers regarding mapping %, etc.
Wanted columns:
Use the Tcruzi colors.
At this point, we should have everything necessary to perform the various analyses of the 4 sub-experiments. So save the current data for reuse elsewhere.
The experimental design is available here.
## If you wish to reproduce this exact build of hpgltools, invoke the following:
## > git clone http://github.com/abelew/hpgltools.git
## > git reset 7ec7a093f7ee8293e7a5326cb8f77479341502a7
## This is hpgltools commit: Thu Feb 7 16:10:02 2019 -0500: 7ec7a093f7ee8293e7a5326cb8f77479341502a7
this_save <- paste0(gsub(pattern="\\.Rmd", replace="", x=rmd_file), "-v", ver, ".rda.xz")
message(paste0("Saving to ", this_save))
## Saving to 01_annotation_20190205-v20190205.rda.xz
## The savefile is: /cbcb/nelsayed-scratch/atb/rnaseq/lpanamensis_2016/savefiles/01_annotation_20190205-v20190205.rda.xz
## Renaming /cbcb/nelsayed-scratch/atb/rnaseq/lpanamensis_2016/savefiles/01_annotation_20190205-v20190205.rda.xz to /cbcb/nelsayed-scratch/atb/rnaseq/lpanamensis_2016/savefiles/01_annotation_20190205-v20190205.rda.xz.01.
## The save string is: con <- pipe(paste0('pxz -T6 > /cbcb/nelsayed-scratch/atb/rnaseq/lpanamensis_2016/savefiles/01_annotation_20190205-v20190205.rda.xz'), 'wb'); save(list=ls(all.names=TRUE, envir=globalenv()),
## envir=globalenv(), file=con, compress=FALSE); close(con)
R version 3.5.2 (2018-12-20)
Platform: x86_64-pc-linux-gnu (64-bit)
locale: LC_CTYPE=en_US.utf8, LC_NUMERIC=C, LC_TIME=en_US.utf8, LC_COLLATE=en_US.utf8, LC_MONETARY=en_US.utf8, LC_MESSAGES=en_US.utf8, LC_PAPER=en_US.utf8, LC_NAME=C, LC_ADDRESS=C, LC_TELEPHONE=C, LC_MEASUREMENT=en_US.utf8 and LC_IDENTIFICATION=C
attached base packages: stats4, parallel, stats, graphics, grDevices, utils, datasets, methods and base
other attached packages: Homo.sapiens(v.1.3.1), TxDb.Hsapiens.UCSC.hg19.knownGene(v.3.2.2), org.Hs.eg.db(v.3.7.0), GO.db(v.3.7.0), OrganismDbi(v.1.24.0), GenomicFeatures(v.1.34.1), GenomicRanges(v.1.34.0), GenomeInfoDb(v.1.18.1), GSEABase(v.1.44.0), graph(v.1.60.0), annotate(v.1.60.0), XML(v.3.98-1.16), xCell(v.1.1.0), org.Lbraziliensis.MHOMBR75M2903.v38.eg.db(v.2018.08), org.Lpanamensis.MHOMCOL81L13.v38.eg.db(v.2018.08), org.Lmajor.Friedlin.v38.eg.db(v.2018.08), AnnotationDbi(v.1.44.0), IRanges(v.2.16.0), S4Vectors(v.0.20.1), AnnotationHub(v.2.14.2), hpgltools(v.2018.11), Biobase(v.2.42.0) and BiocGenerics(v.0.28.0)
loaded via a namespace (and not attached): tidyselect(v.0.2.5), lme4(v.1.1-19), RSQLite(v.2.1.1), grid(v.3.5.2), BiocParallel(v.1.16.5), devtools(v.2.0.1), munsell(v.0.5.0), codetools(v.0.2-16), units(v.0.6-2), withr(v.2.1.2), colorspace(v.1.4-0), GOSemSim(v.2.8.0), highr(v.0.7), knitr(v.1.21), rstudioapi(v.0.9.0), DOSE(v.3.8.2), labeling(v.0.3), urltools(v.1.7.1), GenomeInfoDbData(v.1.2.0), bit64(v.0.9-7), farver(v.1.1.0), rprojroot(v.1.3-2), xfun(v.0.4), R6(v.2.3.0), doParallel(v.1.0.14), bitops(v.1.0-6), fgsea(v.1.8.0), gridGraphics(v.0.3-0), DelayedArray(v.0.8.0), assertthat(v.0.2.0), promises(v.1.0.1), scales(v.1.0.0), ggraph(v.1.0.2), enrichplot(v.1.2.0), gtable(v.0.2.0), sva(v.3.30.1), processx(v.3.2.1), rlang(v.0.3.1), genefilter(v.1.64.0), splines(v.3.5.2), rtracklayer(v.1.42.1), lazyeval(v.0.2.1), europepmc(v.0.3), BiocManager(v.1.30.4), yaml(v.2.2.0), reshape2(v.1.4.3), backports(v.1.1.3), httpuv(v.1.4.5.1), qvalue(v.2.14.1), RBGL(v.1.58.1), clusterProfiler(v.3.10.1), tools(v.3.5.2), usethis(v.1.4.0), ggplotify(v.0.0.3), ggplot2(v.3.1.0), gplots(v.3.0.1), RColorBrewer(v.1.1-2), sessioninfo(v.1.1.1), ggridges(v.0.5.1), Rcpp(v.1.0.0), plyr(v.1.8.4), base64enc(v.0.1-3), progress(v.1.2.0), zlibbioc(v.1.28.0), purrr(v.0.2.5), RCurl(v.1.95-4.11), ps(v.1.3.0), prettyunits(v.1.0.2), viridis(v.0.5.1), cowplot(v.0.9.4), SummarizedExperiment(v.1.12.0), ggrepel(v.0.8.0), colorRamps(v.2.3), fs(v.1.2.6), variancePartition(v.1.12.1), magrittr(v.1.5), data.table(v.1.12.0), openxlsx(v.4.1.0), DO.db(v.2.9), triebeard(v.0.3.0), packrat(v.0.5.0), matrixStats(v.0.54.0), pkgload(v.1.0.2), hms(v.0.4.2), mime(v.0.6), evaluate(v.0.12), GSVA(v.1.30.0), xtable(v.1.8-3), pbkrtest(v.0.4-7), gridExtra(v.2.3), testthat(v.2.0.1), compiler(v.3.5.2), biomaRt(v.2.38.0), tibble(v.2.0.1), KernSmooth(v.2.23-15), crayon(v.1.3.4), minqa(v.1.2.4), htmltools(v.0.3.6), mgcv(v.1.8-26), later(v.0.7.5.9000), tidyr(v.0.8.2), geneplotter(v.1.60.0), DBI(v.1.0.0), tweenr(v.1.0.1), MASS(v.7.3-51.1), Matrix(v.1.2-15), cli(v.1.0.1), gdata(v.2.18.0), bindr(v.0.1.1), igraph(v.1.2.2), pkgconfig(v.2.0.2), rvcheck(v.0.1.3), GenomicAlignments(v.1.18.1), xml2(v.1.2.0), foreach(v.1.4.4), XVector(v.0.22.0), rvest(v.0.3.2), stringr(v.1.3.1), callr(v.3.1.1), digest(v.0.6.18), pracma(v.2.2.2), Biostrings(v.2.50.2), EuPathDB(v.1.0.1), rmarkdown(v.1.11), fastmatch(v.1.1-0), curl(v.3.3), shiny(v.1.2.0), Rsamtools(v.1.34.0), gtools(v.3.8.1), nloptr(v.1.2.1), nlme(v.3.1-137), jsonlite(v.1.6), bindrcpp(v.0.2.2), desc(v.1.2.0), viridisLite(v.0.3.0), limma(v.3.38.3), pillar(v.1.3.1), lattice(v.0.20-38), httr(v.1.4.0), pkgbuild(v.1.0.2), survival(v.2.43-3), interactiveDisplayBase(v.1.20.0), glue(v.1.3.0), remotes(v.2.0.2), zip(v.1.0.0), UpSetR(v.1.3.3), shinythemes(v.1.1.2), iterators(v.1.0.10), pander(v.0.6.3), bit(v.1.1-14), ggforce(v.0.1.3), stringi(v.1.2.4), blob(v.1.1.1), caTools(v.1.17.1.1), memoise(v.1.1.0) and dplyr(v.0.7.8)