def test_write_contig(self): self.lines = [ '##contig=<ID=M,length=16,assembly=B37,md5=c6,species="Homosapiens">\n', self.lines[-1], ] header = _get_vcf_header_from_lines(self.lines) header_fn = WriteVcfHeaderFn('') actual = header_fn._to_vcf_header_line('contig', header.contigs.values()[0]) expected = '##contig=<ID=M,length=16>\n' self.assertEqual(actual, expected)
def test_info_source_and_version(self): self.lines = [ '##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth",' 'Source="source",Version="version">\n', self.lines[-1] ] header = _get_vcf_header_from_lines(self.lines) header_fn = WriteVcfHeaderFn('') actual = header_fn._to_vcf_header_line('INFO', header.infos.values()[0]) expected = self.lines[0] self.assertEqual(actual, expected)
def test_to_vcf_header_line(self): header_fn = WriteVcfHeaderFn('') header = collections.OrderedDict([ ('id', 'NS'), ('num', 1), ('type', 'Integer'), ('desc', 'Number samples'), ]) expected = ('##INFO=<ID=NS,Number=1,Type=Integer,' 'Description="Number samples">\n') self.assertEqual(header_fn._to_vcf_header_line('INFO', header), expected)
def test_write_info_number_types(self): self.lines = [ '##INFO=<ID=NS,Number=1,Type=Integer,Description="Number samples">\n', '##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency">\n', '##INFO=<ID=HG,Number=G,Type=Integer,Description="IntInfo_G">\n', '##INFO=<ID=HR,Number=R,Type=String,Description="ChrInfo_R">\n', self.lines[-1], ] header = _get_vcf_header_from_lines(self.lines) header_fn = WriteVcfHeaderFn('') actual = [] for info in list(header.infos.values()): actual.append(header_fn._to_vcf_header_line('INFO', info)) expected = self.lines[:-1] self.assertCountEqual(actual, expected)