MetaPathNet: network analysis of
the choline-TMA-TMAO host-microbiome axisMetaPathNet is an R package for pathway querying,
network construction, and network analysis based on the Kyoto
Encyclopedia of Genes and Genomes (KEGG) (Ogata
et al. 1999), with a focus on host–microbiome interactions
inferred from metagenomic and metabolomic data.
Several R and Bioconductor tools already support KEGG-based analysis.
For example, KEGGgraph parses KEGG pathway files into
graph-compatible objects (Zhang and Wiemann
2009), pathview maps omics data onto KEGG pathway
diagrams (Luo and Brouwer 2013), and
ggkegg supports pathway visualisation and customisation
(Sato et al. 2023). Together, these tools
extend the practical use of KEGG, yet the cross-species structure of the
database remains largely unexploited for connecting microbial and host
functions within a unified workflow that combines network construction,
visualisation, and analysis.
MetaPathNet addresses this gap by integrating
cross-species network construction, external and user-defined reaction
extension, topology-driven analysis, origin annotation, pathway
over-representation analysis, and R/Cytoscape visualisation within a
single case-adaptable framework.
In this vignette, KEGG and complementary database resources are used
through MetaPathNet to reconstruct a host–microbiome
metabolic network centered on the choline–TMA–TMAO metabolic axis (Wang et al. 2011), and to perform topology and
enrichment analyses to interpret this metabolic module.
Once available from Bioconductor, MetaPathNet can be
installed as follows:
This vignette addresses the following related questions in the context of the choline–TMA–TMAO axis:
The workflow therefore proceeds through identifier mapping, cross-species network construction, shortest-path analysis, origin annotation, permutation testing, and pathway over-representation analysis.
The package requires KEGG identifiers as common reference IDs for
metabolites, genes, enzymes, and organisms to support network
construction and analysis. To facilitate the process of network
construction, the MetaPathNet package includes the
MPN_keggFinder() function for retrieving KEGG identifiers
from metabolite names, gene symbols, and from species taxonomy IDs
(i.e., NCBI).
In this choline-related case study, the selected metabolites cover the main trimethylated nutrient and methylamine axis, including choline, carnitine, betaine, gamma-butyrobetaine, trimethylamine (TMA), and trimethylamine N-oxide (TMAO). The package supports flexible metabolite mapping through synonym matching and case-insensitive search.
## Selected compound names and synonyms
compound_names <- c("choline", "carnitine", "betaine",
"gamma-butyrobetaine", "trimethylamine", "tmao")
## Map compounds to KEGG compound IDs
compound_kegg <- MetaPathNet::MPN_keggFinder(
KEGG_database = "compound",
searchBy = "name",
query = compound_names
)
## View mapped compound IDs
compound_kegg## Input KEGG_ID
## 1 choline C00114
## 2 carnitine C00487
## 3 betaine C00719
## 4 gamma-butyrobetaine C01181
## 5 trimethylamine C00565
## 6 tmao C01104
MPN_suggestEntities() supports semi-automated candidate
selection in a case study workflow. Starting from the selected
metabolites, it retrieves associated genes (KOs) through linked reaction
information, providing a candidate KO list to guide the selection of
genes of interest.
## Define the mapped metabolite KEGG IDs
compound_tma <- compound_kegg$KEGG_ID
## Suggest candidate KOs from the selected metabolites
ko_candidates <- MPN_suggestEntities(
query = compound_tma,
entity = "compound"
)
## View suggested KO candidates
head(ko_candidates)## compound_id compound_name KO_ID
## 1 cpd:C00114 Choline K00866
## 2 cpd:C00114 Choline K14156
## 3 cpd:C00114 Choline K25657
## 4 cpd:C00114 Choline K17755
## 5 cpd:C00114 Choline K00623
## 6 cpd:C00114 Choline K00108
## KO_name
## 1 choline kinase [EC:2.7.1.32]
## 2 choline/ethanolamine kinase [EC:2.7.1.32 2.7.1.82]
## 3 choline kinase [EC:2.7.1.32]
## 4 choline oxidase [EC:1.1.3.17]
## 5 choline O-acetyltransferase [EC:2.3.1.6]
## 6 choline dehydrogenase [EC:1.1.99.1]
The selected genes represent key biological functions involved in the
choline-TMA-TMAO axis, including trimethylamine monooxygenase
(tmm / K18277), trimethylamine N-oxide reductase
(torA / K07811), host choline oxidation via
choline dehydrogenase (CHDH / K00108), and choline
kinase (CHK / K14156).
However, choline trimethylamine-lyase (cutC /
K20038) and host flavin-containing monooxygenases
(FMO / K00485) were not recovered from the
compound-based suggestion step, although they remain important for this
case study. MPN_suggestEntities() should therefore be used
as a guidance tool, while literature knowledge remains helpful for
broader biological selection.
The same function can also retrieve candidate organisms from a KO list. It reports prokaryotic organisms carrying the selected functions, counts how many query KOs are represented in each organism, and ranks them as a reference list for organism selection.
## Define KO candidates of interest
gene_tma <- c("K18277", "K07811", "K00108", "K14156", "K00485", "K20038")
## Suggest candidate organisms from the selected KOs
organism_candidates <- MPN_suggestEntities(
query = gene_tma,
entity = "ko"
)
## View suggested organism candidates
head(organism_candidates)## organism_name organism_code overlap_count
## 1 Escherichia coli O18:K1:H7 UTI89 eci 3
## 2 Escherichia coli O6:K15:H31 536 ecp 3
## 3 Escherichia coli O7:K1 IAI39 ect 3
## 4 Escherichia coli UM146 elu 3
## 5 Escherichia coli O7:K1 CE10 eoc 3
## 6 Homo sapiens hsa 3
## overlap_hits
## 1 K07811;K00108;K20038
## 2 K07811;K00108;K20038
## 3 K07811;K00108;K20038
## 4 K07811;K00108;K20038
## 5 K07811;K00108;K20038
## 6 K00108;K14156;K00485
Escherichia coli O18:K1:H7 UTI89 (KEGG organism code:
eci) was selected as a representative gut-associated
bacterial strain for this case study.
An edge list representing the cross-species metabolic network was
constructed from the metabolic pathway information of Homo
sapiens (hsa) and Escherichia coli O18:K1:H7
UTI89 (eci), to represent a simplified host-microbiome
metabolic context of the human gut in this case study.
## Construct the host-microbiome metabolic network
network_hostMicrobe <- MPN_crossSpeciesNetwork(
organism_codes = c("hsa", "eci"),
path_type = "metabolic"
)## source target interaction_type
## 1 "cpd:C00084" "K00128" "k_compound:reversible"
## 2 "cpd:C00084" "K00129" "k_compound:reversible"
## 3 "cpd:C00084" "K00149" "k_compound:reversible"
## 4 "cpd:C00084" "K14085" "k_compound:reversible"
## 5 "K00128" "cpd:C00033" "k_compound:reversible"
## 6 "K00129" "cpd:C00033" "k_compound:reversible"
The network can be visualised in Cytoscape (version 3.9.0 or higher; ensure it is running before execution). Genes and compounds are automatically categorised and colour-coded.
## Visualise the integrated network in Cytoscape
MPN_viewNetworkCy(
network_table = network_hostMicrobe,
category = TRUE,
style_interaction = TRUE,
node_compound = "#9DC7DD",
node_gene = "#9ED17B",
network_title = "Integrated host–microbiome network",
collection_title = "MetaPathNet_Examples"
)Figure 1. Integrated host–microbiome metabolic network.
The integrated network is larger than the selected input list because it also includes intermediate biological entities needed to connect nodes and preserve pathway context.
Because of this larger network size, it is not always straightforward
to verify the presence of the selected metabolites and genes by visual
inspection alone. Their presence was therefore checked explicitly using
MPN_findMappedNodes().
## Check mapped compounds in the integrated network
compound_mapped <- MetaPathNet::MPN_findMappedNodes(
nodes = compound_tma,
network_table = network_hostMicrobe
)
## Check mapped KOs in the integrated network
gene_mapped <- MetaPathNet::MPN_findMappedNodes(
nodes = gene_tma,
network_table = network_hostMicrobe
)In the output, mapped_nodes indicates nodes present in
the network, whereas unmapped_nodes indicates nodes not
found in the network at this stage.
## $mapped_nodes
## [1] "cpd:C00114" "cpd:C00487" "cpd:C00719" "cpd:C01181" "cpd:C00565"
## [6] "cpd:C01104"
##
## $unmapped_nodes
## character(0)
## $mapped_nodes
## [1] "K07811" "K00108" "K14156" "K00485"
##
## $unmapped_nodes
## [1] "K18277" "K20038"
Some selected genes were not recovered in the initial network because relevant interactions are not captured in the selected organism set or are not explicitly recorded in KEGG.
FMO3 is a human enzyme involved in the oxidation of TMA to
TMAO and is represented in KEGG by the orthologous group FMO
(K00485). However, this function is not explicitly linked
in KEGG for this case study. To preserve this biologically relevant
step, MPN_customReaction() was used to add a manually
curated reaction in edge-list format.
## Define a custom FMO-associated TMA-to-TMAO reaction
fmo_reaction <- data.frame(
reaction_id = "TMA_to_TMAO_FMO",
substrates = "cpd:C00565",
products = "cpd:C01104",
ko = "K00485",
direction = "irreversible",
stringsAsFactors = FALSE
)
## Convert to edge-list format
fmo_extension <- MetaPathNet::MPN_customReaction(
reaction_table = fmo_reaction,
substrate_col = "substrates",
product_col = "products",
ko_col = "ko",
direction_col = "direction"
)MPN_mapReaction() can map external reaction identifiers
from commonly used databases such as MetaCyc (Caspi et al. 2018), Rhea (Bansal et al. 2022) into MetaPathNet-style
edges, using KEGG identifiers as a common reference ID where
available.
MetaCyc reactions, RXN-12900 and RXN-13946,
were added as complementary information for the choline-TMA-TMAO
axis.
## Map MetaCyc reactions to edge-list format
tma_extension <- MPN_mapReaction(
reaction_ids = c("RXN-12900", "RXN-13946"),
source = "metacyc"
)
## Preview the mapped reaction edges
head(tma_extension)## source target interaction_type
## [1,] "cpd:C00565" "K18277" "k_compound:reversible"
## [2,] "K18277" "cpd:C00565" "k_compound:reversible"
## [3,] "cpd:C00005" "K18277" "k_compound:reversible"
## [4,] "K18277" "cpd:C00005" "k_compound:reversible"
## [5,] "cpd:C00080" "K18277" "k_compound:reversible"
## [6,] "K18277" "cpd:C00080" "k_compound:reversible"
The MetaCyc-derived reactions and the manually curated FMO reaction
were then merged into the initial cross-species network,
network_hostMicrobe. The selected metabolites and KOs were
subsequently rechecked in the extended network.
## Merge the reaction extension into the cross-species network
network_mixed <- MetaPathNet::MPN_mergeNetworks(
network_hostMicrobe, ## Initial host–microbiome network
tma_extension, ## MetaCyc reaction extension
fmo_extension ## Manually curated FMO reaction
)
## Extract mapped compounds in the combined network
compound_tma <- MetaPathNet::MPN_findMappedNodes(
nodes = compound_tma,
network_table = network_mixed
)$mapped_nodes
## Extract mapped KOs in the combined network
gene_tma <- MetaPathNet::MPN_findMappedNodes(
nodes = gene_tma,
network_table = network_mixed
)$mapped_nodesThe extended cross-species network still contains many background edges. Network-based topology analysis was therefore used to focus on the metabolic axis of interest.
In this step, the selected KO and metabolite nodes related to the choline–TMA–TMAO axis were used as source and target nodes, respectively. These biological entities served as the starting and ending points for shortest-path extraction, allowing the construction of a more focused subnetwork centered on the choline–TMA–TMAO axis.
The choice of source and target nodes can vary depending on the biological question being addressed. In other case studies, this direction may be reversed if the aim is to investigate how metabolites act as upstream regulators of gene-associated functions.
The mode argument defines how paths are searched in the
network: out follows edge direction from source to target,
whereas all ignores direction and treats the network as
undirected. In this case study, mode = "all" was used
because the metabolites of interest can appear either as substrates or
as products. This setting therefore makes it possible to recover
connections on both sides of a reaction and to better illustrate the
full set of possible links between metabolites and KOs.
It is also common for a given node pair to be connected by more than
one shortest path. Setting betweenness = TRUE retains one
shortest path among ties by ranking candidate shortest paths according
to the betweenness of their intermediate nodes. In practice, this
favours paths that pass through more topologically central bridging
nodes.
## Compute the shortest-path distance matrix between selected KOs and compounds
distance_tma <- MetaPathNet::MPN_distances(
network_table = network_mixed,
source_nodes = gene_tma,
target_nodes = compound_tma,
mode = "all",
name = TRUE
)
## View distances from selected genes to selected metabolites
distance_tma[1:3, , drop = FALSE]## Choline Carnitine
## trimethylamine monooxygenase [EC:1.14.13.148] 3 7
## trimethylamine-N-oxide reductase (cytochrome c) [EC:1.7.2.3] 3 7
## choline dehydrogenase [EC:1.1.99.1] 1 5
## Betaine
## trimethylamine monooxygenase [EC:1.14.13.148] 5
## trimethylamine-N-oxide reductase (cytochrome c) [EC:1.7.2.3] 5
## choline dehydrogenase [EC:1.1.99.1] 3
## 4-Trimethylammoniobutanoate
## trimethylamine monooxygenase [EC:1.14.13.148] 5
## trimethylamine-N-oxide reductase (cytochrome c) [EC:1.7.2.3] 5
## choline dehydrogenase [EC:1.1.99.1] 3
## Trimethylamine
## trimethylamine monooxygenase [EC:1.14.13.148] 1
## trimethylamine-N-oxide reductase (cytochrome c) [EC:1.7.2.3] 1
## choline dehydrogenase [EC:1.1.99.1] 3
## Trimethylamine N-oxide
## trimethylamine monooxygenase [EC:1.14.13.148] 1
## trimethylamine-N-oxide reductase (cytochrome c) [EC:1.7.2.3] 1
## choline dehydrogenase [EC:1.1.99.1] 5
## Extract the shortest-path subnetwork as a MetaPathNet-style edge list
network_shortestPath <- MetaPathNet::MPN_shortestPaths(
network_table = network_mixed,
source_nodes = gene_tma,
target_nodes = compound_tma,
mode = "all",
output = "network_matrix",
name = FALSE,
distance_threshold = 12, # exclude overly long paths
betweenness = TRUE
)The network can also be visualised directly in the R environment and is best suited to relatively small networks. Node colours can be customised in both R and Cytoscape. For larger networks, Cytoscape is generally recommended, as it provides better interactivity and more extensive visual customisation.
network_tma_R <- MetaPathNet::MPN_viewNetworkR(
network_table = network_shortestPath,
category = TRUE, ## Automatically categorise and colour-code genes and compounds
name = FALSE,
node_size = 4, ## Custom node size
node_compound = "#9DC7DD",
node_gene = "#9ED17B",
network_title = "TMA/TMAO shortest-path subnetwork"
)
print(network_tma_R)Figure 2. R-based visualization of the choline–TMA–TMAO shortest-path subnetwork.
The shortest-path subnetwork is more directly centered on the
choline-TMA-TMAO axis. Using MPN_annotateOrigin(), KO nodes
were annotated by inferred origin as human-associated,
microbial-associated, or shared, allowing direct interpretation of the
biological components involved in this module. Cytoscape also provides
more flexible customisation of node colours and edge types.
## Visualise the origin-annotated shortest-path network in Cytoscape
MetaPathNet::MPN_annotateOrigin(
network_table = network_shortestPath,
name = TRUE,
export_cytoscape = TRUE,
network_title = "Origin-annotated shortest-path network",
collection_title = "MetaPathNet_Examples"
)Figure 3. Origin-annotated visualization of the choline–TMA–TMAO shortest-path subnetwork.
The same subnetwork can also be represented as a node-level annotation table, including node name, type, and inferred origin.
## Annotate node origin in the shortest-path subnetwork
origin_shortestPath <- MetaPathNet::MPN_annotateOrigin(
network_table = network_shortestPath,
bacteria_codes = "eci",
name = TRUE,
export_cytoscape = FALSE
)
## View the node-level origin table
head(origin_shortestPath)## id type name origin
## 1 K00108 KO betA hsa&bacteria
## 2 cpd:C00576 Compound Betaine aldehyde compound
## 3 K14085 KO ALDH7A1 hsa
## 4 cpd:C00114 Compound Choline compound
## 5 K20038 KO cutC bacteria
## 6 cpd:C00565 Compound Trimethylamine compound
Permutation testing was used to compare the observed mean shortest-path length with the mean shortest-path length obtained from random node sets of the same size under the null distribution, testing whether the observed gene-metabolite connections are closer in the network than expected by chance.
In this case study, KO nodes were defined as source nodes and the
selected metabolites as target nodes, so that the permutation framework
could be applied to the extended cross-species network in a consistent
source-to-target setting. In this analysis, mode = "out"
was used to preserve the recorded edge direction and maintain this
directional interpretation of the network.
## Permutation test: KO set -> TMA-axis-related metabolites
perm_host_tma <- MetaPathNet::MPN_permutePaths(
network_table = network_mixed,
source_nodes = gene_tma,
target_nodes = compound_tma,
n_perm = 1000,
mode = "out",
plot = TRUE,
return_perm = TRUE
)Figure 4. Null-model permutation test of gene–metabolite proximity in the reconstructed network.
The p-value indicates whether the selected genes and metabolites tend to lie closer to each other in the network than would be expected for unrelated molecules.
Over-representation analysis (ORA) is a common pathway analysis (PA)
approach based on existing biochemical knowledge.
MPN_enrichPathway() implements this method and tests
whether selected nodes (test set) are over-represented in KEGG pathways
compared with all nodes in the network (background set). The
entity argument specifies whether the analysis is performed
at the KO level ("ko"), the compound level
("compound"), or using both KO and compound information
("integrated").
In this case study, species-specific pathways were first retrieved
with MPN_getPathIDs(), and the metabolic pathways shared by
host and microbe were then used as the pathway set for enrichment
analysis.
## Retrieve KEGG pathways for human and E. coli
paths <- MPN_getPathIDs(c("hsa", "eci"))
## Keep shared metabolic pathway IDs only
pathway_hostMicrobe <- names(
which(table(sub("^[a-zA-Z]+", "map", paths$Path_id[paths$Path_type == "metabolic"])) == 2)
)
## View shared metabolic pathway IDs
head(pathway_hostMicrobe)## [1] "map00010" "map00020" "map00030" "map00040" "map00051" "map00052"
The choline-TMA-TMAO-focused shortest-path subnetwork
(network_shortestPath) was used as the test set, and the
full cross-species network (network_mixed) as the
background set. This analysis was used to identify the pathways most
strongly represented in the extracted TMA/TMAO-related module.
## Integrated pathway enrichment on the shortest-path subnetwork
enrich_tma <- MPN_enrichPathway(
test_set = network_shortestPath, # accepts a MetaPathNet-style edge list or a node vector
background_set = network_mixed,
pathway_set = pathway_hostMicrobe,
entity = "integrated",
pvalueCutoff = 0.05,
add_hits = TRUE
)A dot plot was used to display the ten metabolic pathways with the most significant adjusted p-values.
## Prepare enrichment results for plotting
plot_df <- enrich_tma[, c("Description", "p_adj", "significance")]
plot_df$p_adj <- as.numeric(plot_df$p_adj)
plot_df$p_adj_safe <- pmax(plot_df$p_adj, .Machine$double.xmin, na.rm = FALSE)
## Keep the top 10 pathways ranked by adjusted p value
plot_df <- plot_df[order(plot_df$p_adj_safe), ]
plot_df <- head(plot_df, 10)
plot_df$Description <- factor(plot_df$Description, levels = rev(plot_df$Description))
## Plot pathway enrichment
ggplot(plot_df, aes(x = -log10(p_adj_safe), y = Description, color = significance)) +
geom_point(size = 4, alpha = 0.9, na.rm = TRUE) +
scale_color_manual(values = c("significant" = "#C45745", "NS" = "#D1C2C2")) +
labs(
x = expression(-log[10]~adjusted~p~value),
y = NULL,
title = "Integrated Pathway Enrichment"
) +
theme_minimal(base_size = 14) +
theme(
axis.text.y = element_text(size = 14),
axis.text.x = element_text(size = 14),
plot.title = element_text(face = "bold", size = 15, hjust = 0.02),
legend.title = element_text(face = "bold")
)Figure 5. Integrated pathway enrichment of the choline–TMA–TMAO shortest-path subnetwork, showing the top 10 pathways ranked by adjusted p-value.
A significant p-value indicates that the pathway is more strongly represented in the extracted choline-TMA-TMAO module than expected by chance, suggesting that it is biologically closely related to this metabolic axis.
MetaPathNet can be used to integrate multi-omics data into a network-based framework for the study of host–microbiome metabolism. By combining network construction with topology analysis, it helps reveal connections between host and microbial functions and supports the interpretation of metabolic interaction in a systems biology context.
The pathway coverage of the reconstructed network depends on the selected organism panel. In this vignette, the workflow focuses on the human and one representative gut bacterial strain, whereas the inclusion of additional gut microbial species could provide a more complete representation of gut metabolic capacity. Network extension with information from other databases or with custom reactions can further adapt the analysis to the biological question of interest.
## R version 4.6.0 (2026-04-24)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.4 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so; LAPACK version 3.12.0
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
## [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: Etc/UTC
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] ggplot2_4.0.3 MetaPathNet_0.99.1 BiocStyle_2.41.0
##
## loaded via a namespace (and not attached):
## [1] RColorBrewer_1.1-3 sys_3.4.3
## [3] rstudioapi_0.18.0 jsonlite_2.0.0
## [5] magrittr_2.0.5 GenomicFeatures_1.65.0
## [7] farver_2.1.2 rmarkdown_2.31
## [9] fs_2.1.0 BiocIO_1.23.3
## [11] vctrs_0.7.3 memoise_2.0.1
## [13] Rsamtools_2.29.0 RCurl_1.98-1.19
## [15] base64enc_0.1-6 progress_1.2.3
## [17] htmltools_0.5.9 S4Arrays_1.13.0
## [19] BiocBaseUtils_1.15.1 curl_7.1.0
## [21] SparseArray_1.13.2 Formula_1.2-5
## [23] sass_0.4.10 KernSmooth_2.23-26
## [25] bslib_0.11.0 htmlwidgets_1.6.4
## [27] plyr_1.8.9 gsubfn_0.7
## [29] httr2_1.2.2 cachem_1.1.0
## [31] uuid_1.2-2 buildtools_1.0.0
## [33] GenomicAlignments_1.49.0 igraph_2.3.2
## [35] lifecycle_1.0.5 pkgconfig_2.0.3
## [37] Matrix_1.7-5 R6_2.6.1
## [39] fastmap_1.2.0 MatrixGenerics_1.25.0
## [41] digest_0.6.39 colorspace_2.1-2
## [43] AnnotationDbi_1.75.0 S4Vectors_0.51.3
## [45] chron_2.3-62 Hmisc_5.2-5
## [47] GenomicRanges_1.65.0 RSQLite_3.53.1
## [49] base64url_1.4 labeling_0.4.3
## [51] filelock_1.0.3 RJSONIO_2.0.5
## [53] httr_1.4.8 polyclip_1.10-7
## [55] abind_1.4-8 compiler_4.6.0
## [57] bit64_4.8.2 withr_3.0.2
## [59] htmlTable_2.5.0 S7_0.2.2
## [61] backports_1.5.1 BiocParallel_1.47.0
## [63] viridis_0.6.5 RCy3_2.33.0
## [65] DBI_1.3.0 ggforce_0.5.0
## [67] gplots_3.3.0 biomaRt_2.69.0
## [69] MASS_7.3-65 rappdirs_0.3.4
## [71] DelayedArray_0.39.3 rjson_0.2.23
## [73] gtools_3.9.5 caTools_1.18.3
## [75] tools_4.6.0 foreign_0.8-91
## [77] otel_0.2.0 mygene_1.49.0
## [79] nnet_7.3-20 webchem_1.3.1
## [81] glue_1.8.1 restfulr_0.0.16
## [83] grid_4.6.0 pbdZMQ_0.3-14
## [85] checkmate_2.3.4 cluster_2.1.8.2
## [87] generics_0.1.4 gtable_0.3.6
## [89] tidyr_1.3.2 hms_1.1.4
## [91] data.table_1.18.4 xml2_1.5.2
## [93] tidygraph_1.3.1 XVector_0.53.0
## [95] BiocGenerics_0.59.7 ggrepel_0.9.8
## [97] pillar_1.11.1 stringr_1.6.0
## [99] IRdisplay_1.1 dplyr_1.2.1
## [101] tweenr_2.0.3 BiocFileCache_3.3.0
## [103] lattice_0.22-9 rtracklayer_1.73.0
## [105] bit_4.6.0 tidyselect_1.2.1
## [107] maketools_1.3.2 Biostrings_2.81.3
## [109] knitr_1.51 gridExtra_2.3
## [111] IRanges_2.47.2 Seqinfo_1.3.0
## [113] sqldf_0.4-12 SummarizedExperiment_1.43.0
## [115] stats4_4.6.0 xfun_0.58
## [117] graphlayouts_1.2.3 Biobase_2.73.1
## [119] matrixStats_1.5.0 proto_1.0.0
## [121] UCSC.utils_1.9.0 stringi_1.8.7
## [123] yaml_2.3.12 cigarillo_1.3.0
## [125] evaluate_1.0.5 codetools_0.2-20
## [127] data.tree_1.2.0 ggraph_2.2.2
## [129] tibble_3.3.1 BiocManager_1.30.27
## [131] graph_1.91.0 cli_3.6.6
## [133] IRkernel_1.3.2 rpart_4.1.27
## [135] repr_1.1.7 jquerylib_0.1.4
## [137] GenomeInfoDb_1.49.1 Rcpp_1.1.1-1.1
## [139] dbplyr_2.5.2 png_0.1-9
## [141] XML_3.99-0.23 parallel_4.6.0
## [143] blob_1.3.0 prettyunits_1.2.0
## [145] bitops_1.0-9 txdbmaker_1.9.0
## [147] viridisLite_0.4.3 scales_1.4.0
## [149] purrr_1.2.2 crayon_1.5.3
## [151] rlang_1.2.0 rvest_1.0.5
## [153] KEGGREST_1.53.0