def XResolution(folderName, contigReadGraph, Gnew, myCountDic, lenDic, N1, mummerLink): if abunHouseKeeper.abunGlobalSplitParameterRobot.runXResolve: G = graphLib.seqGraph(0) G.loadFromFile(folderName, contigReadGraph) Grev = abunGraphLib.formReverseGraphFast(G) if not abunHouseKeeper.abunGlobalRunEM: xResolvedList, brResolvedListforX = [[] for i in range(N1) ], [[] for i in range(N1)] if abunHouseKeeper.abunGlobalSplitParameterRobot.toRunAbunX: if abunHouseKeeper.abunGlobalSplitParameterRobot.AbunLowerX > 0: abunHouseKeeper.abunGlobalSplitParameterRobot.AbunLower = abunHouseKeeper.abunGlobalSplitParameterRobot.AbunLowerX if abunHouseKeeper.abunGlobalSplitParameterRobot.AbunUpperX > 0: abunHouseKeeper.abunGlobalSplitParameterRobot.AbunUpper = abunHouseKeeper.abunGlobalSplitParameterRobot.AbunUpperX xResolvedList = xNodeAdvResolving(Gnew, G, folderName, myCountDic, lenDic) if abunHouseKeeper.abunGlobalSplitParameterRobot.toRunBRX: if abunHouseKeeper.abunGlobalSplitParameterRobot.BRThresX > 0: abunHouseKeeper.abunGlobalSplitParameterRobot.BRThres = abunHouseKeeper.abunGlobalSplitParameterRobot.BRThresX brResolvedListforX = xNodeBrResolving(Gnew, G, Grev, folderName, N1) combinedList = resolveConflictX(xResolvedList, brResolvedListforX) else: combinedList = xNodeEMResolving(Gnew, G, Grev, folderName, myCountDic, lenDic, N1, mummerLink) print "combinedList", combinedList Gnew.xResolve(combinedList) Gnew.condense() Gnew.saveToFile(folderName, "xResolvedGraph") with open(folderName + "mapDummyToRealDic.json", 'w') as f: json.dump(Gnew.mapDummyToRealDic, f) with open(folderName + "xResolvedSimplifiedList.json", 'w') as f: json.dump(Gnew.xResolvedSimplifiedList, f) else: Gnew.saveToFile(folderName, "xResolvedGraph") with open(folderName + "mapDummyToRealDic.json", 'w') as f: json.dump(Gnew.mapDummyToRealDic, f) with open(folderName + "xResolvedSimplifiedList.json", 'w') as f: json.dump(Gnew.xResolvedSimplifiedList, f)
def XResolution(folderName, contigReadGraph, Gnew, myCountDic, lenDic, N1): if abunHouseKeeper.abunGlobalSplitParameterRobot.runXResolve: G = graphLib.seqGraph(0) G.loadFromFile(folderName, contigReadGraph) Grev = abunGraphLib.formReverseGraphFast(G) xResolvedList, brResolvedListforX = [[] for i in range(N1)], [[] for i in range(N1)] if abunHouseKeeper.abunGlobalSplitParameterRobot.toRunAbunX: if abunHouseKeeper.abunGlobalSplitParameterRobot.AbunLowerX > 0: abunHouseKeeper.abunGlobalSplitParameterRobot.AbunLower = ( abunHouseKeeper.abunGlobalSplitParameterRobot.AbunLowerX ) if abunHouseKeeper.abunGlobalSplitParameterRobot.AbunUpperX > 0: abunHouseKeeper.abunGlobalSplitParameterRobot.AbunUpper = ( abunHouseKeeper.abunGlobalSplitParameterRobot.AbunUpperX ) xResolvedList = xNodeAdvResolving(Gnew, G, folderName, myCountDic, lenDic) if abunHouseKeeper.abunGlobalSplitParameterRobot.toRunBRX: if abunHouseKeeper.abunGlobalSplitParameterRobot.BRThresX > 0: abunHouseKeeper.abunGlobalSplitParameterRobot.BRThres = ( abunHouseKeeper.abunGlobalSplitParameterRobot.BRThresX ) brResolvedListforX = xNodeBrResolving(Gnew, G, Grev, folderName, N1) combinedList = resolveConflictX(xResolvedList, brResolvedListforX) Gnew.xResolve(combinedList) Gnew.condense() Gnew.saveToFile(folderName, "xResolvedGraph") with open(folderName + "mapDummyToRealDic.json", "w") as f: json.dump(Gnew.mapDummyToRealDic, f) with open(folderName + "xResolvedSimplifiedList.json", "w") as f: json.dump(Gnew.xResolvedSimplifiedList, f) else: Gnew.saveToFile(folderName, "xResolvedGraph") with open(folderName + "mapDummyToRealDic.json", "w") as f: json.dump(Gnew.mapDummyToRealDic, f) with open(folderName + "xResolvedSimplifiedList.json", "w") as f: json.dump(Gnew.xResolvedSimplifiedList, f)
def BResolution(Gnew, folderName, contigReadGraph, N1, myCountDic, lenDic): if abunHouseKeeper.abunGlobalSplitParameterRobot.runBResolve: print "abunHouseKeeper.abunGlobalSplitParameterRobot.runBResolve", abunHouseKeeper.abunGlobalSplitParameterRobot.runBResolve maxRThres = abunHouseKeeper.abunGlobalSplitParameterRobot.RThres repeatFinder.adjListToRepeatList(Gnew.adj, folderName, "phaseRepeatTR.txt") json_data = open(folderName + "phaseRepeatTR.txt", "r") repeatPairs = json.load(json_data) repeatPairs = obtainNonEmpty(repeatPairs) biResolvedCombineList = [] G = graphLib.seqGraph(0) G.loadFromFile(folderName, contigReadGraph) Grev = abunGraphLib.formReverseGraphFast(G) abunAnalysisList = [] for eachitem in repeatPairs: inList, outList = eachitem[0], eachitem[1] resolvedList, brResolvedList = [], [] if abunHouseKeeper.abunGlobalSplitParameterRobot.toRunAbunB: if abunHouseKeeper.abunGlobalSplitParameterRobot.AbunLowerB > 0: abunHouseKeeper.abunGlobalSplitParameterRobot.AbunLower = ( abunHouseKeeper.abunGlobalSplitParameterRobot.AbunLowerB ) if abunHouseKeeper.abunGlobalSplitParameterRobot.AbunUpperB > 0: abunHouseKeeper.abunGlobalSplitParameterRobot.AbunUpper = ( abunHouseKeeper.abunGlobalSplitParameterRobot.AbunUpperB ) if not abunHouseKeeper.abunGlobalSplitParameterRobot.toRunAggB: resolvedList = determindMatch(inList, outList, myCountDic, folderName, contigReadGraph, N1) else: resolvedList = determindMatchAggregate( inList, outList, myCountDic, folderName, contigReadGraph, N1, Gnew, lenDic ) if abunHouseKeeper.abunGlobalSplitParameterRobot.toRunBRB: if abunHouseKeeper.abunGlobalSplitParameterRobot.BRThresB > 0: abunHouseKeeper.abunGlobalSplitParameterRobot.BRThres = ( abunHouseKeeper.abunGlobalSplitParameterRobot.BRThresB ) brResolvedList = formBRReolve(folderName, inList, outList, G, Grev, True, N1) combinedList = abunHouseKeeper.getDistinct(resolvedList + brResolvedList) print "resolvedList, brResolvedList, inList, outList", resolvedList, brResolvedList, inList, outList print "resolveConflict(combinedList)", resolveConflict(combinedList) abunAnalysisList.append([inList, outList, resolvedList, brResolvedList, resolveConflict(combinedList)]) if len(inList) <= maxRThres and len(outList) <= maxRThres and len(inList) > 0 and len(outList) > 0: # biResolvedCombineList += resolveConflict(combinedList) resolvedCombine = resolveConflict(combinedList) ### kkdebug Gnew.bipartiteLocalResolve(resolvedCombine, inList, outList, folderName) # json_data = open(folderName + "hackBRResolveList.json", 'r') # dataItem = json.load(json_data) # Gnew.bipartiteResolve(dataItem) ### end kkdebug Gnew.condense() with open(folderName + "biResolvedCombineList.json", "w") as f: json.dump(biResolvedCombineList, f) with open(folderName + "abunAnalysisList.json", "w") as f: json.dump(abunAnalysisList, f) # assert(1==2) return Gnew else: return Gnew
def BResolution(Gnew, folderName, contigReadGraph, N1, myCountDic, lenDic, mummerLink): if abunHouseKeeper.abunGlobalSplitParameterRobot.runBResolve: print "abunHouseKeeper.abunGlobalSplitParameterRobot.runBResolve", abunHouseKeeper.abunGlobalSplitParameterRobot.runBResolve maxRThres = abunHouseKeeper.abunGlobalSplitParameterRobot.RThres repeatFinder.adjListToRepeatList(Gnew.adj, folderName, "phaseRepeatTR.txt") json_data = open(folderName + "phaseRepeatTR.txt", 'r') repeatPairs = json.load(json_data) repeatPairs = obtainNonEmpty(repeatPairs) biResolvedCombineList = [] G = abunGraphLib.seqGraphWt(0) G.loadFromFile(folderName, contigReadGraph) Grev = abunGraphLib.formReverseGraphFast(G) abunAnalysisList = [] for eachitem in repeatPairs: inList, outList = eachitem[0], eachitem[1] if not abunHouseKeeper.abunGlobalRunEM: resolvedList, brResolvedList = [], [] if abunHouseKeeper.abunGlobalSplitParameterRobot.toRunAbunB: if abunHouseKeeper.abunGlobalSplitParameterRobot.AbunLowerB > 0: abunHouseKeeper.abunGlobalSplitParameterRobot.AbunLower = abunHouseKeeper.abunGlobalSplitParameterRobot.AbunLowerB if abunHouseKeeper.abunGlobalSplitParameterRobot.AbunUpperB > 0: abunHouseKeeper.abunGlobalSplitParameterRobot.AbunUpper = abunHouseKeeper.abunGlobalSplitParameterRobot.AbunUpperB if not abunHouseKeeper.abunGlobalSplitParameterRobot.toRunAggB: resolvedList = determindMatch(inList, outList, myCountDic, folderName, contigReadGraph, N1) else: resolvedList = determindMatchAggregate( inList, outList, myCountDic, folderName, contigReadGraph, N1, Gnew, lenDic) if abunHouseKeeper.abunGlobalSplitParameterRobot.toRunBRB: if abunHouseKeeper.abunGlobalSplitParameterRobot.BRThresB > 0: abunHouseKeeper.abunGlobalSplitParameterRobot.BRThres = abunHouseKeeper.abunGlobalSplitParameterRobot.BRThresB brResolvedList = formBRReolve(folderName, inList, outList, G, Grev, True, N1) combinedList = abunHouseKeeper.getDistinct(resolvedList + brResolvedList) print "resolvedList, brResolvedList, inList, outList", resolvedList, brResolvedList, inList, outList print "resolveConflict(combinedList)", resolveConflict( combinedList) abunAnalysisList.append([ inList, outList, resolvedList, brResolvedList, resolveConflict(combinedList) ]) if len(inList) <= maxRThres and len( outList) <= maxRThres and len(inList) > 0 and len( outList) > 0: resolvedCombine = resolveConflict(combinedList) Gnew.bipartiteLocalResolve(resolvedCombine, inList, outList, folderName) else: import emalgo resolvedCombine = emalgo.BResolvePreparation( folderName, inList, outList, G, Grev, N1, mummerLink) Gnew.bipartiteLocalResolve(resolvedCombine, inList, outList, folderName) Gnew.condense() with open(folderName + "biResolvedCombineList.json", 'w') as f: json.dump(biResolvedCombineList, f) with open(folderName + "abunAnalysisList.json", 'w') as f: json.dump(abunAnalysisList, f) #assert(1==2) return Gnew else: return Gnew