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-')
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)
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)
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))
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)
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)
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)
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)
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)
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)
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)
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)
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)
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())
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)
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)
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")
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)
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