示例#1
0
    def test_experiments_pass(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"]

        # adding two experiments with the same data should work
        res = epidb.add_experiment("test_exp1", "hg19", "Methylation",
                                   sample_id, "tech1", "ENCODE", "desc1",
                                   regions_data, format, None, self.admin_key)
        self.assertSuccess(res)

        res = epidb.add_experiment("test_exp2", "hg19", "Methylation",
                                   sample_id, "tech1", "ENCODE", "desc1",
                                   regions_data, format, None, self.admin_key)
        self.assertSuccess(res)

        res, experiments = epidb.list_experiments("hg19", "peaks", None,
                                                  "NO_BIOSOURCE", None, None,
                                                  None, self.admin_key)
        self.assertSuccess(res, experiments)
        self.assertEqual(len(experiments), 0)

        res, experiments = epidb.list_experiments(None, None, None, None, None,
                                                  None, None, self.admin_key)
        self.assertSuccess(res, experiments)
        self.assertEqual(len(experiments), 2)

        res, experiments = epidb.list_experiments("hg19", "peaks", None,
                                                  "K562", None, None, None,
                                                  self.admin_key)
        self.assertSuccess(res, experiments)
        self.assertEqual(len(experiments), 2)

        experiments_names = [x[1] for x in experiments]

        self.assertTrue("test_exp1" in experiments_names)
        self.assertTrue("test_exp2" in experiments_names)

        s, ids = epidb.name_to_id(['test_exp1'], 'experiments', self.admin_key)
        self.assertEqual(ids, [['e1', 'test_exp1']])
        s, ids = epidb.name_to_id(['test_exp1', 'test_exp2'], 'experiments',
                                  self.admin_key)
        self.assertEqual([['e1', 'test_exp1'], ['e2', 'test_exp2']], ids)
        s, ids = epidb.name_to_id('test_exp1', 'experiments', self.admin_key)
        self.assertEqual([['e1', 'test_exp1']], ids)
  def test_biosource(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init(epidb)

    self.assertSuccess(epidb.add_biosource("K562", "leukemia cell", {}, self.admin_key))
    self.assertSuccess(epidb.add_biosource("K562b", "leukemia cell", {}, self.admin_key))
    self.assertSuccess(epidb.add_biosource("HepG2", "hepatocellular carcinoma", {}, self.admin_key))

    res, biosources = epidb.list_biosources(None, self.admin_key)
    self.assertSuccess(res, biosources)

    biosources_names = epidb.extract_names(biosources)[1]

    self.assertEqual(len(biosources), 3)
    self.assertTrue("K562" in biosources_names)
    self.assertTrue("K562b" in biosources_names)
    self.assertTrue("HepG2" in biosources_names)

    status, _id = epidb.name_to_id(["k562", "k562b", "hepg2"], "biosources", self.admin_key)
    self.assertTrue(_id, [['bs1', 'k562'], ['bs2', 'k562b'], ['bs3', 'hepg2']])