Mercurial > repos > yufei-luo > s_mart
view smart_toolShed/commons/core/launcher/LauncherUtils.py @ 0:e0f8dcca02ed
Uploaded S-MART tool. A toolbox manages RNA-Seq and ChIP-Seq data.
author | yufei-luo |
---|---|
date | Thu, 17 Jan 2013 10:52:14 -0500 |
parents | |
children |
line wrap: on
line source
class LauncherUtils(object): @staticmethod def createHomogeneousSizeList(lStringSizeTuples, maxSize): lStringSizeTuplesSorted = sorted(lStringSizeTuples, key=lambda stringSizeTuple:(stringSizeTuple[1], stringSizeTuple[0]), reverse = True) lStringSizeList = [] lStringSize = [] sumTupleSize = 0 iteratorFromBegin = 0 iteratorFromEnd = len(lStringSizeTuplesSorted) - 1 for tuple in lStringSizeTuplesSorted: if sumTupleSize + tuple[1] < maxSize: lStringSize.append(tuple[0]) sumTupleSize += tuple[1] elif tuple[1] >= maxSize: lStringSizeList.append([tuple[0]]) else: tupleFromEnd = lStringSizeTuplesSorted[iteratorFromEnd] while sumTupleSize + tupleFromEnd[1] < maxSize and iteratorFromBegin < iteratorFromEnd: lStringSize.append(tupleFromEnd[0]) sumTupleSize += tupleFromEnd[1] del lStringSizeTuplesSorted[iteratorFromEnd] iteratorFromEnd -= 1 tupleFromEnd = lStringSizeTuplesSorted[iteratorFromEnd] lStringSizeList.append(lStringSize) lStringSize = [tuple[0]] sumTupleSize = tuple[1] iteratorFromBegin += 1 if lStringSize: lStringSizeList.append(lStringSize) return lStringSizeList