diff --git a/jacquard/variant_caller_transforms/mutect.py b/jacquard/variant_caller_transforms/mutect.py index a7d8232..545df85 100644 --- a/jacquard/variant_caller_transforms/mutect.py +++ b/jacquard/variant_caller_transforms/mutect.py @@ -41,7 +41,7 @@ def __init__(self): self).__init__(MUTECT_ABBREVIATION, common_tags.ALLELE_FREQ_TAG, ('Jacquard allele frequency for MuTect: ' - 'Decimal allele frequency rounded to 2 digits ' + 'Decimal allele frequency rounded to 4 digits ' '(based on FA)')) def add_tag_values(self, vcf_record): diff --git a/jacquard/variant_caller_transforms/strelka.py b/jacquard/variant_caller_transforms/strelka.py index 2231a92..933dec9 100644 --- a/jacquard/variant_caller_transforms/strelka.py +++ b/jacquard/variant_caller_transforms/strelka.py @@ -93,7 +93,7 @@ def __init__(self): self).__init__(STRELKA_ABBREVIATION, common_tags.ALLELE_FREQ_TAG, ('Jacquard allele frequency for Strelka: Decimal ' - 'allele frequency rounded to 2 digits (based on ' + 'allele frequency rounded to 4 digits (based on ' 'alt_depth/total_depth. Uses (TIR tier 2)/DP2 if ' 'available, otherwise uses (ACGT tier2 depth) / ' 'DP2)')) diff --git a/jacquard/variant_caller_transforms/varscan.py b/jacquard/variant_caller_transforms/varscan.py index fc48547..ed9f5cc 100644 --- a/jacquard/variant_caller_transforms/varscan.py +++ b/jacquard/variant_caller_transforms/varscan.py @@ -61,7 +61,7 @@ class _AlleleFreqTag(common_tags.AbstractJacquardTag): def _standardize_af(cls, value): new_values = [] for val in value: - new_val = str(float(val.strip("%")) / 100) + new_val = str(round(float(val.strip("%")) / 100, 6)) new_values.append(utils.round_digits(new_val)) return ",".join(new_values) @@ -70,7 +70,7 @@ def __init__(self): self).__init__(VARSCAN_ABBREVIATION, common_tags.ALLELE_FREQ_TAG, ('Jacquard allele frequency for VarScan: Decimal ' - 'allele frequency rounded to 2 digits (based on ' + 'allele frequency rounded to 4 digits (based on ' 'FREQ)')) def add_tag_values(self, vcf_record): diff --git a/test/functional_tests/01_translate/benchmark/tiny.mutect.translatedTags.vcf b/test/functional_tests/01_translate/benchmark/tiny.mutect.translatedTags.vcf index 8b9ce0f..11c26f9 100644 --- a/test/functional_tests/01_translate/benchmark/tiny.mutect.translatedTags.vcf +++ b/test/functional_tests/01_translate/benchmark/tiny.mutect.translatedTags.vcf @@ -111,7 +111,7 @@ ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/01_translate/benchmark/tiny.strelka.indels.translatedTags.vcf b/test/functional_tests/01_translate/benchmark/tiny.strelka.indels.translatedTags.vcf index 50a5934..a5ef4b5 100644 --- a/test/functional_tests/01_translate/benchmark/tiny.strelka.indels.translatedTags.vcf +++ b/test/functional_tests/01_translate/benchmark/tiny.strelka.indels.translatedTags.vcf @@ -58,7 +58,7 @@ ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/01_translate/benchmark/tiny.strelka.snvs.translatedTags.vcf b/test/functional_tests/01_translate/benchmark/tiny.strelka.snvs.translatedTags.vcf index eb73265..583d423 100644 --- a/test/functional_tests/01_translate/benchmark/tiny.strelka.snvs.translatedTags.vcf +++ b/test/functional_tests/01_translate/benchmark/tiny.strelka.snvs.translatedTags.vcf @@ -52,7 +52,7 @@ ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/01_translate/benchmark/tiny.varscan.indel.translatedTags.vcf b/test/functional_tests/01_translate/benchmark/tiny.varscan.indel.translatedTags.vcf index 3aece75..8e3d549 100644 --- a/test/functional_tests/01_translate/benchmark/tiny.varscan.indel.translatedTags.vcf +++ b/test/functional_tests/01_translate/benchmark/tiny.varscan.indel.translatedTags.vcf @@ -20,7 +20,7 @@ ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/01_translate/benchmark/tiny.varscan.snp.translatedTags.vcf b/test/functional_tests/01_translate/benchmark/tiny.varscan.snp.translatedTags.vcf index 0eff973..faafc5d 100644 --- a/test/functional_tests/01_translate/benchmark/tiny.varscan.snp.translatedTags.vcf +++ b/test/functional_tests/01_translate/benchmark/tiny.varscan.snp.translatedTags.vcf @@ -20,7 +20,7 @@ ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/02_merge/benchmark/merged.vcf b/test/functional_tests/02_merge/benchmark/merged.vcf index cc92ee6..34e940f 100644 --- a/test/functional_tests/02_merge/benchmark/merged.vcf +++ b/test/functional_tests/02_merge/benchmark/merged.vcf @@ -7,13 +7,13 @@ ##contig= ##contig= ##INFO= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= #CHROM POS ID REF ALT QUAL FILTER INFO FORMAT tiny|NORMAL tiny|TUMOR diff --git a/test/functional_tests/02_merge/input/tiny.mutect.normalized.jacquardTags.HCsomatic.vcf b/test/functional_tests/02_merge/input/tiny.mutect.normalized.jacquardTags.HCsomatic.vcf index 7ea91ec..2421d21 100644 --- a/test/functional_tests/02_merge/input/tiny.mutect.normalized.jacquardTags.HCsomatic.vcf +++ b/test/functional_tests/02_merge/input/tiny.mutect.normalized.jacquardTags.HCsomatic.vcf @@ -112,7 +112,7 @@ ##jacquard.command=tag c:\\users\\jebene\\appdata\\local\\temp\\tmptivahf\\normalize c:\\users\\jebene\\appdata\\local\\temp\\tmptivahf\\tag --force ##jacquard.cwd=C:\\Users\\jebene\\git ##jacquard.tag.caller=MuTect -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##jacquard.filterHCSomatic.excluded_variants=37 diff --git a/test/functional_tests/02_merge/input/tiny.strelka.normalized.jacquardTags.HCsomatic.vcf b/test/functional_tests/02_merge/input/tiny.strelka.normalized.jacquardTags.HCsomatic.vcf index 5d8fbf3..332eee9 100644 --- a/test/functional_tests/02_merge/input/tiny.strelka.normalized.jacquardTags.HCsomatic.vcf +++ b/test/functional_tests/02_merge/input/tiny.strelka.normalized.jacquardTags.HCsomatic.vcf @@ -79,7 +79,7 @@ ##jacquard.command=tag c:\\users\\jebene\\appdata\\local\\temp\\tmpfyxdri\\normalize c:\\users\\jebene\\appdata\\local\\temp\\tmpfyxdri\\tag --force ##jacquard.cwd=C:\\Users\\jebene\\git ##jacquard.tag.caller=Strelka -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FILTER= diff --git a/test/functional_tests/02_merge/input/tiny.varscan.normalized.jacquardTags.HCsomatic.vcf b/test/functional_tests/02_merge/input/tiny.varscan.normalized.jacquardTags.HCsomatic.vcf index 45ddb1f..82790a0 100644 --- a/test/functional_tests/02_merge/input/tiny.varscan.normalized.jacquardTags.HCsomatic.vcf +++ b/test/functional_tests/02_merge/input/tiny.varscan.normalized.jacquardTags.HCsomatic.vcf @@ -20,7 +20,7 @@ ##jacquard.command=tag c:\\users\\jebene\\appdata\\local\\temp\\tmpfuwrpl\\normalize c:\\users\\jebene\\appdata\\local\\temp\\tmpfuwrpl\\tag --force ##jacquard.cwd=C:\\Users\\jebene\\git ##jacquard.tag.caller=VarScan -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##jacquard.filterHCSomatic.excluded_variants=43 diff --git a/test/functional_tests/02_merge_unsorted/benchmark/merged.vcf b/test/functional_tests/02_merge_unsorted/benchmark/merged.vcf index cc92ee6..34e940f 100644 --- a/test/functional_tests/02_merge_unsorted/benchmark/merged.vcf +++ b/test/functional_tests/02_merge_unsorted/benchmark/merged.vcf @@ -7,13 +7,13 @@ ##contig= ##contig= ##INFO= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= #CHROM POS ID REF ALT QUAL FILTER INFO FORMAT tiny|NORMAL tiny|TUMOR diff --git a/test/functional_tests/02_merge_unsorted/input/tiny.mutect.normalized.jacquardTags.HCsomatic.vcf b/test/functional_tests/02_merge_unsorted/input/tiny.mutect.normalized.jacquardTags.HCsomatic.vcf index 8b39d8e..d7b1cbb 100644 --- a/test/functional_tests/02_merge_unsorted/input/tiny.mutect.normalized.jacquardTags.HCsomatic.vcf +++ b/test/functional_tests/02_merge_unsorted/input/tiny.mutect.normalized.jacquardTags.HCsomatic.vcf @@ -112,7 +112,7 @@ ##jacquard.command=tag c:\\users\\jebene\\appdata\\local\\temp\\tmptivahf\\normalize c:\\users\\jebene\\appdata\\local\\temp\\tmptivahf\\tag --force ##jacquard.cwd=C:\\Users\\jebene\\git ##jacquard.tag.caller=MuTect -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##jacquard.filterHCSomatic.excluded_variants=37 diff --git a/test/functional_tests/02_merge_unsorted/input/tiny.strelka.normalized.jacquardTags.HCsomatic.vcf b/test/functional_tests/02_merge_unsorted/input/tiny.strelka.normalized.jacquardTags.HCsomatic.vcf index 5f4b570..ecf6bfe 100644 --- a/test/functional_tests/02_merge_unsorted/input/tiny.strelka.normalized.jacquardTags.HCsomatic.vcf +++ b/test/functional_tests/02_merge_unsorted/input/tiny.strelka.normalized.jacquardTags.HCsomatic.vcf @@ -79,7 +79,7 @@ ##jacquard.command=tag c:\\users\\jebene\\appdata\\local\\temp\\tmpfyxdri\\normalize c:\\users\\jebene\\appdata\\local\\temp\\tmpfyxdri\\tag --force ##jacquard.cwd=C:\\Users\\jebene\\git ##jacquard.tag.caller=Strelka -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FILTER= diff --git a/test/functional_tests/02_merge_unsorted/input/tiny.varscan.normalized.jacquardTags.HCsomatic.vcf b/test/functional_tests/02_merge_unsorted/input/tiny.varscan.normalized.jacquardTags.HCsomatic.vcf index 45ddb1f..82790a0 100644 --- a/test/functional_tests/02_merge_unsorted/input/tiny.varscan.normalized.jacquardTags.HCsomatic.vcf +++ b/test/functional_tests/02_merge_unsorted/input/tiny.varscan.normalized.jacquardTags.HCsomatic.vcf @@ -20,7 +20,7 @@ ##jacquard.command=tag c:\\users\\jebene\\appdata\\local\\temp\\tmpfuwrpl\\normalize c:\\users\\jebene\\appdata\\local\\temp\\tmpfuwrpl\\tag --force ##jacquard.cwd=C:\\Users\\jebene\\git ##jacquard.tag.caller=VarScan -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##jacquard.filterHCSomatic.excluded_variants=43 diff --git a/test/functional_tests/03_summarize/benchmark/summarized.vcf b/test/functional_tests/03_summarize/benchmark/summarized.vcf index 757e9b8..ca5cccf 100644 --- a/test/functional_tests/03_summarize/benchmark/summarized.vcf +++ b/test/functional_tests/03_summarize/benchmark/summarized.vcf @@ -9,7 +9,7 @@ ##jacquard= ##INFO= ##INFO= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/03_summarize/input/tiny_strelka.merged.vcf b/test/functional_tests/03_summarize/input/tiny_strelka.merged.vcf index 941c0c9..cdd9237 100644 --- a/test/functional_tests/03_summarize/input/tiny_strelka.merged.vcf +++ b/test/functional_tests/03_summarize/input/tiny_strelka.merged.vcf @@ -1,4 +1,4 @@ -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##fileformat=VCFv4.2 diff --git a/test/functional_tests/04_expand/input/summarized.vcf b/test/functional_tests/04_expand/input/summarized.vcf index 89a0c5c..2176a42 100644 --- a/test/functional_tests/04_expand/input/summarized.vcf +++ b/test/functional_tests/04_expand/input/summarized.vcf @@ -178,7 +178,7 @@ ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/04_expand_col_spec/input/summarized.vcf b/test/functional_tests/04_expand_col_spec/input/summarized.vcf index cc98ba7..108ff98 100644 --- a/test/functional_tests/04_expand_col_spec/input/summarized.vcf +++ b/test/functional_tests/04_expand_col_spec/input/summarized.vcf @@ -178,7 +178,7 @@ ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/jacquard_test/merge/benchmark/merged.vcf b/test/functional_tests/jacquard_test/merge/benchmark/merged.vcf index 4d1c87b..9acb859 100644 --- a/test/functional_tests/jacquard_test/merge/benchmark/merged.vcf +++ b/test/functional_tests/jacquard_test/merge/benchmark/merged.vcf @@ -4,19 +4,19 @@ ##jacquard= ##contig= ##INFO= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT=AC is translated as normal=0/0, tumor=0/1. Example for indel: INFO:SGT=ref->het is translated as normal=0/0, tumor=0/1."> ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/jacquard_test/summarize/benchmark/summarized.vcf b/test/functional_tests/jacquard_test/summarize/benchmark/summarized.vcf index 8ef3606..af7c116 100644 --- a/test/functional_tests/jacquard_test/summarize/benchmark/summarized.vcf +++ b/test/functional_tests/jacquard_test/summarize/benchmark/summarized.vcf @@ -11,13 +11,13 @@ ##INFO= ##INFO= ##INFO= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= @@ -35,7 +35,7 @@ ##FORMAT= ##FORMAT=0/2>1/1). Variants which failed their filter are ignored."> ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/jacquard_test/translate/benchmark/tiny.mutect.translatedTags.vcf b/test/functional_tests/jacquard_test/translate/benchmark/tiny.mutect.translatedTags.vcf index ddefcbb..9105fe4 100644 --- a/test/functional_tests/jacquard_test/translate/benchmark/tiny.mutect.translatedTags.vcf +++ b/test/functional_tests/jacquard_test/translate/benchmark/tiny.mutect.translatedTags.vcf @@ -111,7 +111,7 @@ ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/jacquard_test/translate/benchmark/tiny.strelka.indels.translatedTags.vcf b/test/functional_tests/jacquard_test/translate/benchmark/tiny.strelka.indels.translatedTags.vcf index 53467e2..1f63c52 100644 --- a/test/functional_tests/jacquard_test/translate/benchmark/tiny.strelka.indels.translatedTags.vcf +++ b/test/functional_tests/jacquard_test/translate/benchmark/tiny.strelka.indels.translatedTags.vcf @@ -58,7 +58,7 @@ ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/jacquard_test/translate/benchmark/tiny.strelka.snvs.translatedTags.vcf b/test/functional_tests/jacquard_test/translate/benchmark/tiny.strelka.snvs.translatedTags.vcf index a03abba..196f565 100644 --- a/test/functional_tests/jacquard_test/translate/benchmark/tiny.strelka.snvs.translatedTags.vcf +++ b/test/functional_tests/jacquard_test/translate/benchmark/tiny.strelka.snvs.translatedTags.vcf @@ -52,7 +52,7 @@ ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/jacquard_test/translate/benchmark/tiny.varscan.indel.translatedTags.vcf b/test/functional_tests/jacquard_test/translate/benchmark/tiny.varscan.indel.translatedTags.vcf index ccc3659..03bc32a 100644 --- a/test/functional_tests/jacquard_test/translate/benchmark/tiny.varscan.indel.translatedTags.vcf +++ b/test/functional_tests/jacquard_test/translate/benchmark/tiny.varscan.indel.translatedTags.vcf @@ -20,7 +20,7 @@ ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/functional_tests/jacquard_test/translate/benchmark/tiny.varscan.snp.translatedTags.vcf b/test/functional_tests/jacquard_test/translate/benchmark/tiny.varscan.snp.translatedTags.vcf index 8bdde16..b23dcb3 100644 --- a/test/functional_tests/jacquard_test/translate/benchmark/tiny.varscan.snp.translatedTags.vcf +++ b/test/functional_tests/jacquard_test/translate/benchmark/tiny.varscan.snp.translatedTags.vcf @@ -20,7 +20,7 @@ ##FORMAT= ##FORMAT= ##FORMAT= -##FORMAT= +##FORMAT= ##FORMAT= ##FORMAT= ##FORMAT= diff --git a/test/variant_caller_transforms/mutect_test.py b/test/variant_caller_transforms/mutect_test.py index e1bcf20..882570a 100644 --- a/test/variant_caller_transforms/mutect_test.py +++ b/test/variant_caller_transforms/mutect_test.py @@ -58,7 +58,7 @@ def test_add_tag_values_noChangeInGT(self): class AlleleFreqTagTestCase(test_case.JacquardBaseTestCase): def test_metaheader(self): - self.assertEqual('##FORMAT='.format(mutect.JQ_MUTECT_TAG), mutect._AlleleFreqTag().metaheader) + self.assertEqual('##FORMAT='.format(mutect.JQ_MUTECT_TAG), mutect._AlleleFreqTag().metaheader) def test_format_missingAFTag(self): tag = mutect._AlleleFreqTag() diff --git a/test/variant_caller_transforms/strelka_test.py b/test/variant_caller_transforms/strelka_test.py index f77b4f6..7e9907b 100644 --- a/test/variant_caller_transforms/strelka_test.py +++ b/test/variant_caller_transforms/strelka_test.py @@ -106,7 +106,7 @@ def test_add_tag_values_indels(self): class AlleleFreqTagTestCase(test_case.JacquardBaseTestCase): def test_metaheader(self): - self.assertEqual('##FORMAT='.format(strelka.JQ_STRELKA_TAG), strelka._AlleleFreqTag().metaheader) + self.assertEqual('##FORMAT='.format(strelka.JQ_STRELKA_TAG), strelka._AlleleFreqTag().metaheader) def test_format_missingAFTag(self): tag = strelka._AlleleFreqTag() diff --git a/test/variant_caller_transforms/varscan_test.py b/test/variant_caller_transforms/varscan_test.py index 481de09..6c855f7 100644 --- a/test/variant_caller_transforms/varscan_test.py +++ b/test/variant_caller_transforms/varscan_test.py @@ -69,7 +69,7 @@ def test_add_tag_values_missingGTTag(self): class AlleleFreqTagTestCase(test_case.JacquardBaseTestCase): def test_metaheader(self): - self.assertEqual('##FORMAT='.format(varscan.JQ_VARSCAN_TAG), + self.assertEqual('##FORMAT='.format(varscan.JQ_VARSCAN_TAG), varscan._AlleleFreqTag().metaheader) def test_format_missingAFTag(self): @@ -82,16 +82,30 @@ def test_format_missingAFTag(self): def test_format_presentAFTag(self): tag = varscan._AlleleFreqTag() - line = "CHROM|POS|ID|REF|ALT|QUAL|FILTER|INFO|FREQ:F2:F3|56.7%:SA.2:SA.3|83.4%:SB.2:SB.3\n".replace('|', "\t") - expected = "CHROM|POS|ID|REF|ALT|QUAL|FILTER|INFO|FREQ:F2:F3:{0}AF|56.7%:SA.2:SA.3:0.567|83.4%:SB.2:SB.3:0.834\n".format(varscan.JQ_VARSCAN_TAG).replace('|', "\t") + line = self.entab("CHROM|POS|ID|REF|ALT|QUAL|FILTER|INFO|" + "FREQ:F2:F3|" + "56.7%:SA.2:SA.3|" + "83.4%:SB.2:SB.3\n") + expected = self.entab(("CHROM|POS|ID|REF|ALT|QUAL|FILTER|INFO|" + "FREQ:F2:F3:{0}AF|" + "56.7%:SA.2:SA.3:0.567|" + "83.4%:SB.2:SB.3:0.834\n") + ).format(varscan.JQ_VARSCAN_TAG) processedVcfRecord = vcf.VcfRecord.parse_record(line, ["SA", "SB"]) tag.add_tag_values(processedVcfRecord) self.assertEquals(expected, processedVcfRecord.text()) def test_format_multAlt(self): tag = varscan._AlleleFreqTag() - line = "CHROM|POS|ID|REF|ALT|QUAL|FILTER|INFO|FREQ:F2:F3|56.7%,41%:SA.2:SA.3|83.4%,23%:SB.2:SB.3\n".replace('|', "\t") - expected = "CHROM|POS|ID|REF|ALT|QUAL|FILTER|INFO|FREQ:F2:F3:{0}AF|56.7%,41%:SA.2:SA.3:0.567,0.41|83.4%,23%:SB.2:SB.3:0.834,0.23\n".format(varscan.JQ_VARSCAN_TAG).replace('|', "\t") + line = self.entab("CHROM|POS|ID|REF|ALT|QUAL|FILTER|INFO|" + "FREQ:F2:F3|" + "56.7%,41%:SA.2:SA.3|" + "83.4%,23%:SB.2:SB.3\n") + expected = self.entab(("CHROM|POS|ID|REF|ALT|QUAL|FILTER|INFO|" + "FREQ:F2:F3:{0}AF|" + "56.7%,41%:SA.2:SA.3:0.567,0.41|" + "83.4%,23%:SB.2:SB.3:0.834,0.23\n") + ).format(varscan.JQ_VARSCAN_TAG) processedVcfRecord = vcf.VcfRecord.parse_record(line, ["SA", "SB"]) tag.add_tag_values(processedVcfRecord) self.assertEquals(expected, processedVcfRecord.text())