Mercurial > repos > yufei-luo > s_mart
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smart_toolShed/commons/core/launcher/LauncherUtils.py Thu Jan 17 10:52:14 2013 -0500 @@ -0,0 +1,31 @@ +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 \ No newline at end of file