|
6 | 6 | from multiprocessing import Pool, cpu_count
|
7 | 7 | import numpy as np
|
8 | 8 | import psutil
|
9 |
| -import warnings |
10 | 9 |
|
11 | 10 | LOW_MEMORY_THRESHOLD = 1e9 # 1 GB
|
12 | 11 |
|
@@ -68,18 +67,13 @@ def split_intralayer_leiden_graph(G_intralayer, layer_membership):
|
68 | 67 |
|
69 | 68 | This is needed since leidenalg lacks support for faster multilayer optimization.
|
70 | 69 |
|
71 |
| - WARNING: Optimization can be EXTREMELY slow! Leidenalg does not properly implement multilayer optimization. |
72 |
| -
|
73 | 70 | :param G_intralayer: intralayer graph of interest
|
74 | 71 | :type G_intralayer: igraph.Graph
|
75 | 72 | :param layer_vec: list of each vertex's layer membership
|
76 | 73 | :type layer_vec: list[int]
|
77 | 74 | :return: list of intralayer networks
|
78 | 75 | :rtype: list[igraph.Graph]
|
79 | 76 | """
|
80 |
| - warnings.warn("You are using Leiden multilayer modularity optimization. THIS CAN BE EXTREMELY SLOW! " |
81 |
| - "leidenalg's implementation is inefficient, especially when there are many layers.") |
82 |
| - |
83 | 77 | # internally use hashable objects for memoization
|
84 | 78 | return _split_leiden_graph_layers_cached(n=G_intralayer.vcount(), G_es=tuple(G_intralayer.es),
|
85 | 79 | is_directed=G_intralayer.is_directed(),
|
@@ -108,7 +102,8 @@ def _split_leiden_graph_layers_cached(n, G_es, is_directed, layer_membership):
|
108 | 102 | def multilayer_leiden(G_intralayer, G_interlayer, layer_vec, gamma, omega, optimiser=None, return_partition=False):
|
109 | 103 | r"""Run the Leiden modularity maximization algorithm at a single (:math:`\gamma, \omega`) value.
|
110 | 104 |
|
111 |
| - WARNING: Optimization can be EXTREMELY slow! Leidenalg does not properly implement multilayer optimization. |
| 105 | + WARNING: Optimization can be EXTREMELY slow for large numbers of layers! Leidenalg does not properly implement |
| 106 | + multilayer optimization. |
112 | 107 |
|
113 | 108 | :param G_intralayer: intralayer graph of interest
|
114 | 109 | :type G_intralayer: igraph.Graph
|
@@ -236,6 +231,9 @@ def repeated_parallel_leiden_from_gammas_omegas(G_intralayer, G_interlayer, laye
|
236 | 231 | """
|
237 | 232 | Runs leidenalg at each gamma and omega in ``gammas`` and ``omegas``, using all CPU cores available.
|
238 | 233 |
|
| 234 | + WARNING: Optimization can be EXTREMELY slow for large numbers of layers! Leidenalg does not properly implement |
| 235 | + multilayer optimization. |
| 236 | +
|
239 | 237 | :param G_intralayer: intralayer graph of interest
|
240 | 238 | :type G_intralayer: igraph.Graph
|
241 | 239 | :param G_interlayer: interlayer graph of interest
|
|
0 commit comments