Counts the subgraph classes (motifs) of size 3 or 4 in a network and tests their frequencies against random networks from a null model. Edge weights are ignored, and self-loops and multiple edges are removed before counting.
Usage
motif_census(
x,
size = 3,
n_random = 100,
method = c("configuration", "gnm"),
directed = NULL,
seed = NULL
)Arguments
- x
A matrix, igraph object, or cograph_network.
- size
Motif size: 3 (triads) or 4 (tetrads). Default 3.
- n_random
Number of random networks for the null model. Must be a whole number of at least 2. Default 100.
- method
Null model method.
"configuration"(default) rewires the graph with degree-preserving edge swaps."gnm"draws random graphs with the same numbers of nodes and edges.- directed
Logical or NULL. Whether the network is treated as directed. NULL (default) treats a matrix as directed when it is not symmetric and takes the directedness of an igraph or cograph_network input. A value that conflicts with an igraph or cograph_network input raises an error.
- seed
Random seed for reproducibility. Default NULL. When supplied, the caller's RNG state is saved and restored.
Value
A cograph_motifs data frame with one row per motif class and
columns:
- motif
Motif class name. Directed triads use the 16 MAN codes, undirected triads the classes
empty,edge,wedgeandtriangle, and size 4 the igraph isomorphism class labelsM1toM218(directed) orM1toM11(undirected).- count
Observed number of that motif in the network.
- null_mean, null_sd
Mean and standard deviation of the count across the
n_randomnull graphs.- z_score
(count - null_mean) / null_sd. Whennull_sd = 0, it is 0 if the count equals the null mean andNAotherwise.- p_value
Two-sided empirical permutation p-value with add-one correction, based on the absolute deviation from the null mean.
- significant
Logical,
p_value < 0.05.
The motif size ("size"), directed flag ("directed"),
null-model method ("method"), and number of random networks
("n_random") are stored as attributes.
Details
Printing the result shows the motif table with the null-model
settings and the number of over- and under-represented motifs. The result
is a data frame and serves as the tidy table directly. plot() on the
result is documented in plot-results.
See also
motifs() for the unified API, extract_motifs() for detailed
triad extraction, plot-results for plotting
Other motifs:
extract_motifs(),
extract_triads(),
get_edge_list(),
motifs(),
subgraphs(),
triad_census()
Examples
motif_census(regulation_net, n_random = 20, seed = 1)
#> Network Motif Analysis
#> Size: 3-node motifs (directed) | Null: configuration (n=20)
#>
#> motif count null_mean null_sd z_score p_value significant
#> 003 7 6.90 2.149663 0.04651891 1.0000000 FALSE
#> 012 27 31.00 4.316431 -0.92669146 0.3809524 FALSE
#> 102 2 8.20 3.721912 -1.66581032 0.1428571 FALSE
#> 021D 9 8.05 2.305029 0.41214235 0.9047619 FALSE
#> 021U 11 10.25 2.788605 0.26895172 0.8571429 FALSE
#> 021C 29 19.70 4.910783 1.89379169 0.1428571 FALSE
#> 111D 9 9.05 2.910507 -0.01717914 1.0000000 FALSE
#> 111U 7 6.20 2.587419 0.30918843 0.8571429 FALSE
#> 030T 11 9.35 3.183427 0.51830928 0.5714286 FALSE
#> 030C 2 3.00 1.521772 -0.65712874 0.7142857 FALSE
#> 201 0 1.25 1.332785 -0.93788572 0.5714286 FALSE
#> 120D 2 1.45 1.190975 0.46180657 0.6190476 FALSE
#> 120U 1 1.50 1.235442 -0.40471361 1.0000000 FALSE
#> 120C 3 3.50 1.147079 -0.43588989 1.0000000 FALSE
#> 210 0 0.60 0.680557 -0.88163072 0.6190476 FALSE
#> 300 0 0.00 0.000000 0.00000000 1.0000000 FALSE
#>
#> Over-represented: 0 | Under-represented: 0
