def _commonComplementGtrackFile(origFn, dbFn, intersectingFactor, gtrackColsToAdd, genome): origGESource = GtrackGenomeElementSource(origFn, genome) dbGESource = GtrackGenomeElementSource(dbFn, genome) dbPrefixes = dbGESource.getPrefixList() if intersectingFactor == 'id': fullDbDict = IdFullInfoDict(dbGESource, dbPrefixes) elif intersectingFactor == 'position': fullDbDict = TupleFullInfoDict(dbGESource, dbPrefixes) else: ShouldNotOccurError forcedHeaderDict = {} dbHeaderDict = dbGESource.getHeaderDict() if 'value' in gtrackColsToAdd: forcedHeaderDict['value type'] = dbHeaderDict['value type'] forcedHeaderDict['value dimension'] = dbHeaderDict['value dimension'] if 'edges' in gtrackColsToAdd: forcedHeaderDict['edge weight type'] = dbHeaderDict['edge weight type'] forcedHeaderDict['edge weight dimension'] = dbHeaderDict['edge weight dimension'] composerCls = ExtendedGtrackComposer if origGESource.isExtendedGtrackFile() else StdGtrackComposer composedFile = composerCls( ElementComplementer(origGESource, fullDbDict, gtrackColsToAdd), \ forcedHeaderDict=forcedHeaderDict).returnComposed() return expandHeadersOfGtrackFileAndReturnComposer('', genome, strToUseInsteadOfFn=composedFile)
def _commonStandardizeGtrackFile(fn, genome, suffix=None): geSource = GenomeElementSource(fn, genome, suffix=suffix) composedFile = StdGtrackComposer( GtrackElementStandardizer(geSource)).returnComposed() return expandHeadersOfGtrackFileAndReturnComposer('', genome, strToUseInsteadOfFn=composedFile)