Integrating relational knowledge with ariadne

Giulio Benedetti @RiboRings

2026-05-13

!!! Coming soon !!!

Very cool sticker

4Frontiers of microbiome data science

The MinotauR in the room

Multi-modal INtegration Operations, Tools and AUxilaries in R

package description
🗃️ MultiFactor S7 classes for relational data
🧶 ariadne Import and wrangle relational data
🕷️ anansi Analysis of feature-pair interactions
🦉 pallas Compose and send SPARQL queries
argonaut Tools for stratified analysis

Databases are …

Databases are a wealth of knowledge!

Genome

  • genes & genomes

  • orthologues (KOs)

  • pathways

Proteome

  • unique proteins

  • protein clusters

  • redundant prots

Reactome:

  • reactions

  • enzymes (EC)

  • compounds

Time for a poll!

  1. What databases do you use in your research?

  2. Have you had any challenges using databases?

but they aren’t always easy to use

Loading…

Same data, different formats

Large data volumes

How it works

Databases are …

Databases are networks!

Connecting the dots

“The sum of the parts is greater than the whole”

Taking a walk

across the ariadne graph

Output

Links between origin and target

Other nice features

  • Add user-defined resources
# # So much relational data in the wild!
graph <- addResource(graph, res.url, "MyDatabase")
  • Work with Bioconductor classes
# Add modules membership info to SummarizedExperiment
se <- addModules(se, ariadne.out, as = "names")
  • Perform module-wise operations
# Calculate functional phylogenetic alpha diversity
se <- applyByModule(se, "rows", mod.names, getAlpha, index = "faith")

# Agglomerate assay based on module membership
se <- agglomerateByModule(se, mod.names, as = "names")

Use cases

Use ariadne to retrieve and combine relational information from multiple databases, and integrate it with your data.

In practice:

  • Functional annotation (ChocoPhlAn, WoL)

  • Module-wise analysis (alpha, beta, DE)

  • Gene/Microbe-set enrichment analysis (MSigDB, BugSigDB)

  • Pathway enrichment analysis (KEGG, Rhea, MetaCyc)

Next steps

  • Prepping submission to Bioconductor (forging nice logo)

  • Spreading the word (manuscript, EuroBioC poster & talk)

  • Adding features (use cases, app/website, Python extension)

Wanna join the adventure?

Acknowledgements

  • the Turku Data Science Group

  • Co-developer: Thomaz Bastiaanssen

  • Testers: Vilhelm Suksi and Eugenia Natasha

Resources

Code

# Import resource graph
graph <- ariadne()

# Plot resource graph
plotPath(graph, res.name = c("KEGG", "UniProt", "Rhea"))

# Plot path
plotPath(graph, taxid ~ chebi, k = 19, focus = TRUE)

# Search for alternative pathways
searchPath(graph, taxid ~ chebi, k = 30)

# Get pathway description for reproducibility
drawPath(graph, taxid ~ chebi, k = 19)

# Link taxa to compounds
tax2chebi <- weavePath(graph, taxid ~ chebi, k = 19, init = c(some_taxid))