def test_type_restricted(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init(epidb) res, pid = epidb.add_project("ENCODE", "desc", self.admin_key) self.assertSuccess(res, pid) res, emid = epidb.add_epigenetic_mark("Methylation", "desc", {"category": "DNA Methylation"}, self.admin_key) self.assertSuccess(res, emid) res, bsid = epidb.add_biosource("K562", "desc", {}, self.admin_key) self.assertSuccess(res, bsid) res, ids = epidb.search("desc", None, self.admin_key) self.assertSuccess(res, ids) self.assertTrue([pid, 'ENCODE', 'projects'] in ids) self.assertTrue([emid, 'Methylation', 'epigenetic_marks'] in ids) self.assertTrue([bsid, 'K562', 'biosources'] in ids) self.assertEqual(len(ids), 3) res, ids = epidb.search("desc", "projects", self.admin_key) self.assertSuccess(res, ids) self.assertTrue([pid, 'ENCODE', 'projects'] in ids) self.assertEqual(len(ids), 1) res, ids = epidb.search("desc", ["epigenetic_marks", "biosources"], self.admin_key) self.assertSuccess(res, ids) self.assertTrue([emid, 'Methylation', 'epigenetic_marks'] in ids) self.assertTrue([bsid, 'K562', 'biosources'] in ids) self.assertEqual(len(ids), 2)
def test_remove_epigenetic_mark(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init_base(epidb) sample_id = self.sample_ids[0] regions_data = helpers.load_bed("hg19_chr1_1") format = data_info.EXPERIMENTS["hg19_chr1_1"]["format"] (res, epigenetic_mark_id) = epidb.add_epigenetic_mark( "H3K666ac3", "acetil metal \,,,/", {"category": "heavy histone metal"}, self.admin_key) self.assertSuccess(res, epigenetic_mark_id) # adding two experiments with the same data should work res, eid = epidb.add_experiment("test_exp1", "hg19", "H3K666ac3", sample_id, "tech1", "ENCODE", "desc1", regions_data, format, None, self.admin_key) self.assertSuccess(res) res = epidb.remove(epigenetic_mark_id, self.admin_key) self.assertFailure(res) res = epidb.remove(eid, self.admin_key) self.assertSuccess(res) res = epidb.remove(epigenetic_mark_id, self.admin_key) self.assertSuccess(res)
def test_result_ids_reuse(self): """ Test the request-ID's returned by list_requests """ epidb = DeepBlueClient(address="localhost", port=31415) self.init_full(epidb) s, id = epidb.add_epigenetic_mark("DNA Methylation", "", {}, self.admin_key) self.assertSuccess(s, id) s, query_id = epidb.select_regions(None, "hg19", "DNA Methylation", None, None, None, "chr1", None, None, self.admin_key) self.assertSuccess(s, query_id) requests = [] for i in xrange(0, 10): s, request_id = epidb.get_regions(query_id, "CHROMOSOME,START,END", self.admin_key) self.assertSuccess(s, request_id) requests.append(request_id) s, requests_list = epidb.list_requests(None, self.admin_key) self.assertSuccess(s, requests_list) for _id, status in requests_list: self.assertTrue(_id in requests) requests_ids = [r[0] for r in requests_list] self.assertEquals(len(requests_ids), 1)
def test_epigenetic_mark_info(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init(epidb) res, emid = epidb.add_epigenetic_mark("Methylation", "DNA Methylation", {"category":"DNA Methylation"}, self.admin_key) self.assertSuccess(res, emid) res, data = epidb.info(emid, self.admin_key) self.assertEqual(data[0]['name'], "Methylation") self.assertEqual(data[0]['description'], "DNA Methylation") self.assertEqual(data[0]['extra_metadata']['category'], "DNA Methylation") self.assertEqual(data[0]['user'], "test_admin") self.assertEqual(data[0]['_id'], emid)
def test_epigenetic_mark(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init(epidb) res, emid1 = epidb.add_epigenetic_mark("Methylation", "DNA Methylation", {"category": "DNA Methylation"}, self.admin_key) self.assertSuccess(res, emid1) res, emid2 = epidb.add_epigenetic_mark("Methyl450", "DNA Methylation Infinium HumanMethylation450 BeadChip", {"category": "DNA Methylation"}, self.admin_key) self.assertSuccess(res, emid2) res, emid3 = epidb.add_epigenetic_mark("OpenChromDnase", "Open Chromatin DNaseI", {"category": "open chromatin"}, self.admin_key) self.assertSuccess(res, emid3) res, emid4 = epidb.add_epigenetic_mark("DNaseI", "DNaseI hypersensitive sites ", {"category": "open chromatin"}, self.admin_key) self.assertSuccess(res, emid4) self.assertEqual(res, "okay") res, ids = epidb.search("Methylation", None, self.admin_key) self.assertSuccess(res, ids) self.assertEqual(ids[0][0], emid1) self.assertEqual(ids[1][0], emid2) res, ids = epidb.search("DNA", None, self.admin_key) self.assertSuccess(res, ids) self.assertEqual(ids[0][0], emid1) self.assertEqual(ids[1][0], emid2) res, ids = epidb.search("Dnasei", None, self.admin_key) self.assertSuccess(res, ids) self.assertEqual(ids[0][0], emid4) self.assertEqual(ids[1][0], emid3) res, ids = epidb.search(emid4, None, self.admin_key) self.assertSuccess(res, ids) self.assertEqual(ids[0][0], emid4)
def test_request_info_permission(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init_full(epidb) s, user = epidb.add_user("user1", "*****@*****.**", "test", self.admin_key) id, user_key = user s, _id = epidb.modify_user_admin(id, "permission_level", "INCLUDE_COLLECTION_TERMS", self.admin_key) self.assertSuccess(s, _id) s, id = epidb.add_epigenetic_mark("DNA Methylation", "", {}, user_key) self.assertSuccess(s, id) s, query_id = epidb.select_regions(None, "hg19", "DNA Methylation", None, None, None, "chr1", None, None, user_key) self.assertSuccess(s, query_id) s, request_id = epidb.get_regions(query_id, "CHROMOSOME,START,END", user_key) s, info = epidb.info(request_id, user_key) self.assertSuccess(s, info) s, info = epidb.info(request_id, self.admin_key) self.assertSuccess(s, info)