コード例 #1
0
    def test_multiple_overlap(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base(epidb)

        sample_id = self.sample_ids[0]

        self.insert_experiment(epidb, "hg19_chr1_1", sample_id)
        self.insert_annotation(epidb, "Cpg Islands")

        res, qid_1 = epidb.select_annotations("Cpg Islands", "hg19", None,
                                              None, None, self.admin_key)
        self.assertSuccess(res, qid_1)
        res, req = epidb.count_regions(qid_1, self.admin_key)
        self.assertSuccess(res, req)
        count = self.count_request(req)
        self.assertEqual(count, 14)

        res, qid_2 = epidb.select_regions("hg19_chr1_1", "hg19", None, None,
                                          None, None, None, None, None,
                                          self.admin_key)
        self.assertEqual(res, "okay")
        res, req = epidb.count_regions(qid_2, self.admin_key)
        self.assertSuccess(res, req)
        count = self.count_request(req)
        self.assertEqual(count, 21)

        res, i_id = epidb.intersection(qid_1, qid_2, self.admin_key)
        self.assertEqual(res, "okay")
        res, req = epidb.count_regions(i_id, self.admin_key)
        self.assertSuccess(res, req)
        count = self.count_request(req)
        self.assertEqual(count, 3)

        res, i_id = epidb.intersection(qid_2, qid_2, self.admin_key)
        self.assertSuccess(res, i_id)
        res, req = epidb.count_regions(i_id, self.admin_key)
        self.assertSuccess(res, req)
        count = self.count_request(req)
        self.assertEqual(count, 21)

        res, i_id = epidb.intersection(qid_1, qid_1, self.admin_key)
        self.assertSuccess(res, i_id)
        res, req = epidb.count_regions(i_id, self.admin_key)
        self.assertSuccess(res, req)
        count = self.count_request(req)
        self.assertEqual(count, 14)

        res, i_id = epidb.intersection(i_id, i_id, self.admin_key)
        self.assertSuccess(res, i_id)
        res, req = epidb.count_regions(i_id, self.admin_key)
        self.assertSuccess(res, req)
        count = self.count_request(req)
        self.assertEqual(count, 14)
コード例 #2
0
    def test_load_bedgraph(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base(epidb)

        sample_id = self.sample_ids[0]
        regions_data = gzip.open("data/bedgraph/chr19.txt.gz").read()

        # adding two experiments with the same data should work
        res = epidb.add_experiment(
            "S0022IH2.ERX300681.H3K36me3.bwa.GRCh38.20150528.bedgraph", "hg19",
            "Methylation", sample_id, "tech1", "ENCODE", "desc1", regions_data,
            "bedgraph", {"md5sum": "afd4af5afd5afd4af5afd5afd4af5afd5"},
            self.admin_key)
        self.assertSuccess(res)

        (status, query_id) = epidb.select_regions(
            "#afd4af5afd5afd4af5afd5afd4af5afd5", None, None, None, None, None,
            "chr19", 49388217, 49417994, self.admin_key)

        self.assertSuccess(status, query_id)

        (status, input) = epidb.input_regions("hg19",
                                              "chr19\t49388217\t49417994",
                                              self.admin_key)
        self.assertSuccess(status, input)

        (status, query_overlap) = epidb.intersection(query_id, input,
                                                     self.admin_key)
        self.assertSuccess(status, query_overlap)

        (status, request_id) = epidb.get_regions(query_id,
                                                 "CHROMOSOME,START,END,VALUE",
                                                 self.admin_key)
        self.assertSuccess(status, request_id)
        (status,
         overlap_request_id) = epidb.get_regions(query_id,
                                                 "CHROMOSOME,START,END,VALUE",
                                                 self.admin_key)
        self.assertSuccess(status, overlap_request_id)

        by_select = self.get_regions_request(request_id)
        by_overlap = self.get_regions_request(overlap_request_id)

        self.assertEqual(by_overlap, by_select)
        self.assertTrue(len(by_select) > 0)

        (status, info) = epidb.info("#afd4af5afd5afd4af5afd5afd4af5afd5",
                                    self.admin_key)
        self.assertEquals(info[0]["_id"], "e1")
コード例 #3
0
  def test_intersect_tiling(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init_full(epidb)

    res, qid1 = epidb.tiling_regions(1000, "hg19", "chr1", self.admin_key)
    self.assertSuccess(res, qid1)

    res, qid2 = epidb.select_regions("hg19_chr1_1", "hg19", None, None, None, None, None, None, None, self.admin_key)
    self.assertSuccess(res, qid2)

    res, qid3 = epidb.intersection(qid1, qid2, self.admin_key)
    self.assertSuccess(res, qid3)

    res, req = epidb.get_regions(qid3, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)

    expected_regions = helpers.get_result("intersect_tiling")
    self.assertEqual(regions, expected_regions)
コード例 #4
0
  def test_intersection_two_genomes(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init_full(epidb)

    res, qid_1 = epidb.select_regions("hg19_chr1_1", ["hg19", "hg18"], None, None, None,
                                        None, None, None, None, self.admin_key)
    self.assertSuccess(res, qid_1)
    res, qid_2 = epidb.select_regions("hg18_chr1_1", ["hg18", "hg19"], None, None, None,
                                        None, None, None, None, self.admin_key)
    self.assertSuccess(res, qid_2)

    res, qid_3 = epidb.intersection(qid_1, qid_2, self.admin_key)
    self.assertSuccess(res, qid_3)

    res, req = epidb.get_regions(qid_3, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)

    expected_regions = helpers.get_result("intersection_multiple_genomes")
    self.assertEqual(regions, expected_regions)
コード例 #5
0
    def test_complex1(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_full(epidb)

        res, qid_1_1 = epidb.select_regions("hg19_chr1_1", "hg19", None, None,
                                            None, None, None, None, None,
                                            self.admin_key)
        #server.get_regions(qid_1_1, )

        self.assertSuccess(res, qid_1_1)
        res, qid_1_2 = epidb.select_regions("hg19_chr1_2", "hg19", None, None,
                                            None, None, None, None, None,
                                            self.admin_key)
        self.assertSuccess(res, qid_1_2)

        res, qid_2 = epidb.merge_queries(qid_1_1, qid_1_2, self.admin_key)
        self.assertSuccess(res, qid_2)

        res, regions = epidb.get_regions(qid_2, "CHROMOSOME,START,END",
                                         self.admin_key)
        self.assertSuccess(res, regions)

        res, qid_1_3 = epidb.select_regions("hg19_chr1_3", "hg19", None, None,
                                            None, None, None, None, None,
                                            self.admin_key)
        self.assertSuccess(res, qid_1_3)

        res, qid_5 = epidb.intersection(qid_2, qid_1_3, self.admin_key)
        self.assertSuccess(res, qid_5)

        res, req = epidb.get_regions(
            qid_5,
            "CHROMOSOME,START,END,NAME,SCORE,STRAND,SIGNAL_VALUE,P_VALUE,Q_VALUE,PEAK",
            self.admin_key)
        self.assertSuccess(res, req)
        regions = self.get_regions_request(req)

        expected_regions = helpers.get_result("complex1")
        self.assertEqual(
            regions.split("\n").sort(),
            expected_regions.split("\n").sort())
コード例 #6
0
    def test_overlap_simple(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base(epidb)

        # Test the intersect command
        data_one = "chr1\t3049996\t3050022\nchr1\t3050022\t3050040\nchr1\t3050040\t3050051\nchr1\t3050051\t3050126"
        region = "chr1\t3050022\t3050100"

        (s, q1) = epidb.input_regions("hg19", data_one, self.admin_key)
        self.assertSuccess(s, q1)

        (s, q_input) = epidb.input_regions("hg19", region, self.admin_key)
        self.assertSuccess(s, q_input)

        (s, q3) = epidb.intersection(q1, q_input, self.admin_key)
        self.assertSuccess(s, q3)

        (s, req) = epidb.get_regions(q3, "CHROMOSOME,START,END",
                                     self.admin_key)
        self.assertSuccess(s, req)
        regions = self.get_regions_request(req)
        self.assertEqual(
            regions,
            'chr1\t3050022\t3050040\nchr1\t3050040\t3050051\nchr1\t3050051\t3050126'
        )

        # Test the select annotation
        sample_id = self.sample_ids[0]
        res = epidb.add_annotation("exp1", "hg19", "desc1", data_one,
                                   "CHROMOSOME,START,END", None,
                                   self.admin_key)
        self.assertSuccess(res)
        (s, q1) = epidb.select_annotations("exp1", "hg19", "chr1", 3050022,
                                           3050100, self.admin_key)
        self.assertSuccess(s, q1)
        (s, req) = epidb.get_regions(q1, "CHROMOSOME,START,END",
                                     self.admin_key)
        self.assertSuccess(s, req)
        regions = self.get_regions_request(req)
        self.assertEqual(
            regions,
            'chr1\t3050022\t3050040\nchr1\t3050040\t3050051\nchr1\t3050051\t3050126'
        )

        # Test the select experiment
        sample_id = self.sample_ids[0]
        res = epidb.add_experiment("exp1", "hg19", "Methylation", sample_id,
                                   "tech1", "ENCODE", "desc1", data_one,
                                   "CHROMOSOME,START,END", None,
                                   self.admin_key)
        self.assertSuccess(res)

        (s, q1) = epidb.select_experiments("exp1", "chr1", 3050022, 3050100,
                                           self.admin_key)
        self.assertSuccess(s, q1)
        (s, req) = epidb.get_regions(q1, "CHROMOSOME,START,END",
                                     self.admin_key)
        self.assertSuccess(s, req)
        regions = self.get_regions_request(req)
        self.assertEqual(
            regions,
            'chr1\t3050022\t3050040\nchr1\t3050040\t3050051\nchr1\t3050051\t3050126'
        )

        (s, q1) = epidb.select_experiments("exp1", "chr1", None, None,
                                           self.admin_key)
        self.assertSuccess(s, q1)
        (s, q2) = epidb.aggregate(q1, q_input, "START", self.admin_key)
        self.assertSuccess(s, q2)
        (s, req) = epidb.get_regions(q2, "@AGG.MIN,@AGG.MAX,@AGG.COUNT",
                                     self.admin_key)
        self.assertSuccess(s, req)
        regions = self.get_regions_request(req)
        self.assertEqual(regions, '3050022.0000\t3050051.0000\t3')
コード例 #7
0
    def test_complex2(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_full(epidb)

        self.insert_experiment(epidb, "hg19_big_1")
        self.insert_experiment(epidb, "hg19_big_2")

        res, qid_1_1 = epidb.select_regions("hg19_big_1", "hg19", None, None,
                                            None, None, None, 1000000, 3000000,
                                            self.admin_key)
        self.assertSuccess(res, qid_1_1)
        res, req = epidb.count_regions(qid_1_1, self.admin_key)
        self.assertSuccess(res, req)
        c = self.count_request(req)

        res, qid_1_2 = epidb.select_regions(
            "hg19_big_1", "hg19", None, None, None, None,
            ["chr1", "chr3", "chr11", "chrX", "chr9"], None, None,
            self.admin_key)
        self.assertSuccess(res, qid_1_2)
        res, req = epidb.count_regions(qid_1_2, self.admin_key)
        self.assertSuccess(res, req)
        c = self.count_request(req)

        # this gives us regions from 1,000,000 to 3,000,000 on chromosomes chr1, chr3, chr9, chr11, chrY
        res, qid_2_1 = epidb.intersection(qid_1_1, qid_1_2, self.admin_key)
        self.assertSuccess(res, qid_2_1)
        res, req = epidb.count_regions(qid_2_1, self.admin_key)
        self.assertSuccess(res, req)
        c = self.count_request(req)
        self.assertEqual(c, 247)

        res, qid_2_2 = epidb.tiling_regions(1000, "hg19",
                                            ["chr1", "chr2", "chr15", "chrX"],
                                            self.admin_key)
        self.assertSuccess(res, qid_2_2)
        res, req = epidb.count_regions(qid_2_2, self.admin_key)
        self.assertSuccess(res, req)
        c = self.count_request(req)

        res, qid_3_1 = epidb.merge_queries(qid_2_1, qid_2_2, self.admin_key)
        self.assertSuccess(res, qid_3_1)
        res, req = epidb.count_regions(qid_3_1, self.admin_key)
        self.assertSuccess(res, req)
        c = self.count_request(req)

        res, qid_4_1 = epidb.filter_regions(qid_3_1, "START", ">=", "2000000",
                                            "number", self.admin_key)
        self.assertSuccess(res, qid_4_1)
        res, req = epidb.count_regions(qid_4_1, self.admin_key)
        self.assertSuccess(res, req)
        c = self.count_request(req)

        res, qid_4_2 = epidb.select_regions("hg19_big_2", "hg19", None, None,
                                            None, None, ["chr1", "chrX"], None,
                                            None, self.admin_key)
        self.assertSuccess(res, qid_4_2)
        (res, qid_4_2_cached) = epidb.query_cache(qid_4_2, True,
                                                  self.admin_key)
        res, req = epidb.count_regions(qid_4_2_cached, self.admin_key)
        self.assertSuccess(res, req)
        c = self.count_request(req)
        self.assertEqual(c, 8961)

        res, qid_5_1 = epidb.intersection(qid_4_1, qid_4_2_cached,
                                          self.admin_key)
        self.assertSuccess(res, qid_5_1)
        res, req = epidb.count_regions(qid_5_1, self.admin_key)
        self.assertSuccess(res, req)
        count = self.count_request(req)

        self.assertEqual(count, 14356)

        res, qid_6_1 = epidb.filter_regions(qid_5_1, "END", "<", "2200000",
                                            "number", self.admin_key)
        self.assertSuccess(res, qid_6_1)

        (res, qid_6_1_cached) = epidb.query_cache(qid_6_1, True,
                                                  self.admin_key)
        res, req = epidb.count_regions(qid_6_1, self.admin_key)
        self.assertSuccess(res, req)
        count = self.count_request(req)
        self.assertEqual(count, 52)

        res, req = epidb.get_regions(
            qid_6_1,
            "CHROMOSOME,START,END,NAME,SCORE,STRAND,SIGNAL_VALUE,P_VALUE,Q_VALUE,PEAK,@NAME",
            self.admin_key)
        self.assertSuccess(res, req)
        regions = self.get_regions_request(req)

        expected_regions = helpers.get_result("complex2")
        self.assertEqual(regions, expected_regions)