Mercurial > repos > yufei-luo > s_mart
comparison 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 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:e0f8dcca02ed |
---|---|
1 class LauncherUtils(object): | |
2 | |
3 @staticmethod | |
4 def createHomogeneousSizeList(lStringSizeTuples, maxSize): | |
5 lStringSizeTuplesSorted = sorted(lStringSizeTuples, key=lambda stringSizeTuple:(stringSizeTuple[1], stringSizeTuple[0]), reverse = True) | |
6 lStringSizeList = [] | |
7 lStringSize = [] | |
8 sumTupleSize = 0 | |
9 iteratorFromBegin = 0 | |
10 iteratorFromEnd = len(lStringSizeTuplesSorted) - 1 | |
11 for tuple in lStringSizeTuplesSorted: | |
12 if sumTupleSize + tuple[1] < maxSize: | |
13 lStringSize.append(tuple[0]) | |
14 sumTupleSize += tuple[1] | |
15 elif tuple[1] >= maxSize: | |
16 lStringSizeList.append([tuple[0]]) | |
17 else: | |
18 tupleFromEnd = lStringSizeTuplesSorted[iteratorFromEnd] | |
19 while sumTupleSize + tupleFromEnd[1] < maxSize and iteratorFromBegin < iteratorFromEnd: | |
20 lStringSize.append(tupleFromEnd[0]) | |
21 sumTupleSize += tupleFromEnd[1] | |
22 del lStringSizeTuplesSorted[iteratorFromEnd] | |
23 iteratorFromEnd -= 1 | |
24 tupleFromEnd = lStringSizeTuplesSorted[iteratorFromEnd] | |
25 lStringSizeList.append(lStringSize) | |
26 lStringSize = [tuple[0]] | |
27 sumTupleSize = tuple[1] | |
28 iteratorFromBegin += 1 | |
29 if lStringSize: | |
30 lStringSizeList.append(lStringSize) | |
31 return lStringSizeList |