def configuration_model(self, return_copy=False): """ Reads AdjMatrixSequence Object and returns an edge randomized version. Result is written to txt file. """ if self.is_directed: nx_creator = nx.DiGraph() else: nx_creator = nx.Graph() if return_copy: x = self[:] else: x = self # t_edges=[] for i in range(len(self)): print "configuration model: ", i graphlet = nx.from_scipy_sparse_matrix(x[i], create_using=nx_creator) graphlet = gwh.randomize_network(graphlet) x[i] = nx.to_scipy_sparse_matrix(graphlet, dtype="int") # for u,v in graphlet.edges(): # t_edges.append((u,v,i)) # gwh.write_array(t_edges,"Configuration_model.txt") if return_copy: return x else: return
def write(self, fname): """ writes self to txtfile. If network is undirected, edge-pairs appear twice. """ t_edges = [] for i in range(len(self)): print "extracting edges ", i indices = zip(self[i].nonzero()[0], self[i].nonzero()[1]) to_add = [(u, v, i) for u, v in indices] t_edges.extend(to_add) t_edges_clean = t_edges[:] if not self.is_directed: print "cleaning edgelist..." for (u, v, d) in t_edges_clean: if (v, u, d) in t_edges_clean: t_edges_clean.remove((v, u, d)) gwh.write_array(t_edges_clean, fname) return
# At = AdjMatrixSequence(fs.dataPath("T_edgelist.txt"),directed=True,columns=(0,1,3),write_label_file=True) # At = AdjMatrixSequence(fs.dataPath("D_sw_uvd_01JAN2009_31MAR2010.txt"),directed=True,write_label_file=True) print "Hier ", len(At) c = At.unfold_accessibility() # At=AdjMatrixSequence("Temp/Randomized_edges.txt",directed=True) # C=At.cumulated(ende=308) # mmwrite("Hit_aggregated_308.mtx",C) # C=At.clustering_matrix(500) # mmwrite("Clustering_Matrix_113.mtx",C) # spd=At.static_path_density() # gwh.dict2file(spd,"Static_path_density.txt") # At.time_reversed() # At.time_shuffled() # At.write("Randomized/Time_reversed.txt") # den=At.density() gwh.dict2file(c, "cumu.txt") # E=TemporalEdgeList(fs.dataPath("T_edgelist.txt"),directed=True,timecolumn=3) # E=TemporalEdgeList(fs.dataPath("sexual_contacts.dat"),directed=False) # E=TemporalEdgeList(fs.dataPath("D_sw_uvd_01JAN2009_31MAR2010_matrixlabels.txt"),directed=True) # E.shuffle_edge_times() # E.random_times() # E.random_times_uniform() # E.randomize_edges() # E.write("Randomized/Randomized_edges.txt") # print 'Alle: ',len(At) # A=At.cumulated() # print A.nnz # At.write(