def testPileupMeanOutlierCoverage(self): """Verify computation of pileup outlier coverage.""" BCT = BM_coverageType_C() BCT.type = CT.P_MEAN_OUTLIER BCT.upperCut = 1.0 BCT.lowerCut = 1.0 pBCT = c.POINTER(BM_coverageType_C) pBCT = c.pointer(BCT) coverage = self.CW._estimate_P_MEAN_OUTLIER_Coverage(self.even_c_array, pBCT, len(self.even_list)) lower_bound = mean(self.even_list) - BCT.lowerCut * std(self.even_list) if lower_bound < 0: lower_bound = 0 upper_bound = mean(self.even_list) + BCT.upperCut * std(self.even_list) valid_indices = [i for i, x in enumerate(self.even_list) if (x >= lower_bound and x <= upper_bound)] np_even_list = array(self.even_list) assert_equals(coverage, mean(np_even_list[valid_indices])) coverage = self.CW._estimate_P_MEAN_OUTLIER_Coverage(self.odd_c_array, pBCT, len(self.odd_list)) lower_bound = mean(self.odd_list) - BCT.lowerCut * std(self.odd_list) if lower_bound < 0: lower_bound = 0 upper_bound = mean(self.odd_list) + BCT.upperCut * std(self.odd_list) valid_indices = [i for i, x in enumerate(self.odd_list) if (x >= lower_bound and x <= upper_bound)] np_odd_list = array(self.odd_list) assert_equals(coverage, mean(np_odd_list[valid_indices]))
def testPileupMeanTrimmedCoverageInvalidTrim(self): """Verify computation of pileup mean trimmed coverage when given an invalid trimming range.""" BCT = BM_coverageType_C() BCT.type = CT.P_MEAN_TRIMMED BCT.upperCut = 60.0 BCT.lowerCut = 60.0 pBCT = c.POINTER(BM_coverageType_C) pBCT = c.pointer(BCT) coverage = self.CW._estimate_P_MEAN_TRIMMED_Coverage(self.even_c_array, pBCT, len(self.even_list)) assert_true(isnan(coverage))
def testPileupMeanOutlierCoverageZeroStd(self): """Verify computation of pileup outlier coverage when given a std of zero.""" BCT = BM_coverageType_C() BCT.type = CT.P_MEAN_OUTLIER BCT.upperCut = 0.0 BCT.lowerCut = 0.0 pBCT = c.POINTER(BM_coverageType_C) pBCT = c.pointer(BCT) coverage = self.CW._estimate_P_MEAN_OUTLIER_Coverage(self.even_c_array, pBCT, len(self.even_list)) assert_equals(coverage, 0)
def testPileupMeanOutlierCoverageSingle(self): """Verify computation of pileup outlier coverage when given an array with a single element.""" BCT = BM_coverageType_C() BCT.type = CT.P_MEAN_OUTLIER BCT.upperCut = 1.0 BCT.lowerCut = 1.0 pBCT = c.POINTER(BM_coverageType_C) pBCT = c.pointer(BCT) coverage = self.CW._estimate_P_MEAN_OUTLIER_Coverage(self.single_num_c_array, self.pBCT, len(self.single_num_list)) assert_equals(coverage, self.single_num_list[0])
def testPileupMeanTrimmedCoverageInvalidTrim(self): """Verify computation of pileup mean trimmed coverage when given an invalid trimming range.""" BCT = BM_coverageType_C() BCT.type = CT.P_MEAN_TRIMMED BCT.upperCut = 60.0 BCT.lowerCut = 60.0 pBCT = c.POINTER(BM_coverageType_C) pBCT = c.pointer(BCT) coverage = self.CW._estimate_P_MEAN_TRIMMED_Coverage( self.even_c_array, pBCT, len(self.even_list)) assert_true(isnan(coverage))
def testPileupMeanOutlierCoverageZeroStd(self): """Verify computation of pileup outlier coverage when given a std of zero.""" BCT = BM_coverageType_C() BCT.type = CT.P_MEAN_OUTLIER BCT.upperCut = 0.0 BCT.lowerCut = 0.0 pBCT = c.POINTER(BM_coverageType_C) pBCT = c.pointer(BCT) coverage = self.CW._estimate_P_MEAN_OUTLIER_Coverage( self.even_c_array, pBCT, len(self.even_list)) assert_equals(coverage, 0)
def testPileupMeanOutlierCoverageSingle(self): """Verify computation of pileup outlier coverage when given an array with a single element.""" BCT = BM_coverageType_C() BCT.type = CT.P_MEAN_OUTLIER BCT.upperCut = 1.0 BCT.lowerCut = 1.0 pBCT = c.POINTER(BM_coverageType_C) pBCT = c.pointer(BCT) coverage = self.CW._estimate_P_MEAN_OUTLIER_Coverage( self.single_num_c_array, self.pBCT, len(self.single_num_list)) assert_equals(coverage, self.single_num_list[0])
def testPileupMeanTrimmedCoverageUnequalTrim(self): """Verify computation of pileup mean trimmed coverage when given an unequal trim percentages.""" BCT = BM_coverageType_C() BCT.type = CT.P_MEAN_TRIMMED BCT.upperCut = 10.0 BCT.lowerCut = 20.0 pBCT = c.POINTER(BM_coverageType_C) pBCT = c.pointer(BCT) coverage = self.CW._estimate_P_MEAN_TRIMMED_Coverage(self.even_c_array, pBCT, len(self.even_list)) trim_lower = int(BCT.lowerCut/100.0 * len(self.even_list)) + 1 trim_upper = len(self.even_list) - int(BCT.upperCut/100.0 * len(self.even_list)) - 1 assert_equals(coverage, mean(self.even_list[trim_lower:trim_upper]))
def testPileupMeanTrimmedCoverageUnequalTrim(self): """Verify computation of pileup mean trimmed coverage when given an unequal trim percentages.""" BCT = BM_coverageType_C() BCT.type = CT.P_MEAN_TRIMMED BCT.upperCut = 10.0 BCT.lowerCut = 20.0 pBCT = c.POINTER(BM_coverageType_C) pBCT = c.pointer(BCT) coverage = self.CW._estimate_P_MEAN_TRIMMED_Coverage( self.even_c_array, pBCT, len(self.even_list)) trim_lower = int(BCT.lowerCut / 100.0 * len(self.even_list)) + 1 trim_upper = len(self.even_list) - int( BCT.upperCut / 100.0 * len(self.even_list)) - 1 assert_equals(coverage, mean(self.even_list[trim_lower:trim_upper]))
def testPileupMeanOutlierCoverageUnequalStd(self): """Verify computation of pileup outlier coverage when given unequal standard deviations.""" BCT = BM_coverageType_C() BCT.type = CT.P_MEAN_OUTLIER BCT.upperCut = 1.0 BCT.lowerCut = 2.5 pBCT = c.POINTER(BM_coverageType_C) pBCT = c.pointer(BCT) coverage = self.CW._estimate_P_MEAN_OUTLIER_Coverage( self.even_c_array, pBCT, len(self.even_list)) lower_bound = mean(self.even_list) - BCT.lowerCut * std(self.even_list) if lower_bound < 0: lower_bound = 0 upper_bound = mean(self.even_list) + BCT.upperCut * std(self.even_list) valid_indices = [ i for i, x in enumerate(self.even_list) if (x >= lower_bound and x <= upper_bound) ] np_even_list = array(self.even_list) assert_equals(coverage, mean(np_even_list[valid_indices]))