1 BugSigDB: a comprehensive database of published microbial signatures

BugSigDB is a manually curated database of microbial signatures from the published literature of differential abundance studies of human and other host microbiomes.

BugSigDB provides:

  • standardized data on geography, health outcomes, host body sites, and experimental, epidemiological, and statistical methods using controlled vocabulary,
  • results on microbial diversity,
  • microbial signatures standardized to the NCBI taxonomy, and
  • identification of published signatures where a microbe has been reported.

The bugsigdbr package implements convenient access to BugSigDB from within R/Bioconductor. The goal of the package is to facilitate import of BugSigDB data into R/Bioconductor, provide utilities for extracting microbe signatures, and enable export of the extracted signatures to plain text files in standard file formats such as GMT.

The bugsigdbr package is primarily a data package. For descriptive statistics and comprehensive analysis of BugSigDB contents, please see the BugSigDBStats package and analysis vignette.

We start by loading the package.

library(bugsigdbr)

1.1 Obtaining published microbial signatures from BugSigDB

The function importBugSigDB can be used to import the complete collection of curated signatures from BugSigDB. The dataset is downloaded once and subsequently cached. Use cache = FALSE to force a fresh download of BugSigDB and overwrite the local copy in your cache.

bsdb <- importBugSigDB()
dim(bsdb)
#> [1] 7425   51
colnames(bsdb)
#>  [1] "BSDB ID"                    "Study"                     
#>  [3] "Study design"               "PMID"                      
#>  [5] "DOI"                        "URL"                       
#>  [7] "Authors list"               "Title"                     
#>  [9] "Journal"                    "Year"                      
#> [11] "Keywords"                   "Experiment"                
#> [13] "Location of subjects"       "Host species"              
#> [15] "Body site"                  "UBERON ID"                 
#> [17] "Condition"                  "EFO ID"                    
#> [19] "Group 0 name"               "Group 1 name"              
#> [21] "Group 1 definition"         "Group 0 sample size"       
#> [23] "Group 1 sample size"        "Antibiotics exclusion"     
#> [25] "Sequencing type"            "16S variable region"       
#> [27] "Sequencing platform"        "Data transformation"       
#> [29] "Statistical test"           "Significance threshold"    
#> [31] "MHT correction"             "LDA Score above"           
#> [33] "Matched on"                 "Confounders controlled for"
#> [35] "Pielou"                     "Shannon"                   
#> [37] "Chao1"                      "Simpson"                   
#> [39] "Inverse Simpson"            "Richness"                  
#> [41] "Signature page name"        "Source"                    
#> [43] "Curated date"               "Curator"                   
#> [45] "Revision editor"            "Description"               
#> [47] "Abundance in Group 1"       "MetaPhlAn taxon names"     
#> [49] "NCBI Taxonomy IDs"          "State"                     
#> [51] "Reviewer"

Each row of the resulting data.frame corresponds to a microbe signature from differential abundance analysis, i.e. a set of microbes that has been found with increased or decreased abundance in one sample group when compared to another sample group (eg. in a case-vs.-control setup). The curated signatures are richly annotated with additional metadata columns providing information on study design, antibiotics exclusion criteria, sample size, and experimental and statistical procedures, among others.

Subsetting the full dataset to certain conditions, body sites, or other metadata columns of interest can be done along the usual lines for subsetting data.frames.

For example, the following subset command restricts the dataset to signatures obtained from microbiome studies on obesity, based on fecal samples from participants in the US.

us.obesity.feces <- subset(bsdb,
                           `Location of subjects` == "United States of America" &
                           Condition == "obesity" &
                           `Body site` == "feces")

1.2 Extracting microbe signatures

Given the full BugSigDB collection (or a subset of interest), the function getSignatures can be used to obtain the microbes annotated to each signature.

Microbes annotated to a signature are returned following the NCBI Taxonomy nomenclature per default.

sigs <- getSignatures(bsdb)
length(sigs)
#> [1] 7365
sigs[1:3]
#> $`bsdb:83/1/1_Obesity:before-surgery_vs_after-surgery_UP`
#>  [1] "40214"  "207244" "105841" "159"    "33042"  "410072" "216851" "853"   
#>  [9] "833"    "860"    "209"    "1579"   "173"    "1598"   "1768"   "53461" 
#> [17] "300"    "1282"   "500"    "160"    "29348"  "5782"   "40637" 
#> 
#> $`bsdb:83/1/2_Obesity:before-surgery_vs_after-surgery_DOWN`
#>  [1] "544"   "547"   "69218" "590"   "28901" "621"   "29465" "39778" "29466"
#> [10] "5140" 
#> 
#> $`bsdb:817/1/1_Granulomatosis-with-Polyangiitis:Kidneys-with-calcification_vs_Healthy/Healthy-with-no-visible-granuloma_UP`
#> [1] "2578121" "49546"

It is also possible obtain signatures based on the full taxonomic classification in MetaPhlAn format …

mp.sigs <- getSignatures(bsdb, tax.id.type = "metaphlan")
mp.sigs[1:3]
#> $`bsdb:83/1/1_Obesity:before-surgery_vs_after-surgery_UP`
#>  [1] "k__Pseudomonadati|p__Pseudomonadota|c__Gammaproteobacteria|o__Moraxellales|f__Moraxellaceae|g__Acinetobacter|s__Acinetobacter johnsonii"          
#>  [2] "k__Bacillati|p__Bacillota|c__Clostridia|o__Lachnospirales|f__Lachnospiraceae|g__Anaerostipes"                                                     
#>  [3] "k__Bacillati|p__Bacillota|c__Clostridia|o__Lachnospirales|f__Lachnospiraceae|g__Anaerostipes|s__Anaerostipes caccae"                              
#>  [4] "k__Pseudomonadati|p__Spirochaetota|c__Spirochaetia|o__Brachyspirales|f__Brachyspiraceae|g__Brachyspira|s__Brachyspira hyodysenteriae"             
#>  [5] "k__Bacillati|p__Bacillota|c__Clostridia|o__Lachnospirales|f__Lachnospiraceae|g__Coprococcus"                                                      
#>  [6] "k__Bacillati|p__Bacillota|c__Clostridia|o__Lachnospirales|f__Lachnospiraceae|g__Allocoprococcus|s__Allocoprococcus comes"                         
#>  [7] "k__Bacillati|p__Bacillota|c__Clostridia|o__Eubacteriales|f__Oscillospiraceae|g__Faecalibacterium"                                                 
#>  [8] "k__Bacillati|p__Bacillota|c__Clostridia|o__Eubacteriales|f__Oscillospiraceae|g__Faecalibacterium|s__Faecalibacterium prausnitzii"                 
#>  [9] "k__Pseudomonadati|p__Fibrobacterota|c__Fibrobacteria|o__Fibrobacterales|f__Fibrobacteraceae|g__Fibrobacter|s__Fibrobacter succinogenes"           
#> [10] "k__Fusobacteriati|p__Fusobacteriota|c__Fusobacteriia|o__Fusobacteriales|f__Fusobacteriaceae|g__Fusobacterium|s__Fusobacterium periodonticum"      
#> [11] "k__Pseudomonadati|p__Campylobacterota|c__Epsilonproteobacteria|o__Campylobacterales|f__Helicobacteraceae|g__Helicobacter"                         
#> [12] "k__Bacillati|p__Bacillota|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Lactobacillus|s__Lactobacillus acidophilus"                        
#> [13] "k__Pseudomonadati|p__Spirochaetota|c__Leptospiria|o__Leptospirales|f__Leptospiraceae|g__Leptospira|s__Leptospira interrogans"                     
#> [14] "k__Bacillati|p__Bacillota|c__Bacilli|o__Lactobacillales|f__Lactobacillaceae|g__Limosilactobacillus|s__Limosilactobacillus reuteri"                
#> [15] "k__Bacillati|p__Actinomycetota|c__Actinomycetes|o__Mycobacteriales|f__Mycobacteriaceae|g__Mycobacterium|s__Mycobacterium kansasii"                
#> [16] "k__Bacillati|p__Actinomycetota|c__Actinomycetes|o__Nakamurellales|f__Nakamurellaceae|g__Nakamurella|s__Nakamurella multipartita"                  
#> [17] "k__Pseudomonadati|p__Pseudomonadota|c__Gammaproteobacteria|o__Pseudomonadales|f__Pseudomonadaceae|g__Ectopseudomonas|s__Ectopseudomonas mendocina"
#> [18] "k__Bacillati|p__Bacillota|c__Bacilli|o__Bacillales|f__Staphylococcaceae|g__Staphylococcus|s__Staphylococcus epidermidis"                          
#> [19] "k__Pseudomonadati|p__Thermomicrobiota|c__Thermomicrobia|o__Thermomicrobiales|f__Thermomicrobiaceae|g__Thermomicrobium|s__Thermomicrobium roseum"  
#> [20] "k__Pseudomonadati|p__Spirochaetota|c__Spirochaetia|o__Spirochaetales|f__Treponemataceae|g__Treponema|s__Treponema pallidum"                       
#> [21] "k__Bacillati|p__Bacillota|c__Erysipelotrichia|o__Erysipelotrichales|f__Coprobacillaceae|g__Thomasclavelia|s__Thomasclavelia spiroformis"          
#> [22] "p__Evosea|c__Eumycetozoa|o__Dictyosteliales|f__Dictyosteliaceae|g__Dictyostelium"                                                                 
#> [23] "p__Ciliophora|c__Litostomatea|o__Entodiniomorphida|f__Ophryoscolecidae|g__Epidinium"                                                              
#> 
#> $`bsdb:83/1/2_Obesity:before-surgery_vs_after-surgery_DOWN`
#>  [1] "k__Pseudomonadati|p__Pseudomonadota|c__Gammaproteobacteria|o__Enterobacterales|f__Enterobacteriaceae|g__Citrobacter"                              
#>  [2] "k__Pseudomonadati|p__Pseudomonadota|c__Gammaproteobacteria|o__Enterobacterales|f__Enterobacteriaceae|g__Enterobacter"                             
#>  [3] "k__Pseudomonadati|p__Pseudomonadota|c__Gammaproteobacteria|o__Enterobacterales|f__Enterobacteriaceae|g__Enterobacter|s__Enterobacter cancerogenus"
#>  [4] "k__Pseudomonadati|p__Pseudomonadota|c__Gammaproteobacteria|o__Enterobacterales|f__Enterobacteriaceae|g__Salmonella"                               
#>  [5] "k__Pseudomonadati|p__Pseudomonadota|c__Gammaproteobacteria|o__Enterobacterales|f__Enterobacteriaceae|g__Salmonella|s__Salmonella enterica"        
#>  [6] "k__Pseudomonadati|p__Pseudomonadota|c__Gammaproteobacteria|o__Enterobacterales|f__Enterobacteriaceae|g__Shigella|s__Shigella boydii"              
#>  [7] "k__Bacillati|p__Bacillota|c__Negativicutes|o__Veillonellales|f__Veillonellaceae|g__Veillonella"                                                   
#>  [8] "k__Bacillati|p__Bacillota|c__Negativicutes|o__Veillonellales|f__Veillonellaceae|g__Veillonella|s__Veillonella dispar"                             
#>  [9] "k__Bacillati|p__Bacillota|c__Negativicutes|o__Veillonellales|f__Veillonellaceae|g__Veillonella|s__Veillonella parvula"                            
#> [10] "k__Fungi|p__Ascomycota|c__Sordariomycetes|o__Sordariales|f__Sordariaceae|g__Neurospora"                                                           
#> 
#> $`bsdb:817/1/1_Granulomatosis-with-Polyangiitis:Kidneys-with-calcification_vs_Healthy/Healthy-with-no-visible-granuloma_UP`
#> [1] "k__Bacillati|p__Actinomycetota|c__Actinomycetes|o__Candidatus Actinomarinales|f__Candidatus Actinomarinaceae|g__Candidatus Actinomarina|s__Candidatus Actinomarina sp."
#> [2] "k__Pseudomonadati|p__Bacteroidota|c__Flavobacteriia|o__Flavobacteriales|f__Flavobacteriaceae"

… or using the taxonomic name only:

tn.sigs <- getSignatures(bsdb, tax.id.type = "taxname")
tn.sigs[1:3]
#> $`bsdb:83/1/1_Obesity:before-surgery_vs_after-surgery_UP`
#>  [1] "Acinetobacter johnsonii"      "Anaerostipes"                
#>  [3] "Anaerostipes caccae"          "Brachyspira hyodysenteriae"  
#>  [5] "Coprococcus"                  "Allocoprococcus comes"       
#>  [7] "Faecalibacterium"             "Faecalibacterium prausnitzii"
#>  [9] "Fibrobacter succinogenes"     "Fusobacterium periodonticum" 
#> [11] "Helicobacter"                 "Lactobacillus acidophilus"   
#> [13] "Leptospira interrogans"       "Limosilactobacillus reuteri" 
#> [15] "Mycobacterium kansasii"       "Nakamurella multipartita"    
#> [17] "Ectopseudomonas mendocina"    "Staphylococcus epidermidis"  
#> [19] "Thermomicrobium roseum"       "Treponema pallidum"          
#> [21] "Thomasclavelia spiroformis"   "Dictyostelium"               
#> [23] "Epidinium"                   
#> 
#> $`bsdb:83/1/2_Obesity:before-surgery_vs_after-surgery_DOWN`
#>  [1] "Citrobacter"               "Enterobacter"             
#>  [3] "Enterobacter cancerogenus" "Salmonella"               
#>  [5] "Salmonella enterica"       "Shigella boydii"          
#>  [7] "Veillonella"               "Veillonella dispar"       
#>  [9] "Veillonella parvula"       "Neurospora"               
#> 
#> $`bsdb:817/1/1_Granulomatosis-with-Polyangiitis:Kidneys-with-calcification_vs_Healthy/Healthy-with-no-visible-granuloma_UP`
#> [1] "Candidatus Actinomarina sp." "Flavobacteriaceae"

As metagenomic profiling with 16S RNA sequencing or whole-metagenome shotgun sequencing is typically conducted on a certain taxonomic level, it is also possible to obtain signatures restricted to eg. the genus level …

gn.sigs <- getSignatures(bsdb, 
                         tax.id.type = "taxname",
                         tax.level = "genus")
gn.sigs[1:3]
#> $`bsdb:83/1/1_Obesity:before-surgery_vs_after-surgery_UP`
#> [1] "Anaerostipes"     "Coprococcus"      "Faecalibacterium" "Helicobacter"    
#> [5] "Dictyostelium"    "Epidinium"       
#> 
#> $`bsdb:83/1/2_Obesity:before-surgery_vs_after-surgery_DOWN`
#> [1] "Citrobacter"  "Enterobacter" "Salmonella"   "Veillonella"  "Neurospora"  
#> 
#> $`bsdb:817/1/2_Granulomatosis-with-Polyangiitis:Kidneys-with-calcification_vs_Healthy/Healthy-with-no-visible-granuloma_DOWN`
#> [1] "Anoxybacillus" "Dermacoccus"   "Micrococcus"   "Paracoccus"

… or the species level:

gn.sigs <- getSignatures(bsdb, 
                         tax.id.type = "taxname",
                         tax.level = "species")
gn.sigs[1:3]
#> $`bsdb:83/1/1_Obesity:before-surgery_vs_after-surgery_UP`
#>  [1] "Acinetobacter johnsonii"      "Anaerostipes caccae"         
#>  [3] "Brachyspira hyodysenteriae"   "Allocoprococcus comes"       
#>  [5] "Faecalibacterium prausnitzii" "Fibrobacter succinogenes"    
#>  [7] "Fusobacterium periodonticum"  "Lactobacillus acidophilus"   
#>  [9] "Leptospira interrogans"       "Limosilactobacillus reuteri" 
#> [11] "Mycobacterium kansasii"       "Nakamurella multipartita"    
#> [13] "Ectopseudomonas mendocina"    "Staphylococcus epidermidis"  
#> [15] "Thermomicrobium roseum"       "Treponema pallidum"          
#> [17] "Thomasclavelia spiroformis"  
#> 
#> $`bsdb:83/1/2_Obesity:before-surgery_vs_after-surgery_DOWN`
#> [1] "Enterobacter cancerogenus" "Salmonella enterica"      
#> [3] "Shigella boydii"           "Veillonella dispar"       
#> [5] "Veillonella parvula"      
#> 
#> $`bsdb:817/1/1_Granulomatosis-with-Polyangiitis:Kidneys-with-calcification_vs_Healthy/Healthy-with-no-visible-granuloma_UP`
#> [1] "Candidatus Actinomarina sp."

Note that restricting signatures to microbes given at the genus level, will per default exclude microbes given at a more specific taxonomic rank such as species or strain.

For certain applications, it might be desirable to not exclude microbes given at a more specific taxonomic rank, but rather extract the more general tax.level for microbes given at a more specific taxonomic level.

This can be achieved by setting the argument exact.tax.level to FALSE, which will here extract genus level taxon names, for taxa given at the species or strain level.

gn.sigs <- getSignatures(bsdb, 
                         tax.id.type = "taxname",
                         tax.level = "genus",
                         exact.tax.level = FALSE)
gn.sigs[1:3]
#> $`bsdb:83/1/1_Obesity:before-surgery_vs_after-surgery_UP`
#> [1] "Anaerostipes"     "Coprococcus"      "Faecalibacterium" "Helicobacter"    
#> [5] "Dictyostelium"    "Epidinium"       
#> 
#> $`bsdb:83/1/2_Obesity:before-surgery_vs_after-surgery_DOWN`
#> [1] "Citrobacter"  "Enterobacter" "Salmonella"   "Veillonella"  "Neurospora"  
#> 
#> $`bsdb:817/1/2_Granulomatosis-with-Polyangiitis:Kidneys-with-calcification_vs_Healthy/Healthy-with-no-visible-granuloma_DOWN`
#> [1] "Anoxybacillus" "Dermacoccus"   "Micrococcus"   "Paracoccus"

1.3 Writing microbe signatures to file in GMT format

Once signatures have been extracted using a taxonomic identifier type of choice, the function writeGMT allows to write the signatures to plain text files in GMT format.

writeGMT(sigs, gmt.file = "bugsigdb_signatures.gmt")

This is the standard file format for gene sets used by MSigDB and GeneSigDB and is compatible with most enrichment analysis software.

1.4 Displaying BugSigDB signature and taxon pages

Leveraging BugSigDB’s semantic MediaWiki web interface, we can also programmatically access annotations for individual microbes and microbe signatures.

The browseSignature function can be used to display BugSigDB signature pages in an interactive session. For programmatic access in a non-interactive setting, the URL of the signature page is returned.

browseSignature(names(sigs)[1])
#> [1] "https://bugsigdb.org/Study_83/Experiment_1/Signature_1"

Analogously, the browseTaxon function displays BugSigDB taxon pages in an interactive session, or the URL of the corresponding taxon page otherwise.

browseTaxon(sigs[[1]][1])
#> [1] "https://bugsigdb.org/Special:RunQuery/Taxon?Taxon%5BNCBI%5D=40214&_run=1"

2 Ontology-based queries for experimental factors and body sites

The Semantic MediaWiki curation interface at bugsigdb.org enforces metadata annotation of signatures to follow established ontologies such as the Experimental Factor Ontology (EFO) for condition, and the Uber-Anatomy Ontology (UBERON) for body site.

The getOntology function can be used to import both ontologies into R. The result is an object of class ontology_index from the ontologyIndex package.

efo <- getOntology("efo")
#> Loading required namespace: ontologyIndex
#> Using cached version from 2025-12-29 02:42:52
efo
#> Ontology with 83520 terms
#> 
#> format-version: 1.2
#> data-version: http://www.ebi.ac.uk/efo/releases/v3.89.0/efo.owl
#> ontology: http://www.ebi.ac.uk/efo/efo.owl
#> 
#> Properties:
#>  id: character
#>  name: character
#>  parents: list
#>  children: list
#>  ancestors: list
#>  obsolete: logical
#>  equivalent_to: list
#> Roots:
#>  efo:EFO_0000001 - experimental factor
#>  efo:EFO_0000824 - relationship
#>  RO:0000053 - bearer_of
#>  RO:0000057 - has_participant
#>  RO:0000056 - participates_in
#>  RO:0002233 - has input
#>  RO:0002323 - mereotopologically related to
#>  RO:0002502 - depends on
#>  genomically_related_to - genomically_related_to
#>  located_in - located_in
#>  ... 66 more
uberon <- getOntology("uberon")
#> Using cached version from 2025-12-29 02:43:44
uberon
#> Ontology with 15037 terms
#> 
#> format-version: 1.2
#> data-version: uberon/releases/2026-04-01/uberon-basic.owl
#> ontology: uberon/uberon-basic
#> 
#> Properties:
#>  id: character
#>  name: character
#>  parents: list
#>  children: list
#>  ancestors: list
#>  obsolete: logical
#> Roots:
#>  UBERON:0001062 - anatomical entity
#>  UBERON:0035943 - life cycle temporal boundary
#>  develops_from - develops from
#>  UBERON:0000104 - life cycle
#>  action_notes - actions_notes
#>  ambiguous_for_taxon - ambiguous for taxon
#>  appendage_segment_number - appendage segment number
#>  axiom_lost_from_external_ontology - axiom_lost_from_external_ontology
#>  curator_notes - curator note
#>  dc-contributor - contributor
#>  ... 57 more

As demonstrated above, subsets of BugSigDB signatures can be obtained for signatures associated with certain experimental factors or specific body sites of interest. Higher-level queries can be performed with the subsetByOntology function, which implements subsetting by more general ontology terms. This facilitates grouping of signatures that semantically belong together.

More specifically, subsetting BugSigDB signatures by an EFO term then involves subsetting the Condition column to the term itself and all descendants of that term in the EFO ontology and that are present in the Condition column. Here, we demonstrate the usage by subsetting to signatures associated with cancer.

sdf <- subsetByOntology(bsdb,
                        column = "Condition",
                        term = "cancer",
                        ontology = efo)
dim(sdf)
#> [1] 259  51
table(sdf[,"Condition"])
#> 
#>                                            Bladder carcinoma 
#>                                                            2 
#>                                                Breast cancer 
#>                                                           33 
#>                                                       Cancer 
#>                                                            4 
#>                                              Cervical cancer 
#>                                                           22 
#> Cervical glandular intraepithelial neoplasia,Cervical cancer 
#>                                                            2 
#>                                      Digestive system cancer 
#>                                                            2 
#>                                           Endometrial cancer 
#>                                                           11 
#>                                            Esophageal cancer 
#>                                                           10 
#>                                               Gastric cancer 
#>                                                           76 
#>                                      Head and neck carcinoma 
#>                                                            7 
#>              Human papilloma virus infection,Cervical cancer 
#>                                                            2 
#>                                                  Lung cancer 
#>                                                           27 
#>                                        Oral cavity carcinoma 
#>                                                           12 
#>                                               Ovarian cancer 
#>                                                           45 
#>                                              Prostate cancer 
#>                                                            4

And analogously, subsetting by an UBERON term involves subsetting the Body site column to the term itself and all descendants of that term in the UBERON ontology and that are present in the Body site column. For example, we can use subsetByOntology to subset to signatures for which microbiome samples have been obtained from parts of the digestive system.

sdf <- subsetByOntology(bsdb,
                        column = "Body site",
                        term = "digestive system",
                        ontology = uberon)
dim(sdf)
#> [1] 1147   51
table(sdf[,"Body site"])
#> 
#>                            Actinopterygian pyloric caecum 
#>                                                         2 
#>                                            Bronchus,Mouth 
#>                                                         2 
#>                                             Buccal mucosa 
#>                                                        35 
#>                                                    Caecum 
#>                                                        80 
#>                                         Cardia of stomach 
#>                                                         2 
#>                                         Cavity of pharynx 
#>                                                         2 
#>                                              Cecum mucosa 
#>                                                        28 
#> Cecum mucosa,Colonic mucosa,Mucosa of rectum,Ileal mucosa 
#>                                                         5 
#>                                                     Colon 
#>                                                        52 
#>                                               Colon,Feces 
#>                                                         2 
#>                                            Colonic mucosa 
#>                                                         8 
#>                                         Colorectal mucosa 
#>                                                        18 
#>                                                Colorectum 
#>                                                        15 
#>                                             Dental plaque 
#>                                                        10 
#>                 Dental plaque,Internal cheek pouch,Saliva 
#>                                                         2 
#>                                           Digestive tract 
#>                                                         1 
#>                                           Duodenal mucosa 
#>                                                         6 
#>                                                  Duodenum 
#>                                                        13 
#>               Duodenum,Mucosa of pyloric antrum,Esophagus 
#>                                                         1 
#>                                  Epithelium of oropharynx 
#>                                                         2 
#>                                                 Esophagus 
#>                                                         2 
#>                                              Feces,Caecum 
#>                                                         8 
#>                           Feces,Mucosa of small intestine 
#>                                                         1 
#>                                         Feces,Oral cavity 
#>                                                         9 
#>                Feces,Stomach,Caecum,Small intestine,Colon 
#>                                                         2 
#>                                                   Gingiva 
#>                                                         5 
#>                                                   Hindgut 
#>                                                         4 
#>                                               Hypopharynx 
#>                                                         1 
#>                                                     Ileum 
#>                                                        13 
#>                                               Ileum,Feces 
#>                                                         2 
#>                                             Ileum,Jejunum 
#>                                                         2 
#>                                  Ileum,Right colon,Rectum 
#>                                                        10 
#>                                      Internal cheek pouch 
#>                                                         8 
#>                                         Intestinal mucosa 
#>                                                        39 
#>                                                 Intestine 
#>                                                        56 
#>                                                   Jejunum 
#>                                                        16 
#>                                   Lower lip,Buccal mucosa 
#>                                                         8 
#>                                         Lumen of duodenum 
#>                                                         2 
#>                                                    Midgut 
#>                                                         2 
#>                                              Midgut,Ovary 
#>                                                         2 
#>                             Midgut,Saliva-secreting gland 
#>                                                         2 
#>                       Midgut,Saliva-secreting gland,Ovary 
#>                                                         6 
#>                                                     Mouth 
#>                                                        94 
#>                                              Mouth mucosa 
#>                                                        13 
#>                                                Mouth,Nose 
#>                                                         2 
#>                                 Mucosa of ascending colon 
#>                                                         2 
#>                                 Mucosa of body of stomach 
#>                                                         7 
#>                                     Mucosa of oral region 
#>                                                         2 
#>                                      Mucosa of oropharynx 
#>                                                         4 
#>                                  Mucosa of pyloric antrum 
#>                                                         2 
#>               Mucosa of pyloric antrum,Duodenum,Esophagus 
#>                                                         2 
#>                                          Mucosa of rectum 
#>                                                         5 
#>                                   Mucosa of sigmoid colon 
#>                                                         2 
#>                                 Mucosa of small intestine 
#>                                                         2 
#>                                         Mucosa of stomach 
#>                                                         7 
#>                                      Nasopharyngeal gland 
#>                                                         1 
#>                                               Nasopharynx 
#>                                                        68 
#>                                          Nasopharynx,Lung 
#>                                                         3 
#>                                    Nasopharynx,Oropharynx 
#>                                                         8 
#>                                        Nasopharynx,Throat 
#>                                                        12 
#>                                               Oral cavity 
#>                                                        83 
#>                                     Oral cavity,Esophagus 
#>                                                         2 
#>                                         Oral cavity,Feces 
#>                                                         2 
#>                                              Oral opening 
#>                                                         4 
#>                                                Oropharynx 
#>                                                        29 
#>                                                   Pharynx 
#>                                                         4 
#>                              Posterior wall of oropharynx 
#>                                                         4 
#>                                              Rectal lumen 
#>                                                         2 
#>                                                    Rectum 
#>                                                        57 
#>                                               Right colon 
#>                                                         4 
#>                                                     Rumen 
#>                                                         9 
#>                                      Saliva,Buccal mucosa 
#>                                                         6 
#>                                      Saliva,Dental plaque 
#>                                                         4 
#>              Saliva,Gastric juice,Stomach,Feces,Esophagus 
#>                                                         3 
#>              Saliva,Stomach,Gastric juice,Feces,Esophagus 
#>                                                         3 
#>                        Saliva,Supragingival dental plaque 
#>                                                         4 
#>   Saliva,Supragingival dental plaque,Buccal mucosa,Tongue 
#>                                                         2 
#>                              Saliva-secreting gland,Ovary 
#>                                                         2 
#>                                             Sigmoid colon 
#>                                                         2 
#>                                           Small intestine 
#>                                                        15 
#>                                              Sputum,Mouth 
#>                                                         2 
#>                                                   Stomach 
#>                                                        46 
#>                                 Subgingival dental plaque 
#>                                                        79 
#>                               Supragingival dental plaque 
#>                                                        23 
#>                        Supragingival dental plaque,Saliva 
#>                                                         4 
#>                                                    Tongue 
#>                                                        27 
#>                                           Tonsillar fossa 
#>                                                         2 
#>                                   Wall of small intestine 
#>                                                         1

3 Session info

sessionInfo()
#> R version 4.6.0 RC (2026-04-17 r89917)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.4 LTS
#> 
#> Matrix products: default
#> BLAS:   /home/biocbuild/bbs-3.23-bioc/R/lib/libRblas.so 
#> LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.0  LAPACK version 3.12.0
#> 
#> locale:
#>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
#>  [3] LC_TIME=en_GB              LC_COLLATE=C              
#>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
#>  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
#>  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
#> 
#> time zone: America/New_York
#> tzcode source: system (glibc)
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] bugsigdbr_1.18.0 BiocStyle_2.40.0
#> 
#> loaded via a namespace (and not attached):
#>  [1] bit_4.6.0           jsonlite_2.0.0      dplyr_1.2.1        
#>  [4] compiler_4.6.0      BiocManager_1.30.27 filelock_1.0.3     
#>  [7] tidyselect_1.2.1    blob_1.3.0          jquerylib_0.1.4    
#> [10] yaml_2.3.12         fastmap_1.2.0       R6_2.6.1           
#> [13] generics_0.1.4      curl_7.1.0          httr2_1.2.2        
#> [16] knitr_1.51          ontologyIndex_2.12  tibble_3.3.1       
#> [19] bookdown_0.46       DBI_1.3.0           bslib_0.10.0       
#> [22] pillar_1.11.1       rlang_1.2.0         cachem_1.1.0       
#> [25] xfun_0.57           sass_0.4.10         bit64_4.8.0        
#> [28] otel_0.2.0          RSQLite_2.4.6       memoise_2.0.1      
#> [31] cli_3.6.6           withr_3.0.2         magrittr_2.0.5     
#> [34] digest_0.6.39       dbplyr_2.5.2        rappdirs_0.3.4     
#> [37] lifecycle_1.0.5     BiocFileCache_3.2.0 vctrs_0.7.3        
#> [40] evaluate_1.0.5      glue_1.8.1          purrr_1.2.2        
#> [43] rmarkdown_2.31      tools_4.6.0         pkgconfig_2.0.3    
#> [46] htmltools_0.5.9