Ejemplo n.º 1
0
    def test_genotyping_gene_11(self):
        pt_no_contaim = PresenceTyper(expected_depths=[20])
        pt_contaim = PresenceTyper(
            expected_depths=[20],
            contamination_depths=[10])

        pc = ProbeCoverage(min_depth=10,
                           percent_coverage=100,
                           median_depth=10)
        s = SequenceProbeCoverage(name="A123T",
                                  probe_coverage=pc,
                                  percent_coverage_threshold=80

                                  )
        call = pt_no_contaim.type(s)
        assert call.genotype == [1, 1]

        call = pt_contaim.type(s)
        assert call.genotype == [0, 0]

        pc = ProbeCoverage(min_depth=10,
                           percent_coverage=100,
                           median_depth=30)
        s = SequenceProbeCoverage(name="A123T",
                                  probe_coverage=pc,
                                  percent_coverage_threshold=80

                                  )
        call = pt_no_contaim.type(s)
        assert call.genotype == [1, 1]

        call = pt_contaim.type(s)
        assert call.genotype == [1, 1]

        pc = ProbeCoverage(min_depth=10,
                           percent_coverage=100,
                           median_depth=20)
        s = SequenceProbeCoverage(name="A123T",
                                  probe_coverage=pc,
                                  percent_coverage_threshold=80

                                  )
        call = pt_no_contaim.type(s)
        assert call.genotype == [1, 1]

        call = pt_contaim.type(s)
        assert call.genotype == [1, 1]
Ejemplo n.º 2
0
 def test_base_case_no_coverage(self):
     pc = ProbeCoverage(min_depth=0,
                        percent_coverage=0,
                        median_depth=0)
     s1 = SequenceProbeCoverage(name="A123T",
                                probe_coverage=pc
                                )
     call = self.pt.type(s1)
     assert call.genotype == [0, 0]
Ejemplo n.º 3
0
    def test_resistotype_gene_at_high_CN(self):

        pc = ProbeCoverage(min_depth=100,
                           percent_coverage=100,
                           median_depth=1000)
        s = SequenceProbeCoverage(name="A123T",
                                  probe_coverage=pc,
                                  percent_coverage_threshold=80

                                  )
        call = self.pt.type(s)
        assert call.genotype == [1, 1]
Ejemplo n.º 4
0
    def test_genotyping_gene_01(self):

        pc = ProbeCoverage(min_depth=100,
                           percent_coverage=82,
                           median_depth=2)
        s = SequenceProbeCoverage(name="A123T",
                                  probe_coverage=pc,
                                  percent_coverage_threshold=80

                                  )
        call = self.pt.type(s)
        assert call.genotype == [0, 1]
Ejemplo n.º 5
0
    def _parse_seq_panel(self, row):
        allele, median_depth, min_depth, percent_coverage, k_count = self._parse_summary_covgs_row(
            row)
        probe_coverage = ProbeCoverage(percent_coverage=percent_coverage,
                                       median_depth=median_depth,
                                       min_depth=min_depth,
                                       k_count=k_count)

        allele_name = allele.split('?')[0]
        params = get_params(allele)
        panel_type = params.get("panel_type", "presence")
        name = params.get('name')
        version = params.get('version', '1')
        if panel_type in ["variant", "presence"]:
            sequence_probe_coverage = SequenceProbeCoverage(
                name=name,
                probe_coverage=probe_coverage,
                version=version,
                length=params.get("length"))
            try:
                self.covgs[panel_type][name][version] = sequence_probe_coverage
            except KeyError:
                self.covgs[panel_type][name] = {}
                self.covgs[panel_type][name][version] = sequence_probe_coverage

        else:
            # Species panels are treated differently
            l = int(params.get("length", -1))
            try:
                self.covgs[panel_type][name]["total_bases"] += l
                if percent_coverage > 75 and median_depth > 0:
                    self.covgs[panel_type][name]["percent_coverage"].append(
                        percent_coverage)
                    self.covgs[panel_type][name]["length"].append(l)
                    self.covgs[panel_type][name]["median"].append(median_depth)
            except KeyError:
                if panel_type not in self.covgs:
                    self.covgs[panel_type] = {}
                self.covgs[panel_type][name] = {}
                self.covgs[panel_type][name]["total_bases"] = l
                if percent_coverage > 75 and median_depth > 0:
                    self.covgs[panel_type][name]["percent_coverage"] = [
                        percent_coverage
                    ]
                    self.covgs[panel_type][name]["length"] = [l]
                    self.covgs[panel_type][name]["median"] = [median_depth]
                else:
                    self.covgs[panel_type][name]["percent_coverage"] = []
                    self.covgs[panel_type][name]["length"] = []
                    self.covgs[panel_type][name]["median"] = []
Ejemplo n.º 6
0
    def test_low_coverage(self):

        pc = ProbeCoverage(min_depth=100,
                           percent_coverage=16,
                           median_depth=16)
        s = SequenceProbeCoverage(name="A123T",
                                  probe_coverage=pc,
                                  percent_coverage_threshold=80

                                  )
        call = self.pt_10.type(s)
        assert call.genotype == [0, 0]

        pc = ProbeCoverage(min_depth=100,
                           percent_coverage=80,
                           median_depth=16)
        s = SequenceProbeCoverage(name="A123T",
                                  probe_coverage=pc,
                                  percent_coverage_threshold=80

                                  )
        call = self.pt_10.type(s)
        assert call.genotype == [1, 1]