def test_list_samples(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init(epidb) res = epidb.add_biosource("K562", "desc1", {}, self.admin_key) self.assertSuccess(res) res = epidb.add_biosource("KKKK", "desc1", {}, self.admin_key) self.assertSuccess(res) res, id1 = epidb.add_sample("K562", {"age":"55","health":"deceased"}, self.admin_key) self.assertSuccess(res, id1) res, id2 = epidb.add_sample("K562", {"age":"55","health":"healthy"}, self.admin_key) self.assertSuccess(res, id2) res, id3 = epidb.add_sample("K562", {"age":"15"}, self.admin_key) self.assertSuccess(res, id3) res, id4 = epidb.add_sample("KKKK", {"age":"55","health":"deceased"}, self.admin_key) self.assertSuccess(res, id4) (res, k562_samples) = epidb.list_samples("K562", {}, self.admin_key) self.assertSuccess(res, k562_samples) self.assertEqual(3, len(k562_samples)) self.assertEqual(['s1', {'age': '55', '_id': 's1', 'health': 'deceased', 'user': '******', 'biosource_name': 'K562'}], k562_samples[0])
def test_find_samples(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init(epidb) res = epidb.add_biosource("K562", "desc1", {}, self.admin_key) self.assertSuccess(res) res = epidb.add_biosource("KKKK", "desc1", {}, self.admin_key) self.assertSuccess(res) res, id1 = epidb.add_sample("K562", {"age":"55","health":"deceased"}, self.admin_key) self.assertSuccess(res, id1) res, id2 = epidb.add_sample("K562", {"age":"55","health":"healthy"}, self.admin_key) self.assertSuccess(res, id2) res, id3 = epidb.add_sample("K562", {"age":"15"}, self.admin_key) self.assertSuccess(res, id3) res, id4 = epidb.add_sample("KKKK", {"age":"55","health":"deceased"}, self.admin_key) self.assertSuccess(res, id4) res, samples = epidb.list_samples("K562", {}, self.admin_key) self.assertSuccess(res, samples) found_ids = [(y[0]) for y in samples] self.assertTrue(id1 in found_ids) self.assertTrue(id2 in found_ids) self.assertTrue(id3 in found_ids) self.assertFalse(id4 in found_ids)
def test_sample(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init(epidb) res = epidb.add_biosource("K562", "desc1", {}, self.admin_key) self.assertSuccess(res) res, sid = epidb.add_sample("K562", {"age":"55", "health":"deceased"}, self.admin_key) self.assertSuccess(res, sid) res = epidb.add_sample("K562", {"karyotype":"cancer", "sex":"F"}, self.admin_key) self.assertSuccess(res) res, ids = epidb.search("deceased", None, self.admin_key) self.assertEqual(ids[0][0], sid)
def test_search_experiment_related(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init_base(epidb) s = epidb.add_biosource("Ana", "Ana", {}, self.admin_key) self.assertSuccess(s) s = epidb.add_biosource("Beatriz", "Beatriz", {}, self.admin_key) self.assertSuccess(s) s = epidb.add_biosource("Carolina", "Carolina", {}, self.admin_key) self.assertSuccess(s) s = epidb.set_biosource_parent("Beatriz", "Carolina", self.admin_key) self.assertSuccess(s) (s, sid) = epidb.add_sample("Carolina", {}, self.admin_key) self.assertSuccess(s, sid) data = "chr1\t1\t100" (s, e) = epidb.add_experiment("las chicas", "hg19", "Methylation", sid, "tech1", "ENCODE", "interesting experiment", data, "CHROMOSOME,START,END", {}, self.admin_key) self.assertSuccess(s, e) s = epidb.set_biosource_parent("Ana", "Beatriz", self.admin_key) self.assertSuccess(s) s = epidb.set_biosource_synonym("Ana", "Zebra", self.admin_key) self.assertSuccess(s) (s, r1) = epidb.search("Zebra", "experiments", self.admin_key) self.assertEqual([['e1', 'las chicas', 'experiments']], r1) (s, r2) = epidb.search("Carolina", [], self.admin_key) self.assertEqual([['bs5', 'Carolina', 'biosources'], ['s3', '', 'samples'], ['e1', 'las chicas', 'experiments']], r2)
def test_sample_search_from_synonym(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init_base(epidb) s = epidb.add_biosource("Bio Source A", "", {}, self.admin_key) self.assertSuccess(s) s = epidb.set_biosource_synonym("Bio Source A", "BSA", self.admin_key) self.assertSuccess(s) s = epidb.add_sample("BSA", {}, self.admin_key) self.assertSuccess(s) s = epidb.list_samples("Bio Source A", {}, self.admin_key) self.assertSuccess(s) list_bio_source_a = s[1] self.assertTrue(len(list_bio_source_a) > 0) s = epidb.list_samples("BSA", {}, self.admin_key) self.assertSuccess(s) list_bsa = s[1] self.assertTrue(len(list_bsa) > 0) self.assertEqual(list_bio_source_a, list_bsa)
def test_find_sample(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init(epidb) res = epidb.add_biosource("K562", "desc1", {}, self.admin_key) self.assertSuccess(res) res, sid = epidb.add_sample("K562", {"age":"55","health":"deceased"}, self.admin_key) self.assertSuccess(res, sid) res, found_id = epidb.list_samples("K562", {"age":"55", "health":"deceased"}, self.admin_key) self.assertSuccess(res, found_id) self.assertEqual(sid, found_id[0][0])
def test_sample_info(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init(epidb) res, bsid = epidb.add_biosource("K562", "desc1", {}, self.admin_key) self.assertSuccess(res, bsid) res, sid = epidb.add_sample("K562", {"karyotype":"cancer","sex":"F"}, self.admin_key) self.assertSuccess(res, sid) res, data = epidb.info(sid, self.admin_key) self.assertEqual(data[0]['biosource_name'], "K562") self.assertEqual(data[0]['karyotype'], "cancer") self.assertEqual(data[0]['sex'], "F") self.assertEqual(data[0]['user'], "test_admin") self.assertEqual(data[0]['_id'], sid)
def test_search_sample_related(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init(epidb) s = epidb.add_biosource("Ana", "Ana", {}, self.admin_key) self.assertSuccess(s) s = epidb.add_biosource("Beatriz", "Beatriz", {}, self.admin_key) self.assertSuccess(s) s = epidb.add_biosource("Carolina", "Carolina", {}, self.admin_key) self.assertSuccess(s) s = epidb.set_biosource_parent("Beatriz", "Carolina", self.admin_key) self.assertSuccess(s) s = epidb.add_sample("Carolina", {}, self.admin_key) self.assertSuccess(s) s = epidb.set_biosource_parent("Ana", "Beatriz", self.admin_key) self.assertSuccess(s) s = epidb.set_biosource_synonym("Ana", "Zebra", self.admin_key) self.assertSuccess(s) (s, r1) = epidb.search("Zebra", "samples", self.admin_key) self.assertEquals([['s1', '', 'samples']], r1) (s, r2) = epidb.search("Beatriz", "", self.admin_key) expected = [['bs2', 'Beatriz', 'biosources'], ['bs3', 'Carolina', 'biosources'], ['s1', '', 'samples']] self.assertEqual(sorted(expected), sorted(r2)) (s, r3) = epidb.search("Zebra", [], self.admin_key) expected = [['bs1', 'Ana', 'biosources'], ['bs2', 'Beatriz', 'biosources'], ['bs3', 'Carolina', 'biosources'], ['s1', '', 'samples']] self.assertEqual(sorted(expected), sorted(r3))
def test_multiple_biosources_samples(self): epidb = DeepBlueClient(address="localhost", port=31415) self.init(epidb) (res, k562_id) = epidb.add_biosource("K562", "desc1", {}, self.admin_key) (res, colon_id) = epidb.add_biosource("Colon", "desc1", {}, self.admin_key) (res, colon_md_id) = epidb.add_biosource("Colon_MD", "desc1", {}, self.admin_key) (res, intestine_id) = epidb.add_biosource("Intestine", "desc1", {}, self.admin_key) res, id1 = epidb.add_sample("K562", {"age":"55","health":"deceased"}, self.admin_key) self.assertSuccess(res, id1) res, id2 = epidb.add_sample("K562", {"age":"55","health":"healthy"}, self.admin_key) self.assertSuccess(res, id2) res, id3 = epidb.add_sample("K562", {"age":"15"}, self.admin_key) self.assertSuccess(res, id3) res, id4 = epidb.add_sample("Colon", {"age":"55","health":"deceased"}, self.admin_key) self.assertSuccess(res, id4) res, id5 = epidb.add_sample("Colon_MD", {"age":"55","health":"deceased"}, self.admin_key) self.assertSuccess(res, id4) res, id6 = epidb.add_sample("Intestine", {"age":"55","health":"deceased"}, self.admin_key) self.assertSuccess(res, id4) (res, multiple_samples) = epidb.list_samples(["K562", "Colon", "Colon_MD", "Intestine"], {}, self.admin_key) returned_sources = [(y[1]["biosource_name"]) for y in multiple_samples] self.assertTrue("K562" in returned_sources) self.assertTrue("Colon" in returned_sources) self.assertTrue("Colon_MD" in returned_sources) self.assertTrue("Intestine" in returned_sources) self.assertFalse("Intestine2" in returned_sources) self.assertFalse("K562a" in returned_sources)