cross_layer_groups: Identify Cross-Layer Modules in Plant Trait Multilayer...

View source: R/cross_layer_groups.R

cross_layer_groupsR Documentation

Identify Cross-Layer Modules in Plant Trait Multilayer Networks

Description

This function identifies network modules that span multiple functional layers in Plant Trait Multilayer Networks (PTMNs). Cross-layer modules represent coordinated trait groups that integrate multiple plant organs or functional systems, which are crucial for understanding multidimensional plant adaptations and phenotypic integration.

Usage

cross_layer_groups(data)

Arguments

data

A data frame containing the PTMN edge information with columns: node.from, node.to, layer.from, and layer.to. This is typically the output from the PTMN function.

Details

The function uses the Girvan-Newman community detection algorithm to identify network modules, then filters to retain only those modules that contain nodes from multiple functional layers. Cross-layer modules are particularly important in plant ecology as they represent coordinated trait groups that facilitate integrated responses across different organs and functional systems.

In the context of plant invasion ecology, species with more cross-layer modules may exhibit enhanced phenotypic integration and coordination, potentially contributing to invasion success.

Value

A named list where each element represents a cross-layer module. Each list element contains the node names (trait names) that belong to that cross-layer module. Only modules spanning multiple layers are returned. Returns an empty list if no cross-layer modules are detected.

See Also

PTMN for constructing plant trait multilayer networks

Examples

## Not run: 
data(forest_invader_tree)
data(forest_invader_traits)
traits <- forest_invader_traits[, 6:73]
layers <- list(
  shoot_dynamics = c("LeafDuration", "LeafFall50", "LeafRate_max",
                     "Chl_shade50", "LAgain", "FallDuration",
                     "LeafOut", "Chl_sun50", "EmergeDuration",
                     "LeafTurnover"),
  leaf_structure = c("PA_leaf", "Mass_leaf", "Lifespan_leaf",
                     "Thick_leaf", "SLA", "Lobe", "LDMC",
                     "Stomate_size", "Stomate_index"),
  leaf_metabolism = c("J_max", "Vc_max", "Asat_area", "CC_mass",
                      "LSP", "AQY", "CC_area", "Rd_area",
                      "Asat_mass", "WUE", "Rd_mass", "PNUE"),
  leaf_chemistry = c("N_area", "Chl_area", "DNA", "Phenolics",
                     "Cellulose", "N_mass", "N_litter", "Chl_ab",
                     "Chl_mass", "N_res", "C_litter", "C_area",
                     "C_mass", "Ash", "Lignin", "Solubles",
                     "Decomp_leaf", "Hemi"),
  root = c("NPP_root", "SS_root", "SRL", "RTD", "RDMC",
           "NSC_root", "Decomp_root", "Starch_root",
           "C_root", "N_root", "Lignin_root"),
  stem = c("Latewood_diam", "Metaxylem_diam", "Earlywood_diam",
           "NSC_stem", "Vessel_freq", "SS_stem", "Cond_stem",
           "Starch_stem")
)
graph <- PTMN(traits, layers_list = layers, method = "pearson")
cross_layer_groups(graph)

## End(Not run)


MultiTraits documentation built on March 22, 2026, 9:06 a.m.