def _compile_metaheaders(incoming_headers, vcf_readers, all_sample_names, contigs_to_keep, format_tags_to_keep, info_tags_to_keep): #pylint: disable=too-many-arguments ordered_metaheaders = list(incoming_headers) all_info_metaheaders = {} all_format_metaheaders = {} all_contig_metaheaders = {} for vcf_reader in vcf_readers: all_info_metaheaders.update(vcf_reader.info_metaheaders) all_format_metaheaders.update(vcf_reader.format_metaheaders) all_contig_metaheaders.update(vcf_reader.contig_metaheaders) all_info_metaheaders[_MULT_ALT_TAG] = _MULT_ALT_HEADER if all_contig_metaheaders: for contig_id in contigs_to_keep: ordered_metaheaders.append(all_contig_metaheaders[contig_id]) for tag in info_tags_to_keep: ordered_metaheaders.append(all_info_metaheaders[tag]) for tag in format_tags_to_keep: ordered_metaheaders.append(all_format_metaheaders[tag]) sorted_metaheaders = utils.sort_metaheaders(ordered_metaheaders) column_header = vcf_readers[0].column_header.split("\t")[0:9] column_header.extend(all_sample_names) sorted_metaheaders.append("\t".join(column_header)) return sorted_metaheaders
def test_sort_metaheaders_sortsWithinCategoryAlphaNum(self): unsorted = [ "##contig=<ID=chr13", "##contig=<ID=chr1", "##contig=<ID=chr2" ] actual = utils.sort_metaheaders(unsorted) expected = [ "##contig=<ID=chr1", "##contig=<ID=chr2", "##contig=<ID=chr13" ] self.assertEquals(expected, actual)
def _write_headers(reader, new_tags, execution_context, file_writer): headers = reader.metaheaders headers.extend(execution_context) for tag in new_tags: headers.append(tag.metaheader) sorted_headers = utils.sort_metaheaders(headers) sorted_headers.append(reader.column_header) file_writer.write("\n".join(sorted_headers) + "\n")
def test_sort_metaheaders_completeList(self): unsorted = [ "##FORMAT", "##fileformat", "##INFO", "##jacquard.foo=", "##ALT", "#CHROM", "##contig", "##FILTER" ] actual = utils.sort_metaheaders(unsorted) expected = [ "##fileformat", "##jacquard.foo=", "##contig", "##ALT", "##FILTER", "##INFO", "##FORMAT", "#CHROM" ] self.assertEquals(expected, actual)
def _write_metaheaders(caller, vcf_reader, file_writer, execution_context=None, new_meta_headers=None): new_headers = list(vcf_reader.metaheaders) if execution_context: new_headers.extend(execution_context) new_headers.extend(caller.get_metaheaders()) if new_meta_headers: new_headers.append(new_meta_headers) sorted_metaheaders = utils.sort_metaheaders(new_headers) sorted_metaheaders.append(vcf_reader.column_header) file_writer.write("\n".join(sorted_metaheaders) +"\n")
def _write_metaheaders(caller, vcf_reader, file_writer, execution_context=None, new_meta_headers=None): new_headers = list(vcf_reader.metaheaders) if execution_context: new_headers.extend(execution_context) new_headers.extend(caller.get_metaheaders()) if new_meta_headers: new_headers.append(new_meta_headers) sorted_metaheaders = utils.sort_metaheaders(new_headers) sorted_metaheaders.append(vcf_reader.column_header) file_writer.write("\n".join(sorted_metaheaders) + "\n")
def _write_zscores(caller, metaheaders, vcf_reader, file_writer): #TODO: (jebene) make zscores and tmp file follow the same pattern when writing try: file_writer.open() headers = list(metaheaders) headers.extend(vcf_reader.metaheaders) headers.extend(caller.metaheaders) sorted_metaheaders = utils.sort_metaheaders(headers) sorted_metaheaders.append(vcf_reader.column_header) file_writer.write("\n".join(sorted_metaheaders) + "\n") vcf_reader.open() for vcf_record in vcf_reader.vcf_records(): line = caller.add_tags(vcf_record) file_writer.write(line) finally: vcf_reader.close() file_writer.close()
def _write_zscores(caller, metaheaders, vcf_reader, file_writer): #TODO: (jebene) make zscores and tmp file follow the same pattern when writing try: file_writer.open() headers = list(metaheaders) headers.extend(vcf_reader.metaheaders) headers.extend(caller.metaheaders) sorted_metaheaders = utils.sort_metaheaders(headers) sorted_metaheaders.append(vcf_reader.column_header) file_writer.write("\n".join(sorted_metaheaders) +"\n") vcf_reader.open() for vcf_record in vcf_reader.vcf_records(): line = caller.add_tags(vcf_record) file_writer.write(line) finally: vcf_reader.close() file_writer.close()
def test_sort_metaheaders_sortsWithinCategory(self): unsorted = ["##FORMAT=DP", "##FORMAT=AF", "##jacquard.bar="] actual = utils.sort_metaheaders(unsorted) expected = ["##jacquard.bar=", "##FORMAT=AF", "##FORMAT=DP"] self.assertEquals(expected, actual)
def test_sort_metaheaders_unexpectedMetaheadesr(self): unsorted = ["##FORMAT", "##INFO", "##Strelka", "##MuTect", "##VarScan"] actual = utils.sort_metaheaders(unsorted) expected = ["##MuTect", "##Strelka", "##VarScan", "##INFO", "##FORMAT"] self.assertEquals(expected, actual)
def test_sort_metaheaders_sortsWithinCategoryAlphaNum(self): unsorted = ["##contig=<ID=chr13", "##contig=<ID=chr1", "##contig=<ID=chr2"] actual = utils.sort_metaheaders(unsorted) expected = ["##contig=<ID=chr1", "##contig=<ID=chr2", "##contig=<ID=chr13"] self.assertEquals(expected, actual)
def test_sort_metaheaders_completeList(self): unsorted = ["##FORMAT", "##fileformat", "##INFO", "##jacquard.foo=", "##ALT", "#CHROM", "##contig", "##FILTER"] actual = utils.sort_metaheaders(unsorted) expected = ["##fileformat", "##jacquard.foo=", "##contig", "##ALT", "##FILTER", "##INFO", "##FORMAT", "#CHROM"] self.assertEquals(expected, actual)
def test_sort_metaheaders(self): unsorted = ["##FORMAT", "##fileformat", "##INFO", "##jacquard.foo="] actual = utils.sort_metaheaders(unsorted) expected = ["##fileformat", "##jacquard.foo=", "##INFO", "##FORMAT"] self.assertEquals(expected, actual)