Mangal – a global ecological interactions database – serializes ecological interaction matrices into nodes (e.g. taxon, individuals or population) and interactions (i.e. edges). For each network, Mangal offers the opportunity to store study context such as the location, sampling environment, inventory date and informations pertaining to the original publication. For every nodes involved in the ecological networks, Mangal references unique taxonomic identifiers such as Encyclopedia of Life (EOL), Catalogue of Life (COL), Global Biodiversity Information Facility (GBIF) etc. and can extend nodes informations to individual traits.
rmangal is an R client to the Mangal database and
provides various functions to explore his content through search
functions. It offers methods to retrieve networks structured as
mgNetwork
or mgNetworksCollection
S3 objects
and methods to convert mgNetwork
to other class objects in
order to analyze and visualize networks properties: igraph
, tidygraph
,
and ggraph
.
So far, only the development version is available and can be installed via the remotes :package:
> remotes::install_github("ropensci/rmangal")
R> library("rmangal") R
rmangal
There are seven
search_*()
functions to explore the content of Mangal,
for instance search_datasets()
:
> mgs <- search_datasets("lagoon")
R2 datasets Found
Once this first step achieved, networks found can be retrieved with
the get_collection()
function.
> mgn <- get_collection(mgs) R
get_collection()
returns an object
mgNetwork
if there is one network returned, otherwise an
object mgNetworkCollection
, which is a list of
mgNetwork
objects.
> class(mgn)
R1] "mgNetworksCollection"
[> mgn
R3 networks
A collection of
* Network # from data set #
* Description: Dietary matrix of the Huizache–Caimanero lagoon
* Includes 189 edges and 26 nodes
* Current taxonomic IDs coverage for nodes of this network:
--> ITIS: 81%, BOLD: 81%, EOL: 85%, COL: 81%, GBIF: 0%, NCBI: 85%
* Published in ref # DOI:10.1016/s0272-7714(02)00410-9
* Network # from data set #
* Description: Food web of the Brackish lagoon
* Includes 27 edges and 11 nodes
* Current taxonomic IDs coverage for nodes of this network:
--> ITIS: 45%, BOLD: 45%, EOL: 45%, COL: 45%, GBIF: 18%, NCBI: 45%
* Published in ref # DOI:NA
* Network # from data set #
* Description: Food web of the Costal lagoon
* Includes 34 edges and 13 nodes
* Current taxonomic IDs coverage for nodes of this network:
--> ITIS: 54%, BOLD: 54%, EOL: 54%, COL: 54%, GBIF: 15%, NCBI: 54%
* Published in ref # DOI:NA
igraph
and tidygraph
offer powerful features to analyze networks and rmangal
provides functions to convert mgNetwork
to
igraph
and tbl_graph
so that the user can
easily benefit from those packages.
> ig <- as.igraph(mgn[[1]])
R> class(ig)
R1] "igraph"
[> library(tidygraph)
R> tg <- as_tbl_graph(mgn[[1]])
R> class(tg)
R1] "tbl_graph" "igraph" [
:book: Note that the vignette “Get started with rmangal” will guide the reader through several examples and provide further details about rmangal features.
We are working on that part. The networks publication process will be facilitated with structured objects and tests suite to maintain data integrity and quality.Comments and suggestions are welcome, feel free to open issues.
rmangal
vs
rglobi
Those interested only in pairwise interactions among taxons may
consider using rglobi
, an R package that provides an
interface to the GloBi
infrastructure. GloBi provides open access to aggregated
interactions from heterogeneous sources. In contrast, Mangal gives
access to the original networks and open the gate to study ecological
networks properties (i.e. connectance, degree etc.) along large
environmental gradients, which wasn’t possible using the GloBi
infrastructure.
We are grateful to Noam Ross for acting as an editor during the review process. We also thank Anna Willoughby and Thomas Lin Petersen for reviewing the package. Their comments strongly contributed to improve the quality of rmangal.
Please note that the rmangal
project is released with a
Contributor Code
of Conduct. By contributing to this project, you agree to abide by
its terms.
rmangal
in R doing
citation(package = 'rmangal')