Community structure detection in weighted bipartite networks via modularity optimization
Source:R/netclu_beckett.R
netclu_beckett.RdThis function takes a bipartite weighted graph and computes modules by applying Newman’s modularity measure in a bipartite weighted version.
Usage
netclu_beckett(
net,
weight = TRUE,
cut_weight = 0,
index = names(net)[3],
seed = NULL,
forceLPA = FALSE,
site_col = 1,
species_col = 2,
return_node_type = "both",
algorithm_in_output = TRUE
)Arguments
- net
A
data.framerepresenting a bipartite network with the first two columns representing undirected links between pairs of nodes, and the next column(s) representing the weights of the links.- weight
A
booleanindicating whether weights should be considered if there are more than two columns (see Note).- cut_weight
A minimal weight value. If
weightis TRUE, links with weights strictly lower than this value will not be considered (0by default).- index
The name or number of the column to use as weight. By default, the third column name of
netis used.- seed
The seed for the random number generator (
NULLfor random by default).- forceLPA
A
booleanindicating whether the even faster pure LPA-algorithm of Beckett should be used. DIRT-LPA (the default) is less likely to get trapped in a local minimum but is slightly slower. Defaults toFALSE.- site_col
The name or number of the column for site nodes (i.e., primary nodes).
- species_col
The name or number of the column for species nodes (i.e., feature nodes).
- return_node_type
A
characterindicating which types of nodes ("site","species", or"both") should be returned in the output ("both"by default).- algorithm_in_output
A
booleanindicating whether the original output of computeModules should be returned in the output (TRUEby default, see Value).
Value
A list of class bioregion.clusters with five slots:
name: A
charactercontaining the name of the algorithm.args: A
listof input arguments as provided by the user.inputs: A
listof characteristics of the clustering process.algorithm: A
listof all objects associated with the clustering procedure, such as original cluster objects (only ifalgorithm_in_output = TRUE).clusters: A
data.framecontaining the clustering results.
If algorithm_in_output = TRUE, users can find the output of
computeModules in the algorithm slot.
Details
This function is based on the modularity optimization algorithm provided by Stephen Beckett (Beckett, 2016) as implemented in the bipartite package (computeModules).
Note
Beckett's algorithm is designed to handle weighted bipartite networks. If
weight = FALSE, a weight of 1 will be assigned to each pair of nodes.
Ensure that the site_col and species_col arguments correctly identify
the respective columns for site nodes (primary nodes) and species nodes
(feature nodes). The type of nodes returned in the output can be selected
using the return_node_type argument: "both" to include both node types,
"site" to return only site nodes, or "species" to return only species
nodes.
References
Beckett SJ (2016) Improved community detection in weighted bipartite networks. Royal Society Open Science 3, 140536.
See also
For more details illustrated with a practical example, see the vignette: https://biorgeo.github.io/bioregion/articles/a4_3_network_clustering.html.
Associated functions: netclu_infomap netclu_louvain netclu_oslom
Author
Maxime Lenormand (maxime.lenormand@inrae.fr)
Pierre Denelle (pierre.denelle@gmail.com)
Boris Leroy (leroy.boris@gmail.com)