def test_filter_regions(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init_full(epidb)

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

    res, qid2 = epidb.filter_regions(qid, "START",  ">=", "875400 ", "number", self.admin_key)
    self.assertSuccess(res, qid2)

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

    # Test filter with string values
    expected_regions = helpers.get_result("filter_ge_875400")
    self.assertEqual(regions, expected_regions)

    res, qid3 = epidb.filter_regions(qid, "STRAND",  "==", "+", "string", self.admin_key)
    self.assertSuccess(res, qid3)

    res, req = epidb.get_regions(qid3, "CHROMOSOME,START,END,STRAND", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)
    self.assertEqual(regions, 'chr1\t713240\t713390\t+\nchr1\t713900\t714050\t+\nchr1\t714160\t714310\t+\nchr1\t714540\t714690\t+\nchr1\t715060\t715210\t+\nchr1\t762060\t762210\t+\nchr1\t839540\t839690\t+\nchr1\t840080\t840230\t+\nchr1\t860240\t860390\t+\nchr1\t875400\t875550\t+\nchr1\t876180\t876330\t+')

    res, qid3 = epidb.filter_regions(qid, "STRAND",  "!=", "+", "string", self.admin_key)
    self.assertSuccess(res, qid3)

    res, req = epidb.get_regions(qid3, "CHROMOSOME,START,END,STRAND", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)
    self.assertEqual(regions, 'chr1\t713520\t713670\t-\nchr1\t761180\t761330\t-\nchr1\t762420\t762570\t.\nchr1\t762820\t762970\t-\nchr1\t763020\t763170\t-\nchr1\t840600\t840750\t-\nchr1\t858880\t859030\t.\nchr1\t859600\t859750\t.\nchr1\t861040\t861190\t-\nchr1\t875900\t876050\t-')
Exemplo n.º 2
0
    def test_multiple_genomes_2(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base()

        sample_id = self.sample_ids[0]

        format = "CHROMOSOME,START,END"

        self.insert_experiment(epidb, "hg18_chr1_1", sample_id)
        self.insert_experiment(epidb, "hg19_chr1_1", sample_id)
        self.insert_experiment(epidb, "hg19_chr1_2", sample_id)

        # retrieve every paired combination
        combinations = [(["hg18_chr1_1", "hg19_chr1_2"], "multiple_genomes"),
                        (["hg18_chr1_1", "hg19_chr1_1"], "multiple_genomes_2"),
                        (["hg19_chr1_1",
                          "hg19_chr1_2"], "multiple_experiments")]

        for (experiments, result_regions) in combinations:
            res, qid = epidb.select_regions(experiments, ["hg18", "hg19"],
                                            None, None, None, None, None, None,
                                            None, self.admin_key)
            self.assertSuccess(res, qid)
            res, req = epidb.get_regions(qid, format, self.admin_key)
            self.assertSuccess(res, req)
            regions = self.get_regions_request(req)

            regions_expected = helpers.get_result(result_regions)
            self.assertEqual(regions, regions_expected)
  def test_merge_tiling(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init_full(epidb)

    res, qid1 = epidb.tiling_regions(10000, "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)

    # limit the tilings on the range of the experiment
    res, qid3 = epidb.filter_regions(qid1, "START",  ">=", "713240", "number", self.admin_key)
    self.assertSuccess(res, qid3)
    res, qid4 = epidb.filter_regions(qid3, "END",  "<=", "876330", "number", self.admin_key)
    self.assertSuccess(res, qid4)

    res, qid5 = epidb.merge_queries(qid4, qid2, self.admin_key)
    self.assertSuccess(res, qid5)

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

    expected_regions = helpers.get_result("merge_tiling")
    self.assertEqual(regions, expected_regions)
Exemplo n.º 4
0
    def test_multiple_genomes(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base()

        sample_id = self.sample_ids[0]

        format = "CHROMOSOME,START,END"

        self.insert_experiment(epidb, "hg18_chr1_1", sample_id)
        self.insert_experiment(epidb, "hg19_chr1_2", sample_id)

        multiple_genomes_regions = helpers.get_result("multiple_genomes")

        # there was a bug in internal merge procedure triggered by the order of genomes
        for genomes in [["hg19", "hg18"], ["hg18", "hg19"]]:

            res, qid = epidb.select_regions(["hg18_chr1_1", "hg19_chr1_2"],
                                            genomes, None, None, None, None,
                                            None, None, None, self.admin_key)
            self.assertSuccess(res, qid)

            res, req = epidb.get_regions(qid, format, self.admin_key)
            self.assertSuccess(res, req)
            regions = self.get_regions_request(req)

            self.assertEqual(regions, multiple_genomes_regions)
Exemplo n.º 5
0
    def test_experiment_name_metacolumn2(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base()

        self.insert_experiment(epidb, "hg19_chr1_1")
        self.insert_experiment(epidb, "hg19_chr1_2")

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

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

        expected = helpers.get_result("experiment_name_multiple_experiments")
        res, req = epidb.get_regions(qid3, "CHROMOSOME,START,END,@NAME",
                                     self.admin_key)
        self.assertSuccess(res, req)
        regions = self.get_regions_request(req)
        l_regions = regions.split("\n")
        l_expected = expected.split("\n")
        self.assertEqual(set(l_regions), set(l_expected))
Exemplo n.º 6
0
    def test_chromosome_explicit(self):
        # regression test: chromosome was put in the first column no matter
        # what the format string specified

        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base()

        self.insert_experiment(epidb, "hg19_chr1_1")

        (s, m) = epidb.create_column_type_simple("foobar", "", "string",
                                                 self.admin_key)
        self.assertSuccess(s, m)

        full_experiment_regions = helpers.get_result("full_experiment_regions")

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

        fmt = "foobar,START,END,NAME,SCORE,STRAND,SIGNAL_VALUE,P_VALUE,Q_VALUE,PEAK"
        res, req = epidb.get_regions(qid, fmt, self.admin_key)
        self.assertSuccess(res, req)
        regions = self.get_regions_request(req)
        self.assertNotEqual(regions, full_experiment_regions)

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

        # leave out chromosome entirely
        regions_wo_chr = helpers.get_result("full_experiment_regions_wo_chr")

        # Creating another column, named NAME, that in the experiment is name.
        # This column should return empty.
        (s, m) = epidb.create_column_type_simple("COISA", "", "string",
                                                 self.admin_key)
        self.assertSuccess(s, m)

        fmt = "START,END,COISA,SCORE,STRAND,SIGNAL_VALUE,P_VALUE,Q_VALUE,PEAK"
        res, req = epidb.get_regions(qid, fmt, self.admin_key)
        regions = self.get_regions_request(req)

        self.assertSuccess(res, regions)
        self.assertEqual(regions, regions_wo_chr)
Exemplo n.º 7
0
    def test_minimum_parameters(self):
        # select_regions needs at least one of
        # experiment name, epigenetic_mark, sample, technique or project
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base()

        sample_id = self.sample_ids[0]

        self.insert_experiment(epidb, "hg19_chr1_1", sample_id)

        # none of them: should fail
        res = epidb.select_regions(None, None, None, None, None, None, None,
                                   None, None, self.admin_key)
        self.assertFailure(res)

        res = epidb.select_regions(None, None, "Methylation", None, None, None,
                                   None, None, None, self.admin_key)
        self.assertFailure(res)

        res = epidb.select_regions(None, None, None, sample_id, None, None,
                                   None, None, None, self.admin_key)
        self.assertFailure(res)

        res = epidb.select_regions(None, None, None, None, "ENCODE", None,
                                   None, None, None, self.admin_key)
        self.assertFailure(res)

        res = epidb.select_regions(None, None, None, None, None, "tech1", None,
                                   None, None, self.admin_key)
        self.assertFailure(res)

        # at least one: should pass
        expected_regions = helpers.get_result("hg19_chr1_1_output")
        format = "CHROMOSOME,START,END,NAME,SCORE,STRAND,SIGNAL_VALUE,P_VALUE,Q_VALUE,PEAK"

        argument_combinations = [
            (None, "hg19", None, sample_id, None, None, None, None, None),
            ("hg19_chr1_1", "hg19", None, None, None, None, None, None, None),
            (None, "hg19", None, None, None, "ENCODE", None, None, None),
            (None, "hg19", None, None, "tech1", None, None, None, None),
            (None, "hg19", "Methylation", None, None, None, None, None, None)
        ]

        for args in argument_combinations:
            args = args + (self.admin_key, )

            res, qid = epidb.select_regions(*args)
            self.assertSuccess(res, qid)

            res, req = epidb.get_regions(qid, format, self.admin_key)
            self.assertSuccess(res, req)
            regions = self.get_regions_request(req)
            self.assertEqual(regions, expected_regions)
  def test_metacolumn_sequence(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init_base()

    sequence = open("data/genomes/chromosomes/chrM.fa").read()
    res = epidb.upload_chromosome("hg19", "chrM", sequence, self.admin_key)
    self.assertSuccess(res)

    res, qid = epidb.tiling_regions(10000, "hg19", "chrM", self.admin_key)
    self.assertSuccess(res, qid)

    expected = helpers.get_result("experiment_name_custom_sequence")
    res, req = epidb.get_regions(qid, "CHROMOSOME,START,END,@NAME,@LENGTH,@SEQUENCE", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)
    self.assertEqual(regions, expected)
  def test_filter_tiling(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init_base()

    res, qid = epidb.tiling_regions(10000, "hg19", "chr1", self.admin_key)
    self.assertSuccess(res, qid)

    res, qid2 = epidb.filter_regions(qid, "END",  "<=", "100000", "number", self.admin_key)
    self.assertSuccess(res, qid2)

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

    expected_regions = helpers.get_result("filter_tiling")
    self.assertEqual(regions, expected_regions)
Exemplo n.º 10
0
    def test_select_full_experiment(self, format=None):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base()

        sample_id = self.sample_ids[0]

        self.insert_experiment(epidb, "hg19_chr1_1", sample_id)
        full_experiment_regions = helpers.get_result("hg19_chr1_1_output")
        region_count = len(full_experiment_regions.split("\n"))

        format = "CHROMOSOME,START,END,NAME,SCORE,STRAND,SIGNAL_VALUE,P_VALUE,Q_VALUE,PEAK"

        # test to retrieve the whole data with all parameters of the experiment
        # set or not set
        argument_combinations = [
            ("hg19_chr1_1", "hg19", "Methylation", sample_id, "tech1",
             "ENCODE", "chr1", 713240, 876330),
            ("hg19_chr1_1", "hg19", "Methylation", sample_id, "tech1",
             "ENCODE", "chr1", 713240, None),
            ("hg19_chr1_1", "hg19", "Methylation", sample_id, "tech1",
             "ENCODE", "chr1", None, None),
            ("hg19_chr1_1", "hg19", "Methylation", sample_id, "tech1",
             "ENCODE", None, None, None),
            ("hg19_chr1_1", "hg19", "Methylation", sample_id, "tech1", None,
             None, None, None),
            ("hg19_chr1_1", "hg19", "Methylation", sample_id, None, None, None,
             None, None),
            ("hg19_chr1_1", "hg19", "Methylation", None, None, None, None,
             None, None),
            ("hg19_chr1_1", "hg19", None, None, None, None, None, None, None)
        ]

        for args in argument_combinations:
            args = args + (self.admin_key, )

            res, qid = epidb.select_regions(*args)
            self.assertSuccess(res, qid)

            res, req = epidb.count_regions(qid, self.admin_key)
            self.assertSuccess(res, req)
            count = self.count_request(req)
            self.assertEqual(count, region_count)

            res, req = epidb.get_regions(qid, format, self.admin_key)
            self.assertSuccess(res, req)
            regions = self.get_regions_request(req)
            self.assertEqual(regions, full_experiment_regions)
  def test_filter_two_genomes(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init_full(epidb)

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

    res, qid2 = epidb.filter_regions(qid, "START",  ">=", "875400 ", "number", self.admin_key)
    self.assertSuccess(res, qid2)

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

    expected_regions = helpers.get_result("filter_multiple_genomes_ge_875400")

    self.assertEqual(regions, expected_regions)
Exemplo n.º 12
0
    def test_retrieve_with_defaults(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base()

        self.insert_experiment(epidb, "hg19_chr1_1")
        expected_regions = helpers.get_result("hg19_chr1_1_output")

        format = "CHROMOSOME,START,END,NAME,SCORE,STRAND,SIGNAL_VALUE,P_VALUE,Q_VALUE,PEAK"

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

        res, req = epidb.get_regions(qid, format, self.admin_key)
        self.assertSuccess(res, req)
        regions = self.get_regions_request(req)
        self.assertEqual(regions, expected_regions)
Exemplo n.º 13
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)
Exemplo n.º 14
0
    def test_experiment_name_metacolumn(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base()

        self.insert_experiment(epidb, "hg19_chr1_1")

        expected_regions = helpers.get_result("experiment_name_metacolumn")

        format = "CHROMOSOME,START,END,@NAME"

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

        res, req = epidb.get_regions(qid, format, self.admin_key)
        self.assertSuccess(res, req)
        regions = self.get_regions_request(req)
        self.assertEqual(regions, expected_regions)
Exemplo n.º 15
0
    def test_argument_normalization(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base()

        sample_id = self.sample_ids[0]

        self.insert_experiment(epidb, "hg19_chr1_1", sample_id)
        full_experiment_regions = helpers.get_result("full_experiment_regions")

        format = "CHROMOSOME,START,END,NAME,SCORE,STRAND,SIGNAL_VALUE,P_VALUE,Q_VALUE,PEAK"

        res, qid = epidb.select_regions("HG19_CHR1_1", "hg19", "methylation",
                                        sample_id, " Tech1", "ENCode ", "chr1",
                                        713240, 876330, self.admin_key)
        self.assertSuccess(res, qid)

        res, req = epidb.get_regions(qid, format, self.admin_key)
        self.assertSuccess(res, req)
        regions = self.get_regions_request(req)
        self.assertEqual(regions, full_experiment_regions)
Exemplo n.º 16
0
    def test_select_range(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base()

        sample_id = self.sample_ids[0]

        format = "CHROMOSOME,START,END"

        self.insert_experiment(epidb, "hg19_chr1_1", sample_id)
        range_regions = helpers.get_result("range_760k_875k")

        res, qid = epidb.select_regions("hg19_chr1_1", "hg19", None, None,
                                        None, None, None, 760000, 875000,
                                        self.admin_key)
        self.assertSuccess(res, qid)

        res, req = epidb.get_regions(qid, format, self.admin_key)
        self.assertSuccess(res, req)
        regions = self.get_regions_request(req)
        self.assertEqual(regions, range_regions)
Exemplo n.º 17
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)
Exemplo n.º 18
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())
Exemplo n.º 19
0
    def test_multiple_experiments(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base()

        sample_id = self.sample_ids[0]

        format = "CHROMOSOME,START,END"

        self.insert_experiment(epidb, "hg19_chr1_1", sample_id)
        self.insert_experiment(epidb, "hg19_chr1_2", sample_id)
        multiple_experiments_regions = helpers.get_result(
            "multiple_experiments")

        res, qid = epidb.select_experiments(["hg19_chr1_1", "hg19_chr1_2"],
                                            None, None, None, self.admin_key)
        self.assertSuccess(res, qid)

        res, req = epidb.get_regions(qid, format, self.admin_key)
        self.assertSuccess(res, req)
        regions = self.get_regions_request(req)

        self.assertEqual(regions, multiple_experiments_regions)
Exemplo n.º 20
0
    def test_merge_queries(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_full(epidb)

        res, qid_1 = epidb.select_experiments("hg19_chr1_1", None, 760000,
                                              860000, self.admin_key)
        self.assertSuccess(res, qid_1)

        res, qid_2 = epidb.select_regions("hg19_chr1_2", "hg19", None, None,
                                          None, None, None, 760000, 860000,
                                          self.admin_key)
        self.assertSuccess(res, qid_2)

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

        expected_regions = helpers.get_result("merge_760k_860k")

        res, req = epidb.get_regions(qid_3, "CHROMOSOME,START,END",
                                     self.admin_key)
        self.assertSuccess(res, req)
        regions = self.get_regions_request(req)
        self.assertEqual(regions, expected_regions)
Exemplo n.º 21
0
  def test_overlap(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init_full(epidb)


    ##### SET 1 ######
    res, qid_1 = epidb.select_regions("hg19_chr1_1", "hg19", None, None, None,
                                      None, None, None, None, self.admin_key)
    self.assertSuccess(res, qid_1)
    res, qid_2 = epidb.select_regions("hg19_chr1_2", "hg19", None, None, None,
                                      None, None, None, None, self.admin_key)
    self.assertSuccess(res, qid_2)

    res, qid_3 = epidb.overlap(qid_1, qid_2, True, 0, "bp", 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")
    self.assertEqual(regions, expected_regions)

    res, qid_31 = epidb.overlap(qid_1, qid_2, True, 165, "bp", self.admin_key)
    self.assertSuccess(res, qid_31)
    res, req = epidb.get_regions(qid_31, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)

    expected_regions = """chr1\t713240\t713390
chr1\t713900\t714050
chr1\t714160\t714310
chr1\t715060\t715210
chr1\t762420\t762570
chr1\t840080\t840230
chr1\t840600\t840750
chr1\t858880\t859030
chr1\t859600\t859750
chr1\t860240\t860390
chr1\t875900\t876050"""

    self.assertEqual(regions, expected_regions)

    res, qid_4 = epidb.overlap(qid_1, qid_2, False, 0, "bp", self.admin_key)
    self.assertSuccess(res, qid_4)
    res, req = epidb.get_regions(qid_4, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions2 = self.get_regions_request(req)

    expected = """chr1	761180	761330
chr1	763020	763170
chr1	839540	839690
chr1	875400	875550
chr1	876180	876330"""

    self.assertEquals(regions2, expected)



    res, qid_41 = epidb.overlap(qid_1, qid_2, False, 0, "bp", self.admin_key)
    self.assertSuccess(res, qid_41)
    res, req = epidb.get_regions(qid_41, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions2 = self.get_regions_request(req)

    expected = """chr1	761180	761330
chr1	763020	763170
chr1	839540	839690
chr1	875400	875550
chr1	876180	876330"""


    res, qid_41 = epidb.overlap(qid_1, qid_2, False, 0, "%", self.admin_key)
    self.assertSuccess(res, qid_41)
    res, req = epidb.get_regions(qid_41, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions2 = self.get_regions_request(req)

    expected = """chr1	761180	761330
chr1	763020	763170
chr1	839540	839690
chr1	875400	875550
chr1	876180	876330"""

    self.assertEquals(regions2, expected)

    res, qid_5 = epidb.overlap(qid_1, qid_2, False, 350, "bp", self.admin_key)
    self.assertSuccess(res, qid_5)
    res, req = epidb.get_regions(qid_5, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)

    expected = """chr1	761180	761330
chr1	763020	763170
chr1	875400	875550"""

    self.assertEquals(regions, expected)

    res, qid_6 = epidb.overlap(qid_1, qid_2, False, 500, "%", self.admin_key)
    self.assertSuccess(res, qid_6)
    res, req = epidb.get_regions(qid_6, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)
    self.assertEquals(regions, "chr1\t763020\t763170")


    ##### SET 2 ######
    res, q1 = epidb.input_regions("hg19", "chr1\t1000\t1010\nchr1\t1100\t1110\nchr1\t1200\t1210\nchr1\t1300\t1310\nchr1\t1400\t1410\nchr1\t1500\t1510", self.admin_key)
    self.assertSuccess(res, q1)

    res, q2 = epidb.input_regions("hg19", "chr1\t1011\t1020\nchr1\t1111\t1120\nchr1\t1211\t1220\nchr1\t1311\t1320\nchr1\t1411\t1420\nchr1\t1511\t1520", self.admin_key)
    self.assertSuccess(res, q2)


    res, q3 = epidb.overlap(q1, q2, False, 0, "bp", self.admin_key)
    self.assertSuccess(res, q3)
    res, req = epidb.get_regions(q3, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)
    expected = 'chr1\t1000\t1010\nchr1\t1100\t1110\nchr1\t1200\t1210\nchr1\t1300\t1310\nchr1\t1400\t1410\nchr1\t1500\t1510'
    self.assertEquals(regions, expected)


    res, q3 = epidb.overlap(q1, q2, False, 20, "%", self.admin_key)
    self.assertSuccess(res, q3)
    res, req = epidb.get_regions(q3, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)
    expected = ''
    self.assertEquals(regions, expected)


    res, q3 = epidb.overlap(q1, q2, False, 1, "%", self.admin_key)
    self.assertSuccess(res, q3)
    res, req = epidb.get_regions(q3, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)
    expected = 'chr1\t1000\t1010\nchr1\t1100\t1110\nchr1\t1200\t1210\nchr1\t1300\t1310\nchr1\t1400\t1410\nchr1\t1500\t1510'
    self.assertEquals(regions, expected)

    res, q3 = epidb.overlap(q2, q1, False, 0, "bp", self.admin_key)
    self.assertSuccess(res, q3)
    res, req = epidb.get_regions(q3, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)
    self.assertEquals(regions, 'chr1\t1011\t1020\nchr1\t1111\t1120\nchr1\t1211\t1220\nchr1\t1311\t1320\nchr1\t1411\t1420\nchr1\t1511\t1520')


    res, q4 = epidb.input_regions("hg19", "chr1\t1000\t1010\nchr1\t1200\t1210\nchr1\t1300\t1310", self.admin_key)
    self.assertSuccess(res, q4)
    res, q5 = epidb.input_regions("hg19", "chr1\t1011\t1020\nchr1\t1111\t1120\nchr1\t1211\t1220\nchr1\t1311\t1320\nchr1\t1411\t1420\nchr1\t1511\t1520", self.admin_key)
    self.assertSuccess(res, q5)

    res, q6 = epidb.overlap(q4, q5, False, 0, "bp", self.admin_key)
    self.assertSuccess(res, q6)
    res, req = epidb.get_regions(q6, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)
    self.assertEquals(regions, 'chr1\t1000\t1010\nchr1\t1200\t1210\nchr1\t1300\t1310')

    res, q4 = epidb.input_regions("hg19", "chr1\t1000\t1010", self.admin_key)
    self.assertSuccess(res, q4)
    res, q5 = epidb.input_regions("hg19", "chr1\t1011\t1020\nchr1\t1111\t1120\nchr1\t1211\t1220\nchr1\t1311\t1320\nchr1\t1411\t1420\nchr1\t1511\t1520", self.admin_key)
    self.assertSuccess(res, q5)

    res, q6 = epidb.overlap(q4, q5, False, 0, "bp", self.admin_key)
    self.assertSuccess(res, q6)
    res, req = epidb.get_regions(q6, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)
    self.assertEqual(regions, "chr1\t1000\t1010")

    res, q7 = epidb.overlap(q5, q4, False, 0, "bp", self.admin_key)
    self.assertSuccess(res, q7)
    res, req = epidb.get_regions(q7, "CHROMOSOME,START,END", self.admin_key)
    self.assertSuccess(res, req)
    regions = self.get_regions_request(req)
    self.assertEqual(regions, "chr1\t1011\t1020\nchr1\t1111\t1120\nchr1\t1211\t1220\nchr1\t1311\t1320\nchr1\t1411\t1420\nchr1\t1511\t1520")
Exemplo n.º 22
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)
Exemplo n.º 23
0
def get_result():
    data  = json.loads(request.data.decode("utf-8"))
    result = helpers.get_result(data["id"])
    app.logger.info('new result, id %s', data["id"])
    return jsonify({"id": result['id'], "status": result['result']}), 200