def test_list_column_types(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init(epidb)

    res = epidb.create_column_type_simple("name", "description", "string", self.admin_key)
    self.assertSuccess(res)
    res = epidb.create_column_type_simple("string_column", "description", "string", self.admin_key)
    self.assertSuccess(res)
    res = epidb.create_column_type_simple("integer_column", "description", "integer", self.admin_key)
    self.assertSuccess(res)
    res = epidb.create_column_type_simple("double_column", "description", "double", self.admin_key)
    self.assertSuccess(res)
    res = epidb.create_column_type_range("score", "description", 0.0, 1.0, self.admin_key)
    self.assertSuccess(res)
    strand = ["+", "-"]
    res = epidb.create_column_type_category("STRAND", "description", strand, self.admin_key)
    self.assertSuccess(res)

    res, column_types = epidb.list_column_types(self.admin_key)
    self.assertSuccess(res, column_types)

    self.assertEqual(column_types[0][1], "column type name: 'CHROMOSOME' type: 'string'")
    self.assertEqual(column_types[1][1], "column type name: 'START' type: 'integer'")
    self.assertEqual(column_types[2][1], "column type name: 'END' type: 'integer'")
    self.assertEqual(column_types[3][1], "column type name: 'VALUE' type: 'double'")
    self.assertEqual(column_types[4][1], "column type name: 'GTF_SCORE' type: 'string'")
    self.assertEqual(column_types[5][1], "column type name: 'FEATURE' type: 'string'")
    self.assertEqual(column_types[6][1], "column type name: 'SOURCE' type: 'string'")
    self.assertEqual(column_types[7][1], "column type name: 'FRAME' type: 'string'")
    self.assertEqual(column_types[8][1], "column type name: 'GTF_ATTRIBUTES' type: 'string'")
    self.assertEqual(column_types[9][1], "column type name: 'TRACKING_ID' type: 'string'")
  def test_range_fail(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init_base(epidb)

    sample_id = self.sample_ids[0]

    format = ",".join([
      "CHROMOSOME",
      "START",
      "END",
      "NAME",
      "SCORE",
      "STRAND",
      "SIGNAL_VALUE",
      "P_VALUE_RANGE",
      "Q_VALUE",
      "PEAK"
    ])

    res = epidb.create_column_type_range("P_VALUE_RANGE", "p-value", 0.0, 10.0, self.admin_key)
    self.assertSuccess(res)

    regions_data = helpers.load_bed("hg19_chr1_1")
    res, msg = epidb.add_experiment("test_exp_fail", "hg19", "Methylation", sample_id, "tech1", "ENCODE", "desc1",
                                    regions_data, format, None, self.admin_key)
    self.assertFailure(res, msg)
    self.assertTrue("P_VALUE_RANGE" in msg)
  def test_column_complex_types(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init(epidb)

    res = epidb.create_column_type_range("score", "description", 0.0, 1.0, self.admin_key)
    self.assertSuccess(res)
    strand = ["+", "-"]
    res = epidb.create_column_type_category("STRAND", "description", strand, self.admin_key)
    self.assertSuccess(res)
  def test_column_types_search(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init(epidb)

    res = epidb.create_column_type_simple("name", "description", "string", self.admin_key)
    self.assertSuccess(res)
    res = epidb.create_column_type_simple("string_column", "description", "string", self.admin_key)
    self.assertSuccess(res)
    res = epidb.create_column_type_simple("integer_column", "description", "integer", self.admin_key)
    self.assertSuccess(res)
    res = epidb.create_column_type_simple("double_column", "description", "double", self.admin_key)
    self.assertSuccess(res)
    res = epidb.create_column_type_range("score", "description", 0.0, 1.0, self.admin_key)
    self.assertSuccess(res)
    strand = ["+", "-"]
    res = epidb.create_column_type_category("STRAND", "description", strand, self.admin_key)
    self.assertSuccess(res)


    (s, ss) = epidb.search("string_column", "column_types", self.admin_key)
    (s, info) = epidb.info(ss[0][0], self.admin_key)
    self.assertEqual(info[0], {'_id': 'ct31', 'description': 'description', 'type': 'column_type', 'name': 'string_column', 'column_type': 'string'})

    (s, ss) = epidb.search("integer_column", "column_types", self.admin_key)
    (s, info) = epidb.info(ss[0][0], self.admin_key)
    self.assertEqual(info[0], {'_id': 'ct32', 'column_type': 'integer', 'description': 'description',  'type': 'column_type', 'name': 'integer_column'})

    (s, ss) = epidb.search("double_column", "column_types", self.admin_key)
    (s, info) = epidb.info(ss[0][0], self.admin_key)
    self.assertEqual(info[0], {'_id': 'ct33', 'column_type': 'double', 'description': 'description', 'type': 'column_type', 'name': 'double_column'})

    (s, ss) = epidb.search("score", "column_types", self.admin_key)
    (s, info) = epidb.info(ss[0][0], self.admin_key)
    self.assertEqual(info[0], {'_id': 'ct34','type': 'column_type', 'description': 'description', 'maximum': '1', 'minimum': '0', 'name': 'score', 'column_type': 'range'})

    (s, ss) = epidb.search("STRAND", "column_types", self.admin_key)
    (s, info) = epidb.info(ss[0][0], self.admin_key)
    self.assertEqual(info[0], {'_id': 'ct35', 'type': 'column_type', 'description': 'description', 'name': 'STRAND', 'column_type': 'category', 'items': '+,-'})
Exemplo n.º 5
0
    def test_invalid_format_types(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base(epidb)
        aid1 = self.insert_annotation(epidb, "Cpg Islands All Fields")

        (s, m) = epidb.create_column_type_simple("CPG_ISLAND_NAME", "",
                                                 "string", self.admin_key)
        self.assertSuccess(s, m)

        (s, m) = epidb.create_column_type_simple("NUM_CPG_S", "", "string",
                                                 self.admin_key)
        self.assertSuccess(s, m)

        (s, m) = epidb.create_column_type_simple("NUM_GC_S", "", "string",
                                                 self.admin_key)
        self.assertSuccess(s, m)

        (s, m) = epidb.create_column_type_simple("PER_CG_S", "", "string",
                                                 self.admin_key)
        self.assertSuccess(s, m)

        (s, m) = epidb.create_column_type_simple("OBS_EXP_S", "", "string",
                                                 self.admin_key)
        self.assertSuccess(s, m)

        (s, m) = epidb.create_column_type_simple("PER_CPG_S", "", "string",
                                                 self.admin_key)
        self.assertSuccess(s, m)

        (s, m) = epidb.create_column_type_simple("LENGTH_S", "", "string",
                                                 self.admin_key)
        self.assertSuccess(s, m)

        (s, clone_id) = epidb.clone_dataset(
            aid1, "New CpG Islands", "", "", "", "", "",
            "CHROMOSOME,START,END,CPG_ISLAND_NAME,LENGTH_S,NUM_CPG_S,NUM_GC_S,PER_CPG_S,PER_CG_S,OBS_EXP_S",
            {"new": "true"}, self.admin_key)
        self.assertFailure(s, clone_id)
        self.assertEqual(
            clone_id,
            "The column 'LENGTH_S' (type: string) is incompatible with the original column 'LENGTH' (type: integer)"
        )

        # --

        (s, m) = epidb.create_column_type_simple("OBS_EXP_INT", "", "integer",
                                                 self.admin_key)
        self.assertSuccess(s, m)

        (s, clone_id) = epidb.clone_dataset(
            aid1, "New CpG Islands", "", "", "", "", "",
            "CHROMOSOME,START,END,CPG_ISLAND_NAME,LENGTH,NUM_CPG,NUM_GC,PER_CPG,PER_CG,OBS_EXP_INT",
            {"new": "true"}, self.admin_key)
        self.assertFailure(s, clone_id)
        self.assertEqual(
            clone_id,
            "The column 'OBS_EXP_INT' (type: integer) is incompatible with the original column 'OBS_EXP' (type: double)"
        )

        # --
        (s, m) = epidb.create_column_type_range("OBS_EXP_RANGE", "", -1.0, 1.0,
                                                self.admin_key)
        self.assertSuccess(s, m)

        (s, clone_id) = epidb.clone_dataset(
            aid1, "New CpG Islands", "", "", "", "", "",
            "CHROMOSOME,START,END,CPG_ISLAND_NAME,LENGTH,NUM_CPG,NUM_GC,PER_CPG,PER_CG,OBS_EXP_RANGE",
            {"new": "true"}, self.admin_key)
        self.assertFailure(s, clone_id)
        self.assertEqual(
            clone_id,
            "The column 'OBS_EXP_RANGE' (type: range) is incompatible with the original column 'OBS_EXP' (type: double)"
        )

        # --
        (s, m) = epidb.create_column_type_category("OBS_EXP_CATEGORY", "",
                                                   ["+", "-"], self.admin_key)
        self.assertSuccess(s, m)

        (s, clone_id) = epidb.clone_dataset(
            aid1, "New CpG Islands", "", "", "", "", "",
            "CHROMOSOME,START,END,CPG_ISLAND_NAME,LENGTH,NUM_CPG,NUM_GC,PER_CPG,PER_CG,OBS_EXP_CATEGORY",
            {"new": "true"}, self.admin_key)
        self.assertFailure(s, clone_id)
        self.assertEqual(
            clone_id,
            "The column 'OBS_EXP_CATEGORY' (type: category) is incompatible with the original column 'OBS_EXP' (type: double)"
        )

        # --
        (s, clone_id) = epidb.clone_dataset(
            aid1, "New CpG Islands", "", "", "", "", "",
            "CHROMOSOME,START,END,CPG_ISLAND_NAME,LENGTH,NUM_CPG,NUM_GC,PER_CPG,PER_CG,OBS_EXP",
            {"new": "true"}, self.admin_key)
        self.assertSuccess(s, clone_id)