Source code for teneto.communitymeasures.integration
import numpy as np
from .allegiance import allegiance
[docs]
def integration(temporalcommunities, staticcommunities):
"""
Calculates the integration coefficient for each node. Measures the average probability
that a node is in the same community as nodes from other systems.
Parameters:
------------
temporalcommunities : array
temporal communities vector (node,time)
staticcommunities : array
Static communities vector for each node
Returns:
-------
integration_coeff : array
integration coefficient for each node
References:
----------
Danielle S. Bassett, Muzhi Yang, Nicholas F. Wymbs, Scott T. Grafton.
Learning-Induced Autonomy of Sensorimotor Systems. Nat Neurosci. 2015 May;18(5):744-51.
Marcelo Mattar, Michael W. Cole, Sharon Thompson-Schill, Danielle S. Bassett.
A Functional Cartography of Cognitive Systems. PLoS Comput Biol. 2015 Dec
2;11(12):e1004533.
"""
# make sure the static and temporal communities have the same number of nodes
staticcommunities = np.squeeze(staticcommunities)
if staticcommunities.shape[0] != temporalcommunities.shape[0]:
raise ValueError(
'Temporal and static communities have different dimensions')
if len(staticcommunities.shape) > 1:
raise ValueError(
'Incorrect static community shape')
alleg = allegiance(temporalcommunities)
integration_coeff = np.zeros(len(staticcommunities))
# calc integration for each node
for i, statcom in enumerate(staticcommunities):
integration_coeff[i] = np.nanmean(alleg[i, staticcommunities != statcom])
return integration_coeff