def _compute(self): tv1 = self._children[0].getResult() allSortedCodedEvents = self._children[1].getResult() allEventCodes = (allSortedCodedEvents % 4) - 2 allSortedDecodedEvents = allSortedCodedEvents / 4 from numpy.ma import add cumulativeCoverStatus = add.accumulate(allEventCodes) assert len(cumulativeCoverStatus) == len(allSortedDecodedEvents), str( len(allSortedDecodedEvents)) unionStartList = [] unionEndList = [] startedFlag = False for i, cumVal in enumerate(cumulativeCoverStatus): if cumVal == 1 and not startedFlag: startPos = allSortedDecodedEvents[i] startedFlag = True elif cumVal == 0: if startPos: unionStartList.append(startPos) unionEndList.append(allSortedDecodedEvents[i]) startPos = None startedFlag = False return [ GenomeElement(start=x, end=y) for x, y in zip(unionStartList, unionEndList) ]
def randomSelect(item_list): ''' 随机选择带权重的list中的某个item,并返回其下标(item_list权重和可以不为1) :param item_list: :return: ''' accu_item_list = add.accumulate(item_list) # print(type(accu_item_list)) random_select = random.random() * accu_item_list[-1] for accu_item_id, accu_item in enumerate(accu_item_list): if accu_item > random_select: return accu_item_id
def test_testAddSumProd(self): # Test add, sum, product. (x, y, a10, m1, m2, xm, ym, z, zm, xf, s) = self.d assert_(eq(np.add.reduce(x), add.reduce(x))) assert_(eq(np.add.accumulate(x), add.accumulate(x))) assert_(eq(4, sum(array(4), axis=0))) assert_(eq(4, sum(array(4), axis=0))) assert_(eq(np.sum(x, axis=0), sum(x, axis=0))) assert_(eq(np.sum(filled(xm, 0), axis=0), sum(xm, axis=0))) assert_(eq(np.sum(x, 0), sum(x, 0))) assert_(eq(np.product(x, axis=0), product(x, axis=0))) assert_(eq(np.product(x, 0), product(x, 0))) assert_(eq(np.product(filled(xm, 1), axis=0), product(xm, axis=0))) if len(s) > 1: assert_(eq(np.concatenate((x, y), 1), concatenate((xm, ym), 1))) assert_(eq(np.add.reduce(x, 1), add.reduce(x, 1))) assert_(eq(np.sum(x, 1), sum(x, 1))) assert_(eq(np.product(x, 1), product(x, 1)))
def test_testAddSumProd(self): # Test add, sum, product. (x, y, a10, m1, m2, xm, ym, z, zm, xf, s) = self.d self.assertTrue(eq(np.add.reduce(x), add.reduce(x))) self.assertTrue(eq(np.add.accumulate(x), add.accumulate(x))) self.assertTrue(eq(4, sum(array(4), axis=0))) self.assertTrue(eq(4, sum(array(4), axis=0))) self.assertTrue(eq(np.sum(x, axis=0), sum(x, axis=0))) self.assertTrue(eq(np.sum(filled(xm, 0), axis=0), sum(xm, axis=0))) self.assertTrue(eq(np.sum(x, 0), sum(x, 0))) self.assertTrue(eq(np.product(x, axis=0), product(x, axis=0))) self.assertTrue(eq(np.product(x, 0), product(x, 0))) self.assertTrue(eq(np.product(filled(xm, 1), axis=0), product(xm, axis=0))) if len(s) > 1: self.assertTrue(eq(np.concatenate((x, y), 1), concatenate((xm, ym), 1))) self.assertTrue(eq(np.add.reduce(x, 1), add.reduce(x, 1))) self.assertTrue(eq(np.sum(x, 1), sum(x, 1))) self.assertTrue(eq(np.product(x, 1), product(x, 1)))