示例#1
0
    def get_class_status(self, info_field):
        """Extract class status from nucleus.protos.Variant.info.

    Args:
      info_field: INFO field of nucleus.protos.Variant proto to extract
        the classes status from. Must contain `info_field_name` field which is
        set to one of self.classes_dict.keys().

    Returns:
      string. Class status. Has to be one of the keys of `classes_dict`.

    Raises:
      ValueError: if type is missing in info_field
      ValueError: if type is not in self.classes_dict.keys()
    """

        if self.info_field_name not in info_field.keys():
            raise ValueError("Cannot create class labels: " +
                             "VCF file does not contain INFO/{} field".format(
                                 self.info_field_name))

        class_status = struct_utils.get_string_field(info_field,
                                                     self.info_field_name,
                                                     True)

        if class_status not in self.classes_dict.keys():
            raise ValueError("class_status status unknown: {}. "
                             "Known status: {}".format(
                                 class_status, self.classes_dict.keys()))
        return class_status
 def test_get_string_field(self, value, is_single_field, expected):
   key = 'field'
   field_map = _set_protomap_from_dict({})
   struct_utils.set_string_field(field_map, key, value)
   actual = struct_utils.get_string_field(field_map, key, is_single_field)
   self.assertEqual(actual, expected)