Exemplo n.º 1
0
    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]))
Exemplo n.º 2
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))
Exemplo n.º 3
0
    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)
Exemplo n.º 4
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])
Exemplo n.º 5
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))
Exemplo n.º 6
0
    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)
Exemplo n.º 7
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])
Exemplo n.º 8
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]))
Exemplo n.º 9
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]))
Exemplo n.º 10
0
    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]))
Exemplo n.º 11
0
    def setup_class(self):
        """Setup class variables before any tests."""
        self.even_list = list(range(10))
        self.even_c_array = (c.c_uint32 * len(self.even_list))()
        self.even_c_array[:] = self.even_list

        self.odd_list = list(range(9))
        self.odd_c_array = (c.c_uint32 * len(self.odd_list))()
        self.odd_c_array[:] = self.odd_list

        self.unsorted_list = list(range(9))
        random.shuffle(self.unsorted_list)
        self.unsorted_c_array = (c.c_uint32 * len(self.unsorted_list))()
        self.unsorted_c_array[:] = self.unsorted_list

        self.empty_list = []
        self.empty_c_array = (c.c_uint32 * len(self.empty_list))()
        self.empty_c_array[:] = self.empty_list

        self.single_num_list = [10]
        self.single_num_c_array = (c.c_uint32 * len(self.single_num_list))()
        self.single_num_c_array[:] = self.single_num_list

        self.zero_list = [0] * 10
        self.zero_c_array = (c.c_uint32 * len(self.zero_list))()
        self.zero_c_array[:] = self.zero_list

        self.BCT = BM_coverageType_C()
        self.BCT.type = CT.C_MEAN
        self.BCT.upperCut = 10.0
        self.BCT.lowerCut = 10.0

        self.pBCT = c.POINTER(BM_coverageType_C)
        self.pBCT = c.pointer(self.BCT)

        self.CW = CWrapper(UT=True)