def load_mode_to_graph(mode, filename, Graph, context): modeId = mode + 'Id' schema = snap.Schema() schema.Add(snap.TStrTAttrPr(modeId, snap.atStr)) schema.Add(snap.TStrTAttrPr("datasetId", snap.atStr)) modenet = snap.TTable.LoadSS(schema, filename, context, "\t", snap.TBool(False)) snap.LoadModeNetToNet(Graph, mode, modenet, modeId, snap.TStrV())
FOut.Flush() enrollments_table.Save(FOut) FOut.Flush() advisors_table.Save(FOut) FOut.Flush() prereqs_table.Save(FOut) FOut.Flush() instructors_table.Save(FOut) FOut.Flush() context.Save(FOut) FOut.Flush() #Create TMMNet mmnet = snap.TMMNet.New() nodeattrv = snap.TStrV() snap.LoadModeNetToNet(mmnet, "students", advisors_table, "StudentID", nodeattrv) snap.LoadModeNetToNet(mmnet, "courses", instructors_table, "CourseID", nodeattrv) snap.LoadModeNetToNet(mmnet, "profs", advisors_table, "ProfID", nodeattrv) edgeattrv = snap.TStrV() snap.LoadCrossNetToNet(mmnet, "students", "students", "friends", friends_table, "Student1ID", "Student2ID", edgeattrv) snap.LoadCrossNetToNet(mmnet, "students", "profs", "advisors", advisors_table, "StudentID", "ProfID", edgeattrv) snap.LoadCrossNetToNet(mmnet, "students", "courses", "enrollments", enrollments_table, "StudentID", "CourseID", edgeattrv) snap.LoadCrossNetToNet(mmnet, "courses", "courses", "prereqs", prereqs_table, "CourseID", "PrereqCourseID", edgeattrv) snap.LoadCrossNetToNet(mmnet, "courses", "profs", "instructors", instructors_table, "CourseID", "ProfID", edgeattrv) # Convert to TNEANet crossnetids = snap.TIntV() crossnetids.Add(mmnet.GetCrossId("friends")) crossnetids.Add(mmnet.GetCrossId("advisors"))
logging.basicConfig(level=numeric_level) context = snap.TTableContext() # Construct the graph logging.info('Building Multi-Modal Network') Graph = snap.TMMNet.New() # Loading Modes try: chemical_mode_file = config.get('Modes', 'Chemical') cmschema = snap.Schema() cmschema.Add(snap.TStrTAttrPr("ChemicalId", snap.atStr)) cmschema.Add(snap.TStrTAttrPr("datasetId", snap.atStr)) chemical_mode = snap.TTable.LoadSS(cmschema, chemical_mode_file, context, "\t", snap.TBool(False)) logging.info('Done loading Chemical Mode') snap.LoadModeNetToNet(Graph, "Chemical", chemical_mode, "ChemicalId", snap.TStr64V()) except ConfigParser.NoOptionError: logging.info('Skipping Chemical Mode') try: function_mode_file = config.get('Modes', 'Function') fmschema = snap.Schema() fmschema.Add(snap.TStrTAttrPr("FunctionId", snap.atStr)) fmschema.Add(snap.TStrTAttrPr("datasetId", snap.atStr)) function_mode = snap.TTable.LoadSS(fmschema, function_mode_file, context, "\t", snap.TBool(False)) logging.info('Done loading Function Mode') snap.LoadModeNetToNet(Graph, "Function", function_mode, "FunctionId", snap.TStr64V()) except ConfigParser.NoOptionError: logging.info('Skipping Function Mode') try:
t.show("loadbin context", RefsT) r.show("__context__") print time.ctime(), "done" # In[2]: mmnet = snap.TMMNet.New() # In[3]: nodeattrv = snap.TStrV() print time.ctime() snap.LoadModeNetToNet(mmnet, "papers", PapT, "PaperID", nodeattrv) print time.ctime() # In[6]: print time.ctime() snap.LoadModeNetToNet(mmnet, "authors", AuthT, "AuthorID", nodeattrv) print time.ctime() # In[4]: print time.ctime() snap.LoadModeNetToNet(mmnet, "affls", AfflT, "AfflID", nodeattrv) print time.ctime()