def Leaflet_finder(traj, i, j, ii, jj, len_chunks, cutoff):
g1 = np.load(os.path.abspath(os.path.normpath(os.path.join(os.getcwd(),traj))), mmap_mode='r')[i:i+len_chunks]
g2 = np.load(os.path.abspath(os.path.normpath(os.path.join(os.getcwd(),traj))), mmap_mode='r')[j:j+len_chunks]
block = np.zeros((len(g1),len(g2)),dtype=float)
block[:,:] = cdist(g1, g2) <= cutoff
adj_list = np.where(block[:,:] == True)
adj_list = np.vstack(adj_list)
adj_list[0] = adj_list[0]+ii*len_chunks
adj_list[1] = adj_list[1]+jj*len_chunks
if adj_list.shape[1] == 0:
adj_list=np.zeros((2,1))
graph = nx.Graph()
edges = [(adj_list[0,k],adj_list[1,k]) for k in range(0,adj_list.shape[1])]
graph.add_edges_from(edges)
leaflet = sorted(nx.connected_components(graph), key=len, reverse=True)
l_connected = [] # Keep only connected components
for lng in range(len(leaflet)):
l_connected.append(leaflet[lng])
return list(l_connected)
leaflet-dask-delayed.py 文件源码
python
阅读 32
收藏 0
点赞 0
评论 0
评论列表
文章目录