def test_main(self): in_fname = test_utils.genomics_core_testdata('test_allele_depth.vcf') out_fname = test_utils.test_tmpfile('output.vcf') add_ad_to_vcf.main(['add_ad_to_vcf', in_fname, out_fname]) with vcf.VcfReader(out_fname, use_index=False) as reader: info_ids = [info.id for info in reader.header.infos] self.assertTrue('AD' in info_ids) variant1 = next(reader) self.assertEqual([3, 3], variant_utils.get_info(variant1, 'AD', reader)) variant2 = next(reader) self.assertEqual([30, 44], variant_utils.get_info(variant2, 'AD', reader)) variant3 = next(reader) self.assertEqual([15, 4], variant_utils.get_info(variant3, 'AD', reader)) variant4 = next(reader) self.assertEqual([2, 4], variant_utils.get_info(variant4, 'AD', reader)) variant5 = next(reader) self.assertEqual([24, 2], variant_utils.get_info(variant5, 'AD', reader))
def test_get_info(self, field_name, reader, expected): if reader is not None: reader = mock.Mock() reader.field_access_cache.info_field_get_fn.return_value = ( functools.partial( struct_utils.get_string_field, is_single_field=True)) variant = variants_pb2.Variant() variant_utils.set_info(variant, 'AD', [23, 25]) variant_utils.set_info(variant, 'AA', 'C') variant_utils.set_info(variant, '1000G', True) variant_utils.set_info(variant, 'DB', False) actual = variant_utils.get_info(variant, field_name, vcf_object=reader) self.assertEqual(actual, expected)