Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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