def count_request(self, req): if req[0] is not 'r': print "Invalid request " + req return epidb = DeepBlueClient(address="localhost", port=31415) sleep = 0.1 (s, ss) = epidb.info(req, self.admin_key) while ss[0]["state"] != "done": time.sleep(sleep) (s, ss) = epidb.info(req, self.admin_key) sleep += sleep (s, data) = epidb.get_request_data(req, self.admin_key) self.assertSuccess(s, data) return data["count"]
def __get_regions_request(self, req, status=["done"]): if req[0] is not 'r': print "Invalid request " + req return epidb = DeepBlueClient(address="localhost", port=31415) sleep = 0.1 count = 0 (s, ss) = epidb.info(req, self.admin_key) while ss[0]["state"] not in status: time.sleep(sleep) (s, ss) = epidb.info(req, self.admin_key) sleep += 0.5 count += 1 if count > 5: print ss (s, data) = epidb.get_request_data(req, self.admin_key) return (s, data)
def test_gene_expression(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init_base(epidb) (s, project) = epidb.add_project("DEEP", "Deutsche Epigenom", self.admin_key) self.assertSuccess(s, project) data = gzip.open("data/fpkm/small_1.fpkm_tracking.gz").read() (s, gene_expression) = epidb.add_expression("gene", "s2", 1, data, "cufflinks", "DEEP", None, self.admin_key) self.assertSuccess(s, gene_expression) data = gzip.open("data/fpkm/small_2.fpkm_tracking.gz").read() (s, gene_expression) = epidb.add_expression("gene", "s2", 2, data, "cufflinks", "DEEP", None, self.admin_key) self.assertSuccess(s, gene_expression) data = gzip.open("data/fpkm/small_3.fpkm_tracking.gz").read() (s, gene_expression) = epidb.add_expression("gene", "s2", 44, data, "cufflinks", "DEEP", None, self.admin_key) self.assertSuccess(s, gene_expression) (s, gex) = epidb.list_expressions("gene", "s1", None, None, self.admin_key) self.assertEquals(gex, []) (s, gex) = epidb.list_expressions("gene", "s2", None, None, self.admin_key) self.assertEquals(gex, [['gx1', ''], ['gx2', ''], ['gx3', '']]) (s, gex) = epidb.list_expressions("gene", "s2", [1, 2], None, self.admin_key) self.assertEquals(gex, [['gx1', ''], ['gx2', '']]) (s, gex) = epidb.list_expressions("gene", "s2", 44, None, self.admin_key) self.assertEquals(gex, [['gx3', '']]) (s, gex) = epidb.list_expressions("gene", None, 1, "DEEP", self.admin_key) self.assertEquals(gex, [['gx1', '']]) data = gzip.open( "data/fpkm/51_Hf03_BlTN_Ct_mRNA_M_1.LXPv1.20150708_genes.fpkm_tracking.gz" ).read() (s, gene_expression) = epidb.add_expression("gene", "s1", 1, data, "cufflinks", "ENCODE", None, self.admin_key) self.assertSuccess(s, gene_expression) (s, gex) = epidb.list_expressions("gene", None, None, None, self.admin_key) self.assertEquals(gex, [['gx1', ''], ['gx2', ''], ['gx3', ''], ['gx4', '']]) (s, gex) = epidb.list_expressions("gene", "s1", 1, None, self.admin_key) self.assertEquals(gex, [['gx4', '']]) (s, gex) = epidb.list_expressions("gene", None, None, "ENCODE", self.admin_key) self.assertEquals(gex, [['gx4', '']]) (s, gex) = epidb.list_expressions("gene", ["s1", "s2"], 1, None, self.admin_key) self.assertEquals(gex, [['gx1', ''], ['gx4', '']]) (s, gex) = epidb.list_expressions("gene", ["s1", "s2"], 2, None, self.admin_key) self.assertEquals(gex, [['gx2', '']]) (s, gex) = epidb.list_expressions("gene", None, 1, "ENCODE", self.admin_key) self.assertEquals(gex, [['gx4', '']]) s, user = epidb.add_user("user", "email", "institution", self.admin_key) (user_id, user_key) = user self.assertSuccess(s) (s, ss) = epidb.modify_user_admin(user_id, "permission_level", "GET_DATA", self.admin_key) self.assertSuccess(s, ss) (s, gex) = epidb.list_expressions("gene", None, None, None, user_key) self.assertEquals(gex, []) (s, gex) = epidb.list_expressions("gene", "s1", 1, None, user_key) self.assertEquals(gex, []) (s, gex) = epidb.list_expressions("gene", None, None, "ENCODE", user_key) self.assertEquals(gex, "107000:Project 'ENCODE' does not exist.") (s, info) = epidb.info(gene_expression, self.admin_key) self.assertEquals( info[0], { 'format': 'TRACKING_ID,GENE_ID,GENE_SHORT_NAME,FPKM,FPKM_CONF_LO,FPKM_CONF_HI,FPKM_STATUS', 'sample_info': { 'biosource_name': 'K562', 'karyotype': 'cancer', 'sex': 'F' }, 'content_format': 'cufflinks', 'total_genes': 57910, 'replica': 1, 'sample_id': 's1', '_id': 'gx4', 'extra_metadata': {}, 'columns': [{ 'name': 'TRACKING_ID', 'column_type': 'string' }, { 'name': 'GENE_ID', 'column_type': 'string' }, { 'name': 'GENE_SHORT_NAME', 'column_type': 'string' }, { 'name': 'FPKM', 'column_type': 'double' }, { 'name': 'FPKM_CONF_LO', 'column_type': 'double' }, { 'name': 'FPKM_CONF_HI', 'column_type': 'double' }, { 'name': 'FPKM_STATUS', 'column_type': 'string' }] }) data = gzip.open( "data/grape2/SP8-TH91.gene_quantification.rsem_grape2_crg.GRCh38.20150622.results.txt.gz" ).read() (s, gene_expression) = epidb.add_expression("gene", "s1", 1, data, "grape2", "ENCODE", None, self.admin_key) self.assertEquals( gene_expression, "131001:A Expression of the type 'gene' with sample_id 's1' and replica '1' already exists." ) (s, gene_expression) = epidb.add_expression("gene", "s1", 2, data, "grape2", "ENCODE", None, self.admin_key) self.assertSuccess(s, gene_expression) data = gzip.open( "data/gtf/gencode.v19.annotation.ONLY_GENES.gtf.gz").read() (s, ss) = epidb.add_gene_model("gencode v19", "hg19", "Test One Description", data, "GTF", {}, self.admin_key) self.assertSuccess(s, ss) (status, gx_query) = epidb.select_expressions("gene", "s1", 2, "ENSG00000000003.13", "ENCODE", "gencode v19", self.admin_key) self.assertSuccess(status, gx_query) status, info = epidb.info(gx_query, user_key) (status, r_id) = epidb.get_regions( gx_query, "CHROMOSOME,START,END,@STRAND,GENE_ID,TRANSCRIPT_IDS,LENGTH,EFFECTIVE_LENGTH,EXPECTED_COUNT,TPM,FPKM,POSTERIOR_MEAN_COUNT,POSTERIOR_STANDARD_DEVIATION_OF_COUNT,PME_TPM,PME_FPKM,TPM_CI_LOWER_BOUND,TPM_CI_UPPER_BOUND,FPKM_CI_LOWER_BOUND,FPKM_CI_UPPER_BOUND", self.admin_key) self.assertSuccess(status, r_id) regions = self.get_regions_request(r_id) self.assertEquals( regions, "chrX\t99883667\t99894988\t-\tENSG00000000003.13\tENSG00000000003.13\t2025\t1855.4301\t161.0000\t1.0000\t2.1300\t161.0000\t0.0000\t1.0500\t2.2700\t0.8742\t1.2451\t1.8882\t2.6879" ) (status, gx_query) = epidb.select_expressions("gene", "s1", 2, "ENSG00000000003.13", "ENCODE", "gencode v19", self.admin_key) self.assertSuccess(status, gx_query) status, info = epidb.info(gx_query, user_key) (status, r_id) = epidb.get_regions( gx_query, "GENE_ID,TRANSCRIPT_IDS,LENGTH,EFFECTIVE_LENGTH,EXPECTED_COUNT,TPM,FPKM,POSTERIOR_MEAN_COUNT,POSTERIOR_STANDARD_DEVIATION_OF_COUNT,PME_TPM,PME_FPKM,TPM_CI_LOWER_BOUND,TPM_CI_UPPER_BOUND,FPKM_CI_LOWER_BOUND,FPKM_CI_UPPER_BOUND", self.admin_key) self.assertSuccess(status, r_id) regions = self.get_regions_request(r_id) self.assertEquals( regions, "ENSG00000000003.13\tENSG00000000003.13\t2025\t1855.4301\t161.0000\t1.0000\t2.1300\t161.0000\t0.0000\t1.0500\t2.2700\t0.8742\t1.2451\t1.8882\t2.6879" ) (status, gx_query) = epidb.select_expressions("gene", "s1", 1, "OR4G11P", "ENCODE", "gencode v19", self.admin_key) self.assertSuccess(status, gx_query) status, info = epidb.info("gx1", user_key) (status, r_id) = epidb.get_regions(gx_query, info[0]["format"], self.admin_key) self.assertSuccess(status, r_id) regions = self.get_regions_request(r_id) self.assertEquals( regions, "ENSG00000240361.1\tENSG00000240361.1\tOR4G11P\t0.0000\t0.0000\t0.0000\tOK" ) (status, gx_query) = epidb.select_expressions( "gene", "s1", 1, ['CCR1', 'CD164', 'CD1D', 'CD2', 'CD34', 'CD3G', 'CD44'], "ENCODE", "gencode v19", self.admin_key) self.assertSuccess(status, gx_query) status, info = epidb.info("gx1", user_key) (status, r_id) = epidb.get_regions(gx_query, info[0]["format"], self.admin_key) self.assertSuccess(status, r_id) regions_a = self.get_regions_request(r_id) excepted = "ENSG00000135535.10\tENSG00000135535.10\tCD164\t101.3820\t98.8947\t103.8680\tOK\nENSG00000026508.12\tENSG00000026508.12\tCD44\t193.4920\t189.4020\t197.5830\tOK\nENSG00000160654.5\tENSG00000160654.5\tCD3G\t53.0051\t51.4405\t54.5696\tOK\nENSG00000163823.3\tENSG00000163823.3\tCCR1\t0.0201\t0.0000\t0.0433\tOK\nENSG00000116824.4\tENSG00000116824.4\tCD2\t90.0146\t87.9630\t92.0661\tOK\nENSG00000158473.6\tENSG00000158473.6\tCD1D\t0.0241\t0.0000\t0.0519\tOK\nENSG00000174059.12\tENSG00000174059.12\tCD34\t0.0000\t0.0000\t0.0000\tOK" lexp = excepted.split("\n") lresult = regions_a.split("\n") self.assertEquals(len(lresult), len(lexp)) for l in lresult: self.assertTrue(l in lexp) (status, gx_query) = epidb.select_expressions("gene", "s1", 1, 'CCR1', "ENCODE", "gencode v19", self.admin_key) self.assertSuccess(status, gx_query) status, info = epidb.info("gx1", user_key) (status, r_id) = epidb.get_regions(gx_query, info[0]["format"], self.admin_key) self.assertSuccess(status, r_id) regions = self.get_regions_request(r_id) self.assertEquals( regions, "ENSG00000163823.3\tENSG00000163823.3\tCCR1\t0.0201\t0.0000\t0.0433\tOK" ) q1 = gx_query (status, gx_query) = epidb.select_expressions("gene", "s1", 1, 'CD164', "ENCODE", "gencode v19", self.admin_key) self.assertSuccess(status, gx_query) status, info = epidb.info("gx1", user_key) (status, r_id) = epidb.get_regions(gx_query, info[0]["format"], self.admin_key) self.assertSuccess(status, r_id) regions = self.get_regions_request(r_id) self.assertEquals( regions, "ENSG00000135535.10\tENSG00000135535.10\tCD164\t101.3820\t98.8947\t103.8680\tOK" ) self.assertTrue(q1 != gx_query) (s, info) = epidb.info(ss, self.admin_key) self.assertEquals( info[0], { 'total_genes': 57820, '_id': 'gs1', 'genome': 'hg19', 'description': 'Test One Description', 'format': 'GTF', 'name': 'gencode v19' }) (status, gene_info) = epidb.info("gn1", self.admin_key) self.assertEquals( gene_info[0], { 'transcript_status': 'KNOWN', 'gene_name': 'DDX11L1', 'gene_type': 'pseudogene', 'end': 14412, 'source': 'HAVANA', 'frame': '.', 'level': '2', 'gene_id': 'ENSG00000223972.4', 'start': 11869, 'transcript_id': 'ENSG00000223972.4', 'score': 0.0, 'strand': '+', 'havana_gene': 'OTTHUMG00000000961.2', 'transcript_name': 'DDX11L1', '_id': 'gn1', 'gene_status': 'KNOWN', 'transcript_type': 'pseudogene', 'chromosome': 'chr1' }) (status, query) = epidb.select_expressions("gene", "s1", [1, 5, 10, 122], None, "ENCODE", "gencode v19", self.admin_key) query_one = query self.assertSuccess(status, query) (status, filtered) = epidb.filter_regions(query, "FPKM_STATUS", "!=", "OK", "string", self.admin_key) self.assertSuccess(status, filtered) (status, filtered_chr) = epidb.filter_regions(filtered, "CHROMOSOME", "==", "chr21", "string", self.admin_key) self.assertSuccess(status, filtered_chr) (status, r_id) = epidb.get_regions( filtered_chr, "GENE_ID,FPKM_STATUS,@SAMPLE_ID,@BIOSOURCE", self.admin_key) self.assertSuccess(status, r_id) regions = self.get_regions_request(r_id) self.assertEquals( regions, "ENSG00000240755.1\tLOWDATA\ts1\tK562\nENSG00000256386.1\tLOWDATA\ts1\tK562\nENSG00000198743.5\tLOWDATA\ts1\tK562\nENSG00000267937.1\tLOWDATA\ts1\tK562\nENSG00000238556.1\tLOWDATA\ts1\tK562\nENSG00000255902.1\tLOWDATA\ts1\tK562\nENSG00000266692.1\tLOWDATA\ts1\tK562" ) (status, query) = epidb.select_expressions("gene", "s1", [1, 5, 10, 122], None, "", "gencode v19", user_key) self.assertSuccess(status, query) (status, filtered) = epidb.filter_regions(query, "FPKM_STATUS", "!=", "OK", "string", user_key) self.assertSuccess(status, filtered) (status, filtered_chr) = epidb.filter_regions(filtered, "CHROMOSOME", "==", "chr21", "string", user_key) self.assertSuccess(status, filtered_chr) (status, req) = epidb.get_regions(filtered_chr, "GENE_ID,FPKM_STATUS,@SAMPLE_ID,@BIOSOURCE", user_key) self.assertSuccess(status, r_id) (s, ss) = epidb.info(req, user_key) while ss[0]["state"] != "done": time.sleep(1) (s, ss) = epidb.info(req, user_key) s, regions = epidb.get_request_data(req, user_key) self.assertEquals( regions, "ENSG00000240755.1\tLOWDATA\ts1\tK562\nENSG00000256386.1\tLOWDATA\ts1\tK562\nENSG00000198743.5\tLOWDATA\ts1\tK562\nENSG00000267937.1\tLOWDATA\ts1\tK562\nENSG00000238556.1\tLOWDATA\ts1\tK562\nENSG00000255902.1\tLOWDATA\ts1\tK562\nENSG00000266692.1\tLOWDATA\ts1\tK562" )
def test_janitor(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init_base() # Test parameters s, v = epidb.modify_user_admin(None, "old_request_age_in_sec", None, self.admin_key) self.assertEqual(v, ['old_request_age_in_sec', '2592000']) s, v = epidb.modify_user_admin(None, "old_request_age_in_sec", "-1", self.admin_key) self.assertEqual(v, ['old_request_age_in_sec', '2592000']) s, v = epidb.modify_user_admin(None, "janitor_periodicity", None, self.admin_key) self.assertEqual(v, ['janitor_periodicity', '60']) s, v = epidb.modify_user_admin(None, "janitor_periodicity", "-1", self.admin_key) self.assertEqual(v, ['janitor_periodicity', '60']) # Do a simple request res, qid = epidb.tiling_regions(1000000, "hg19", ["chr15", "chrX", "chr3"], self.admin_key) self.assertSuccess(res, qid) res, req = epidb.get_regions(qid, "CHROMOSOME,START,END", self.admin_key) self.assertSuccess(res, req) regions = self.get_regions_request(req) chr3_tiles = 198022430 / 1000000 chr15_tiles = 102531392 / 1000000 chrX_tiles = 155270560 / 1000000 self.assertEqual(len(regions.strip().split('\n')), chr3_tiles + chr15_tiles + chrX_tiles) # Check removal s, m = epidb.modify_user_admin(None, "janitor_periodicity", "1", self.admin_key) s, v = epidb.modify_user_admin(None, "janitor_periodicity", None, self.admin_key) self.assertEqual(v, ['janitor_periodicity', '1']) s, m = epidb.modify_user_admin(None, "old_request_age_in_sec", "3", self.admin_key) s, v = epidb.modify_user_admin(None, "old_request_age_in_sec", None, self.admin_key) self.assertEqual(v, ['old_request_age_in_sec', '3']) time.sleep(4) s, info = epidb.info(req, self.admin_key) self.assertEqual(info[0]["state"], "cleared") # Check reprocessing by re-requesting the data s, m = epidb.get_request_data(req, self.admin_key) self.assertFailure(s, m) self.assertEqual( m, 'Request ID r1 was cleared. We are going to reprocess this request. Please, check its status.' ) s, info = epidb.info(req, self.admin_key) self.assertEqual(info[0]["state"], "reprocess") regions = self.get_regions_request(req) chr3_tiles = 198022430 / 1000000 chr15_tiles = 102531392 / 1000000 chrX_tiles = 155270560 / 1000000 self.assertEqual(len(regions.strip().split('\n')), chr3_tiles + chr15_tiles + chrX_tiles) # Check reprocessing by making performing the request again s, m = epidb.modify_user_admin(None, "janitor_periodicity", "1", self.admin_key) time.sleep(1) s, info = epidb.info(req, self.admin_key) self.assertEqual(info[0]["state"], "done") time.sleep(3) s, info = epidb.info(req, self.admin_key) self.assertEqual(info[0]["state"], "cleared") s, m = epidb.modify_user_admin(None, "janitor_periodicity", "10", self.admin_key) res, req = epidb.get_regions(qid, "CHROMOSOME,START,END", self.admin_key) s, info = epidb.info(req, self.admin_key) self.assertEqual(info[0]["state"], "reprocess") regions = self.get_regions_request(req) chr3_tiles = 198022430 / 1000000 chr15_tiles = 102531392 / 1000000 chrX_tiles = 155270560 / 1000000
def test_cancel_aggregation(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init_base(epidb) sample_id = self.sample_ids[0] self.insert_experiment(epidb, "hg19_big_2", sample_id) 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_count = epidb.count_regions(qid_2, self.admin_key) self.assertSuccess(res, req_count) count = self.count_request(req_count) self.assertEquals(count, 3118) res, qid_3 = epidb.aggregate(q_cgi, qid_2, "@LENGTH", self.admin_key) self.assertSuccess(res, qid_3) res, qid_4 = epidb.filter_regions(qid_3, "@AGG.COUNT", ">=", "100", "number", self.admin_key) (res, req_regions) = epidb.get_regions( qid_4, "CHROMOSOME,START,END,@AGG.MIN,@AGG.MAX,@AGG.MEDIAN,@AGG.MEAN,@AGG.VAR,@AGG.SD,@AGG.COUNT", self.admin_key) self.assertSuccess(res, req_regions) (s, user_two) = epidb.add_user("ANOTHER NAME", "ANOTHER EMAIL", "INSTITUTE", self.admin_key) s, tmp_user = epidb.modify_user_admin(user_two[0], "permission_level", "GET_DATA", self.admin_key) s, msg = epidb.cancel_request(req_regions, user_two[1]) self.assertEquals(msg, "130003:The request ID 'r2' is invalid.") s, msg = epidb.cancel_request(req_count, user_two[1]) self.assertEquals(msg, "130003:The request ID 'r1' is invalid.") (s, m) = epidb.cancel_request(req_regions, self.admin_key) self.assertSuccess(s, m) (s, m) = epidb.cancel_request(req_count, self.admin_key) self.assertSuccess(s, m) (s, user_ass) = epidb.add_user("ASS NAME", "ASS EMAIL", "INSTITUTE", self.admin_key) s, tmp_user = epidb.modify_user_admin(user_ass[0], "permission_level", "GET_DATA", self.admin_key) res, q_cgi_other = epidb.select_annotations("Cpg Islands", "hg19", None, None, None, user_two[1]) self.assertSuccess(res, q_cgi) (res, req_other) = epidb.get_regions(q_cgi_other, "CHROMOSOME,START,END", user_two[1]) self.assertSuccess(res, req_regions) (s, msg) = epidb.cancel_request(req_other, user_ass[1]) self.assertEquals(msg, "130003:The request ID 'r3' is invalid.") (s, m) = epidb.cancel_request(req_other, self.admin_key) self.assertSuccess(s, m) (s, ss) = epidb.info(req_other, self.admin_key) self.assertEquals(ss[0]['state'], 'canceled') (s, ss_count) = epidb.info(req_count, self.admin_key) self.assertEquals(ss_count[0]["state"], "removed") (s, ss_regions) = epidb.info(req_regions, self.admin_key) self.assertEquals(ss_regions[0]["state"], "canceled") s, e1 = epidb.get_request_data(req_count, self.admin_key) self.assertEqual( e1, "Request ID r1 was not finished. Please, check its status.") s, e2 = epidb.get_request_data(req_regions, self.admin_key) self.assertEqual( e2, "Request ID r2 was not finished. Please, check its status.")
def test_basic_binning(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init_base(epidb) sample_id = self.sample_ids[0] self.insert_experiment(epidb, "hg19_big_2", sample_id) res, qid = epidb.select_regions("hg19_big_2", "hg19", None, None, None, None, None, None, None, self.admin_key) self.assertSuccess(res, qid) status, req = epidb.binning(qid, "P_VALUE", 5, self.admin_key) self.assertSuccess(status, req) binning = self.get_regions_request(req) self.assertEquals( binning, { 'binning': { 'ranges': [2.0006, 37.8473, 73.6939, 109.5406, 145.3873, 181.234], 'counts': [63506, 2632, 3111, 6626, 1668] } }) sample_id = self.sample_ids[0] self.insert_experiment(epidb, "hg19_big_1", sample_id) res, qid = epidb.select_regions("hg19_big_1", "hg19", None, None, None, None, None, None, None, self.admin_key) self.assertSuccess(res, qid) status, req = epidb.binning(qid, "P_VALUE", 5, self.admin_key) self.assertSuccess(status, req) binning = self.get_regions_request(req) self.assertEquals( binning, { 'binning': { 'ranges': [2.0017, 41.3178, 80.6338, 119.9499, 159.2659, 198.582], 'counts': [39349, 2824, 2510, 5325, 4299] } }) status, req = epidb.binning(qid, "P_VALUE", 0, self.admin_key) self.assertFailure(status, req) status, req = epidb.binning(qid, "P_VALUE", -1, self.admin_key) self.assertFailure(status, req) status, req = epidb.binning(qid, "P_VALUE", 66666, self.admin_key) self.assertFailure(status, req) res, qid = epidb.select_regions("hg19_big_1", "hg19", None, None, None, None, None, None, None, self.admin_key) self.assertSuccess(res, qid) status, req = epidb.binning(qid, "QEERR", 5, self.admin_key) self.assertSuccess(status, req) msg = self.get_regions_request_error(req) status, msg = epidb.get_request_data(req, self.admin_key) self.assertEqual( msg, "101007:The experiment 'hg19_big_1' does not have the column 'QEERR'." )