def mainFlow(folderName, mummerLink, inputContigsFilename, inputReadsFilename, useSpades, noAlignment, scoreListOutputName, outputContigsFilename, mScoreThres, conScoreThres, setCoverOption): outputHeader, splitNum, parallelNum = "readToContigHeader", 20, 20 contigsFilename, readsFilename= "tmp" + inputContigsFilename , "tmp" + inputReadsFilename targetToSourceContigsNamesDic = houseKeeperLib.transformFileHeaders(folderName, inputContigsFilename, contigsFilename, noAlignment) targetToSourceReadsNamesDic = houseKeeperLib.transformFileHeaders(folderName, inputReadsFilename, readsFilename, noAlignment) dataList = alignmentLib.extractRead2Contig(folderName, mummerLink, readsFilename, contigsFilename, splitNum, outputHeader, parallelNum, noAlignment ) connectingReadsList = readConnectivityLib.findConnectingReadsList(dataList) spanReadsList, contigGapReadLookUpDic = readConnectivityLib.findSpanReadsList(connectingReadsList) contigsNamesList = alignmentLib.findContigsNames(folderName, contigsFilename) G = graphLib.formContigGraph(spanReadsList, contigsNamesList) condenseCandidatesList = G.findCondenseCandidatesList() multiplicityDic = G.findEdgeMultiplicity() potentialMergesList = setCoverLib.extendConnectivityFromReads(condenseCandidatesList, connectingReadsList, contigsNamesList, setCoverOption, multiplicityDic) if useSpades == True: cTestLib.assignCoverageFromHeader(G, folderName, contigsFilename, targetToSourceContigsNamesDic) else: cTestLib.assignCoverageFromDataList(G, dataList,folderName, contigsFilename) scoreStructList = cTestLib.calculateConfidenceScore(G, potentialMergesList) scoreListWithDummy, dummyNodeDataRobot = setCoverLib.assignRepeatedNodesToDummy(scoreStructList) rankingLib.rankAndMerge(folderName,contigsNamesList, contigsFilename, readsFilename, scoreListWithDummy, contigGapReadLookUpDic, mScoreThres, conScoreThres, scoreListOutputName, outputContigsFilename, dummyNodeDataRobot)
def test_assignRepeatedNodesToDummy(self): scoreList = [[[["ContigDummyL_R~ContigDummyR_L~1", 1, 1]], False]] scoreListWithDummy, dummyNodeDataRobot = setCoverLib.assignRepeatedNodesToDummy(scoreList) expectedScoreListWithDummy = [["Dummy0_R~Dummy1_L~1", 1, 1]] assert "ContigDummyL" == dummyNodeDataRobot.D2RLookUp("Dummy0") assert "ContigDummyR" == dummyNodeDataRobot.D2RLookUp("Dummy1") assert ["Dummy0"] == dummyNodeDataRobot.R2DLookUp("ContigDummyL") assert ["Dummy1"] == dummyNodeDataRobot.R2DLookUp("ContigDummyR") assert expectedScoreListWithDummy == scoreListWithDummy
def test_assignRepeatedNodesToDummy(self): scoreList = [[[['ContigDummyL_R~ContigDummyR_L~1' , 1 , 1]], False ] ] scoreListWithDummy, dummyNodeDataRobot = setCoverLib.assignRepeatedNodesToDummy(scoreList) expectedScoreListWithDummy = [['Dummy0_R~Dummy1_L~1', 1, 1]] assert( "ContigDummyL" == dummyNodeDataRobot.D2RLookUp("Dummy0")) assert( "ContigDummyR" == dummyNodeDataRobot.D2RLookUp("Dummy1")) assert( ["Dummy0"] == dummyNodeDataRobot.R2DLookUp("ContigDummyL")) assert( ["Dummy1"] == dummyNodeDataRobot.R2DLookUp("ContigDummyR")) assert(expectedScoreListWithDummy == scoreListWithDummy)
def mainFlow(folderName, mummerLink, inputContigsFilename, inputReadsFilename, useSpades, noAlignment, scoreListOutputName, outputContigsFilename, mScoreThres, conScoreThres, setCoverOption): outputHeader, splitNum, parallelNum = "readToContigHeader", 20, 20 contigsFilename, readsFilename = "tmp" + inputContigsFilename, "tmp" + inputReadsFilename targetToSourceContigsNamesDic = houseKeeperLib.transformFileHeaders( folderName, inputContigsFilename, contigsFilename, noAlignment) targetToSourceReadsNamesDic = houseKeeperLib.transformFileHeaders( folderName, inputReadsFilename, readsFilename, noAlignment) dataList = alignmentLib.extractRead2Contig(folderName, mummerLink, readsFilename, contigsFilename, splitNum, outputHeader, parallelNum, noAlignment) connectingReadsList = readConnectivityLib.findConnectingReadsList(dataList) spanReadsList, contigGapReadLookUpDic = readConnectivityLib.findSpanReadsList( connectingReadsList) contigsNamesList = alignmentLib.findContigsNames(folderName, contigsFilename) G = graphLib.formContigGraph(spanReadsList, contigsNamesList) condenseCandidatesList = G.findCondenseCandidatesList() multiplicityDic = G.findEdgeMultiplicity() potentialMergesList = setCoverLib.extendConnectivityFromReads( condenseCandidatesList, connectingReadsList, contigsNamesList, setCoverOption, multiplicityDic) if useSpades == True: cTestLib.assignCoverageFromHeader(G, folderName, contigsFilename, targetToSourceContigsNamesDic) else: cTestLib.assignCoverageFromDataList(G, dataList, folderName, contigsFilename) scoreStructList = cTestLib.calculateConfidenceScore(G, potentialMergesList) scoreListWithDummy, dummyNodeDataRobot = setCoverLib.assignRepeatedNodesToDummy( scoreStructList) rankingLib.rankAndMerge(folderName, contigsNamesList, contigsFilename, readsFilename, scoreListWithDummy, contigGapReadLookUpDic, mScoreThres, conScoreThres, scoreListOutputName, outputContigsFilename, dummyNodeDataRobot)