def test_select_only_peaks_cached(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init_base(epidb) sample_id = self.sample_ids[0] files = ["reference_example", "test1"] for filename in files: wig_data = helpers.load_bedgraph(filename) res = epidb.add_experiment(filename, "hg19", "Methylation", sample_id, "tech1", "ENCODE", "desc1", wig_data, "bedgraph", None, self.admin_key) (s, q) = epidb.select_experiments(files, "", None, None, self.admin_key) (s, q_cache) = epidb.query_cache(q, True, self.admin_key) (s, req) = epidb.count_regions(q_cache, self.admin_key) count = self.count_request(req) self.assertEqual(1009, count) (s, req2) = epidb.count_regions(q_cache, self.admin_key) count = self.count_request(req2) self.assertEqual(1009, count) self.assertEqual(req, req2)
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 test_aggregation(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init_base(epidb) sample_id = self.sample_ids[0] cpg_island = ",".join([ "CHROMOSOME", "START", "END", "NAME", "LENGTH", "NUM_CPG", "NUM_GC", "PER_CPG", "PER_CG", "OBS_EXP" ]) with open("data/cpgIslandExtFull.txt", 'r') as f: file_data = f.read() (res, a_1) = epidb.add_annotation("Cpg Islands", "hg19", "Complete CpG islands", file_data, cpg_island, None, self.admin_key) self.assertSuccess(res, a_1) res, q_cgi = epidb.select_annotations("Cpg Islands", "hg19", None, None, None, self.admin_key) self.assertSuccess(res, q_cgi) res, qid_2 = epidb.tiling_regions(1000000, "hg19", None, self.admin_key) self.assertSuccess(res, qid_2) res, req = epidb.count_regions(qid_2, self.admin_key) self.assertSuccess(res, req) count = self.count_request(req) self.assertEquals(count, 3118) res, _qid_3 = epidb.aggregate(q_cgi, qid_2, "@LENGTH", self.admin_key) self.assertSuccess(res, _qid_3) res, qid_3 = epidb.query_cache(_qid_3, True, self.admin_key) self.assertSuccess(res, qid_3) res, qid_4 = epidb.filter_regions(qid_3, "@AGG.COUNT", ">", "0", "number", self.admin_key) res, req = epidb.count_regions(qid_4, self.admin_key) count = self.count_request(req) self.assertEquals(count, 2574) res, qid_4 = epidb.filter_regions(qid_2, "@AGG.COUNT", "<", "0", "number", self.admin_key) res, req = epidb.count_regions(qid_4, self.admin_key) count = self.count_request(req) self.assertEquals(count, 0) res, qid_4 = epidb.filter_regions(qid_3, "@AGG.COUNT", ">=", "100", "number", self.admin_key) (res, req) = epidb.get_regions( qid_4, "CHROMOSOME,START,END,@AGG.MIN,@AGG.MAX,@AGG.MEDIAN,@AGG.MEAN,@AGG.VAR,@AGG.SD,@AGG.COUNT,@AGG.SUM", self.admin_key) self.assertSuccess(res, req) regions = self.get_regions_request(req) expected = 'chr1\t1000000\t2000000\t201.0000\t5585.0000\t469.0000\t766.0082\t589695.4375\t767.9163\t122\t93453.0000\nchr16\t0\t1000000\t201.0000\t6377.0000\t484.0000\t746.6083\t674998.0625\t821.5826\t120\t89593.0000\nchr16\t1000000\t2000000\t201.0000\t5449.0000\t398.0000\t666.6393\t630197.3125\t793.8497\t122\t81330.0000\nchr16\t2000000\t3000000\t201.0000\t4843.0000\t533.0000\t780.4951\t559994.2500\t748.3276\t101\t78830.0000\nchr16\t88000000\t89000000\t202.0000\t3785.0000\t347.0000\t553.3461\t295400.6875\t543.5078\t104\t57548.0000\nchr19\t0\t1000000\t201.0000\t7814.0000\t424.0000\t776.2705\t944608.4375\t971.9097\t122\t94705.0000\nchr19\t1000000\t2000000\t201.0000\t6035.0000\t430.0000\t738.8853\t625527.1250\t790.9027\t183\t135216.0000\nchr19\t2000000\t3000000\t201.0000\t3978.0000\t395.0000\t673.9907\t444749.5000\t666.8954\t107\t72117.0000\nchr19\t3000000\t4000000\t201.0000\t2753.0000\t387.0000\t531.0648\t172512.1094\t415.3458\t108\t57355.0000\nchr20\t62000000\t63000000\t202.0000\t5019.0000\t501.0000\t716.2427\t427763.9375\t654.0366\t103\t73773.0000\nchr7\t0\t1000000\t201.0000\t6234.0000\t348.0000\t556.3500\t475220.5625\t689.3624\t100\t55635.0000\nchr9\t139000000\t140000000\t202.0000\t6342.0000\t406.0000\t777.3303\t817548.5625\t904.1839\t109\t84729.0000' self.assertEquals(regions, expected) (s, req) = epidb.count_regions(qid_4, self.admin_key) self.assertSuccess(s, req) count = self.count_request(req) self.assertEquals(count, 12)