Source code for teneto.communitymeasures.recruitment

import numpy as np
from .allegiance import allegiance


[docs] def recruitment(temporalcommunities, staticcommunities): """ Calculates recruitment in relation to static communities. Calculates recruitment coefficient for each node. Recruitment coefficient is the average probability of nodes from the same static communities being in the same temporal communities at other time-points or during different tasks. Parameters: ------------ temporalcommunities : array temporal communities vector (node,time) staticcommunities : array Static communities vector for each node Returns: ------- recruit : array recruitment coefficient for each node References: ----------- .. [recruit-1] 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. .. [recruit-2] 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) recruit = np.zeros(len(staticcommunities)) for i, statcom in enumerate(staticcommunities): recruit[i] = np.nanmean(alleg[i, staticcommunities == statcom]) return recruit