def runInvariants(inv_list, graph_fn, save_dir, graph_format="graphml", sep_save=False): ''' Run the selected multivariate invariants as defined @param inv_list: the list of invariants we are to compute @param graph_fn: the graph filename on disk @param save_dir: the directory where to save resultant data @param graph_format: the format of the graph @param sep_save: boolean on whether to save invariants in separate files ''' inv_dict = {'graph_fn':graph_fn, 'save_dir':save_dir} for inv in inv_list: inv_dict[inv] = True inv_dict = cci.compute(inv_dict, sep_save=sep_save, gformat=graph_format) if isinstance(inv_dict, str): return inv_dict # Error message else: inv_dict = inv_dict[1] return_dict = dict() for key in inv_dict: if key.endswith("_fn") and not key.startswith("eig"): # skip eigs return_dict[key] = inv_dict[key] if inv_dict.get("eigvl_fn", None): # or "eigvect_fn" return_dict["eig"] = [inv_dict["eigvect_fn"], inv_dict["eigvl_fn"]] # Note this return return_dict
def runInvariants(inv_list, graph_fn, save_dir, lcc_fn, graphsize): ''' ''' inv_dict = {'graph_fn':graph_fn, 'save_dir':save_dir, \ 'lcc_fn':lcc_fn,'graphsize':graphsize} for inv in inv_list: inv_dict[inv] = True inv_dict = cci.compute(inv_dict) return_dict = dict() if inv_dict['ss1_fn']: return_dict['ss1'] = inv_dict['ss1_fn'] if inv_dict['tri_fn']: return_dict['tri'] = inv_dict['tri_fn'] if inv_dict['deg_fn']: return_dict['deg'] = inv_dict['deg_fn'] if inv_dict['ss2_fn']: return_dict['ss2'] = inv_dict['ss2_fn'] if inv_dict['apl_fn']: return_dict['apl'] = inv_dict['apl_fn'] if inv_dict['gdia_fn']: return_dict['gdia'] = inv_dict['gdia_fn'] if inv_dict['cc_fn']: return_dict['cc'] = inv_dict['cc_fn'] if inv_dict['mad_fn']: return_dict['mad'] = inv_dict['mad_fn'] if inv_dict['eigvl_fn']: return_dict['eig'] = [inv_dict['eigvect_fn'], inv_dict['eigvl_fn']] # Note this return return_dict
def run_invariants(inv_list, graph_fn, save_dir, graph_format="graphml", sep_save=False): ''' Run the selected multivariate invariants as defined @param inv_list: the list of invariants we are to compute @param graph_fn: the graph filename on disk @param save_dir: the directory where to save resultant data @param graph_format: the format of the graph @param sep_save: boolean on whether to save invariants in separate files ''' inv_dict = {'graph_fn':graph_fn, 'save_dir':save_dir} for inv in inv_list: inv_dict[inv] = True inv_dict = cci.compute(inv_dict, sep_save=sep_save, gformat=graph_format) if isinstance(inv_dict, str): return inv_dict # Error message else: inv_dict = inv_dict[1] return_dict = dict() for key in inv_dict: if key.endswith("_fn") and not key.startswith("eig"): # skip eigs return_dict[key] = inv_dict[key] if inv_dict.get("eigvl_fn", None): # or "eigvect_fn" return_dict["eig"] = [inv_dict["eigvect_fn"], inv_dict["eigvl_fn"]] # Note this return return_dict
def testing(inv_dict): print "Entering testing module ..." inv_dict = compute(inv_dict) num_nodes = np.load(inv_dict["ver_fn"]).item() benchdir = "/Users/disa/m2g/MROCPdjango/computation/tests/bench" # TODO DM: Alter Dynamically testObj = unittesting.test( inv_dict["graph_fn"], inv_dict["save_dir"], num_nodes, inv_dict["ss1_fn"], inv_dict["deg_fn"], inv_dict["tri_fn"], inv_dict["cc_fn"], inv_dict["mad_fn"], benchdir, ) # Create unittest object testObj.testClustCoeff() testObj.testDegree() testObj.testTriangles() testObj.testMAD() testObj.testSS1()
def main(): parser = argparse.ArgumentParser(description="Run MROCP invariants individually for timing purposes") parser.add_argument("gfn", action="store", help="The name of the graph on disk") result = parser.parse_args() g = loadAnyMat(result.gfn) begin = time() # TODO optimize invariants # Deg print "Individual run ...\n Processing Degree vector ..." b = time() compute({"deg":True, "G":g, "graph_fn":result.gfn}, save=False) print "Time for degree vector = %.4f"% (time()-b) # SS print "Processing Scan Statistic ..." b = time() compute({"ss1":True, "G":g, "graph_fn":result.gfn}, save=False) print "Time for scan 1 vector = %.4f"% (time()-b) # CC print "Processing Clustering Coefficient (Transitivity)" b = time() compute({"cc":True, "G":g, "graph_fn":result.gfn}, save=False) print "Time for Clustering Coefficient vector = %.4f"% (time()-b) # TRI b = time() compute({"tri":True, "G":g, "graph_fn":result.gfn}, save=False) print "Time for triangle vector = %.4f" % (time()-b) print "Total time for non-daisy-chained invariant = %.4f" % (time()-begin) # minus all the populate_invariants print "\n*** Daisy-chain run ... ***\n" begin = time() compute({"deg":True, "ss1":True, "cc":True, "tri":True, "G":g, "graph_fn":result.gfn}, save=False) print "Total time for daisy-chained invariant = %.4f" % (time()-begin) # minus all the populate_invariants
def testing(inv_dict): print "Entering testing module ..." inv_dict = compute(inv_dict) num_nodes = np.load(inv_dict["ver_fn"]).item() benchdir = "/Users/disa/m2g/MROCPdjango/computation/tests/bench" # TODO DM: Alter Dynamically testObj = unittesting.test(inv_dict["graph_fn"], inv_dict["save_dir"], num_nodes, inv_dict["ss1_fn"]\ , inv_dict["deg_fn"], inv_dict["tri_fn"], inv_dict["cc_fn"], inv_dict["mad_fn"], benchdir) # Create unittest object testObj.testClustCoeff() testObj.testDegree() testObj.testTriangles() testObj.testMAD() testObj.testSS1()