关于复杂网络中模体研究的python实践
模体定义
“在复杂网络中发现的某种相互连接的模式个数显著高于随机网络”。所谓互相连接的模式,在三个节点组成的有向图,一共有如下 13 种可能,其中每一种,如果在网络中出现的概率比随机网络中明显高一截,就可以看成是一个模体。模体相关的研究,又被称为基元,具体可参考《复杂网络基元研究方法及应用》这本书。
参考知乎文章,链接: https://zhuanlan.zhihu.com/p/138822532
*请注意图中的序列不能重复计算。比如9包含2,但是在计算网络中模体2时,9不能算作是三个2组成的。
模体的检测方式
import networkx as nx
import igraph
import pandas as pd
import numpy as np
import itertools
import matplotlib.pyplot as plt
#import public_motif as motif
M8 = [[0, 1], [1,2]]
Net = [[1,4],[0,2],[2,1],[1,0]]
graph_igraph = igraph.Graph(Net, directed=True)
motif_igraph = igraph.Graph(M8, directed=True)
#下面的函数是判断graph_igraph中是否含有和moti