Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
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")
Exemplo n.º 5
0
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")
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
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")
Exemplo n.º 8
0
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")
Exemplo n.º 9
0
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()
Exemplo n.º 10
0
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()
Exemplo n.º 11
0
 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)
Exemplo n.º 12
0
 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)
Exemplo n.º 13
0
 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)
Exemplo n.º 14
0
 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)
Exemplo n.º 15
0
 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)
Exemplo n.º 16
0
 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)
Exemplo n.º 17
0
 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)
Exemplo n.º 18
0
 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)