Skip to content

Commit

Permalink
Merge pull request #18 from martinghunt/apply_variants_to_probe_flanks
Browse files Browse the repository at this point in the history
Apply variants to probe flanks
  • Loading branch information
martinghunt authored Oct 9, 2020
2 parents bfe49f0 + 53a62ba commit be60d7c
Show file tree
Hide file tree
Showing 53 changed files with 1,031 additions and 1,481 deletions.

This file was deleted.

167 changes: 14 additions & 153 deletions tests/data/probe_mapping/annotate_vcf_with_probe_mapping.expect.vcf

Large diffs are not rendered by default.

166 changes: 14 additions & 152 deletions tests/data/probe_mapping/annotate_vcf_with_probe_mapping.in.vcf
Original file line number Diff line number Diff line change
@@ -1,154 +1,16 @@
##contig=<ID=ref,length=430>
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT sample
ref 37 1 T A . PASS . GT:EXPECT 1/1:FP
ref 37 2 T C . PASS . GT:EXPECT 1/1:FP
ref 37 3 T G . PASS . GT:EXPECT 1/1:FP
ref 38 4 G A . PASS . GT:EXPECT 1/1:FP
ref 38 5 G C . PASS . GT:EXPECT 1/1:FP
ref 38 6 G T . PASS . GT:EXPECT 1/1:FP
ref 39 7 T A . PASS . GT:EXPECT 1/1:FP
ref 39 8 T C . PASS . GT:EXPECT 1/1:FP
ref 39 9 T G . PASS . GT:EXPECT 1/1:FP
ref 40 10 A C . PASS . GT:EXPECT 1/1:FP
ref 40 11 A G . PASS . GT:EXPECT 1/1:TP
ref 40 12 A T . PASS . GT:EXPECT 1/1:FP
ref 41 13 C A . PASS . GT:EXPECT 1/1:FP
ref 41 14 C G . PASS . GT:EXPECT 1/1:FP
ref 41 15 C T . PASS . GT:EXPECT 1/1:FP
ref 42 16 A C . PASS . GT:EXPECT 1/1:FP
ref 42 17 A G . PASS . GT:EXPECT 1/1:FP
ref 42 18 A T . PASS . GT:EXPECT 1/1:FP
ref 43 19 G A . PASS . GT:EXPECT 1/1:FP
ref 43 20 G C . PASS . GT:EXPECT 1/1:FP
ref 43 21 G T . PASS . GT:EXPECT 1/1:FP
ref 57 22 G A . PASS . GT:EXPECT 1/1:FP
ref 57 23 G C . PASS . GT:EXPECT 1/1:FP
ref 57 24 G T . PASS . GT:EXPECT 1/1:FP
ref 58 25 C A . PASS . GT:EXPECT 1/1:FP
ref 58 26 C G . PASS . GT:EXPECT 1/1:FP
ref 58 27 C T . PASS . GT:EXPECT 1/1:FP
ref 59 28 A C . PASS . GT:EXPECT 1/1:FP
ref 59 29 A G . PASS . GT:EXPECT 1/1:FP
ref 59 30 A T . PASS . GT:EXPECT 1/1:FP
ref 60 31 A C . PASS . GT:EXPECT 1/1:FP
ref 60 32 A G . PASS . GT:EXPECT 1/1:TP
ref 60 33 A T . PASS . GT:EXPECT 1/1:FP
ref 61 34 A C . PASS . GT:EXPECT 1/1:FP
ref 61 35 A G . PASS . GT:EXPECT 1/1:FP
ref 61 36 A T . PASS . GT:EXPECT 1/1:FP
ref 62 37 G A . PASS . GT:EXPECT 1/1:FP
ref 62 38 G C . PASS . GT:EXPECT 1/1:FP
ref 62 39 G T . PASS . GT:EXPECT 1/1:FP
ref 63 40 A C . PASS . GT:EXPECT 1/1:FP
ref 63 41 A G . PASS . GT:EXPECT 1/1:FP
ref 63 42 A T . PASS . GT:EXPECT 1/1:FP
ref 77 43 G A . PASS . GT:EXPECT 1/1:FP
ref 77 44 G C . PASS . GT:EXPECT 1/1:FP
ref 77 45 G T . PASS . GT:EXPECT 1/1:FP
ref 78 46 C A . PASS . GT:EXPECT 1/1:FP
ref 78 47 C G . PASS . GT:EXPECT 1/1:FP
ref 78 48 C T . PASS . GT:EXPECT 1/1:FP
ref 79 49 C A . PASS . GT:EXPECT 1/1:FP
ref 79 50 C G . PASS . GT:EXPECT 1/1:FP
ref 79 51 C T . PASS . GT:EXPECT 1/1:FP
ref 80 52 T A . PASS . GT:EXPECT 1/1:FP
ref 80 53 T C . PASS . GT:EXPECT 1/1:TP
ref 80 54 T G . PASS . GT:EXPECT 1/1:FP
ref 81 55 C A . PASS . GT:EXPECT 1/1:FP
ref 81 56 C G . PASS . GT:EXPECT 1/1:FP
ref 81 57 C T . PASS . GT:EXPECT 1/1:FP
ref 82 58 C A . PASS . GT:EXPECT 1/1:FP
ref 82 59 C G . PASS . GT:EXPECT 1/1:FP
ref 82 60 C T . PASS . GT:EXPECT 1/1:FP
ref 83 61 G A . PASS . GT:EXPECT 1/1:FP
ref 83 62 G C . PASS . GT:EXPECT 1/1:FP
ref 83 63 G T . PASS . GT:EXPECT 1/1:FP
ref 106 64 G A . PASS . GT:EXPECT 1/1:FP
ref 106 65 G C . PASS . GT:EXPECT 1/1:FP
ref 106 66 G T . PASS . GT:EXPECT 1/1:FP
ref 107 67 T A . PASS . GT:EXPECT 1/1:FP
ref 107 68 T C . PASS . GT:EXPECT 1/1:FP
ref 107 69 T G . PASS . GT:EXPECT 1/1:FP
ref 108 70 C A . PASS . GT:EXPECT 1/1:FP
ref 108 71 C G . PASS . GT:EXPECT 1/1:FP
ref 108 72 C T . PASS . GT:EXPECT 1/1:FP
ref 109 73 G A . PASS . GT:EXPECT 1/1:FP
ref 109 74 G C . PASS . GT:EXPECT 1/1:TP
ref 109 75 G T . PASS . GT:EXPECT 1/1:FP
ref 110 76 C A . PASS . GT:EXPECT 1/1:FP
ref 110 77 C G . PASS . GT:EXPECT 1/1:FP
ref 110 78 C T . PASS . GT:EXPECT 1/1:TP
ref 111 79 A C . PASS . GT:EXPECT 1/1:FP
ref 111 80 A G . PASS . GT:EXPECT 1/1:TP
ref 111 81 A T . PASS . GT:EXPECT 1/1:FP
ref 112 82 T A . PASS . GT:EXPECT 1/1:FP
ref 112 83 T C . PASS . GT:EXPECT 1/1:FP
ref 112 84 T G . PASS . GT:EXPECT 1/1:FP
ref 113 85 A C . PASS . GT:EXPECT 1/1:FP
ref 113 86 A G . PASS . GT:EXPECT 1/1:FP
ref 113 87 A T . PASS . GT:EXPECT 1/1:FP
ref 114 88 G A . PASS . GT:EXPECT 1/1:FP
ref 114 89 G C . PASS . GT:EXPECT 1/1:FP
ref 114 90 G T . PASS . GT:EXPECT 1/1:FP
ref 137 91 C A . PASS . GT:EXPECT 1/1:FP
ref 137 92 C G . PASS . GT:EXPECT 1/1:FP
ref 137 93 C T . PASS . GT:EXPECT 1/1:FP
ref 138 94 T A . PASS . GT:EXPECT 1/1:FP
ref 138 95 T C . PASS . GT:EXPECT 1/1:FP
ref 138 96 T G . PASS . GT:EXPECT 1/1:FP
ref 139 97 C A . PASS . GT:EXPECT 1/1:FP
ref 139 98 C G . PASS . GT:EXPECT 1/1:FP
ref 139 99 C T . PASS . GT:EXPECT 1/1:FP
ref 140 100 G A . PASS . GT:EXPECT 1/1:FP
ref 140 101 G C . PASS . GT:EXPECT 1/1:FP
ref 140 102 G T . PASS . GT:EXPECT 1/1:FP
ref 140 103 GT AC . PASS . GT:EXPECT 1/1:FP
ref 140 104 GT G . PASS . GT:EXPECT 1/1:TP
ref 160 105 A AG . PASS . GT:EXPECT 1/1:Partial_TP
ref 160 106 A AT . PASS . GT:EXPECT 1/1:TP
ref 160 107 A C . PASS . GT:EXPECT 1/1:FP
ref 160 108 A G . PASS . GT:EXPECT 1/1:FP
ref 161 109 A C . PASS . GT:EXPECT 1/1:FP
ref 161 110 A G . PASS . GT:EXPECT 1/1:FP
ref 161 111 A T . PASS . GT:EXPECT 1/1:FP
ref 161 112 AAC ACGTACGGGTGGTGTGTTTGAAAGATAG . PASS . GT:EXPECT 1/1:Partial_TP
ref 161 113 AACAAGACGTCCTCT ACG . PASS . GT:EXPECT 1/1:Partial_TP
ref 162 114 A C . PASS . GT:EXPECT 1/1:FP
ref 162 115 A G . PASS . GT:EXPECT 1/1:FP
ref 162 116 A T . PASS . GT:EXPECT 1/1:FP
ref 163 117 C A . PASS . GT:EXPECT 1/1:FP
ref 163 118 C G . PASS . GT:EXPECT 1/1:FP
ref 163 119 C T . PASS . GT:EXPECT 1/1:FP
ref 164 120 A C . PASS . GT:EXPECT 1/1:FP
ref 164 121 A G . PASS . GT:EXPECT 1/1:FP
ref 164 122 A T . PASS . GT:EXPECT 1/1:FP
ref 230 123 TG T . PASS . GT:EXPECT 1/1:FP
ref 250 124 . G . PASS . GT:EXPECT 1/1:VFR_FILTER_NO_REF_SEQ
ref 250 125 C G . PASS . GT:EXPECT 1/1:VFR_FILTER_REF_STRING_MISMATCH
ref 250 126 G . . PASS . GT:EXPECT 1/1:VFR_FILTER_NO_ALTS
ref 250 127 G C . FILTER_X . GT:EXPECT 1/1:TP
ref 250 128 G C . MISMAPPED_UNPLACEABLE . GT:EXPECT 1/1:TP
ref 250 129 G C . PASS . EXPECT VFR_FILTER_NO_GT
ref 250 130 G C . PASS . GT:EXPECT ./.:VFR_FILTER_CANNOT_USE_GT
ref 250 131 G C . PASS . GT:EXPECT 0/1:VFR_FILTER_CANNOT_USE_GT
ref 298 132 G A . PASS . GT:EXPECT 1/1:FP
ref 298 133 G C . PASS . GT:EXPECT 1/1:FP
ref 298 134 G T . PASS . GT:EXPECT 1/1:FP
ref 299 135 C A . PASS . GT:EXPECT 1/1:FP
ref 299 136 C G . PASS . GT:EXPECT 1/1:FP
ref 299 137 C T . PASS . GT:EXPECT 1/1:FP
ref 300 138 A C . PASS . GT:EXPECT 1/1:FP
ref 300 139 A G . PASS . GT:EXPECT 1/1:FP
ref 300 140 A T . PASS . GT:EXPECT 1/1:FP
ref 300 141 ATGCGTATCG AGGTAACCCC . PASS . GT:EXPECT 1/1:Partial_TP
ref 300 142 ATGCGTATCG AGGTACGAGA . PASS . GT:EXPECT 1/1:TP
ref 301 143 T A . PASS . GT:EXPECT 1/1:FP
ref 301 144 T C . PASS . GT:EXPECT 1/1:FP
ref 302 145 G A . PASS . GT:EXPECT 1/1:FP
ref 302 146 G C . PASS . GT:EXPECT 1/1:FP
ref 302 147 G T . PASS . GT:EXPECT 1/1:FP
ref 303 148 C A . PASS . GT:EXPECT 1/1:FP
ref 303 149 C G . PASS . GT:EXPECT 1/1:FP
ref 304 150 G C . PASS . GT:EXPECT 1/1:FP
ref 304 151 G T . PASS . GT:EXPECT 1/1:FP
ref 400 152 G AAAAA . PASS . GT:EXPECT 1/1:FP_PROBE_UNMAPPED
ref 40 1 A G . PASS . GT:EXPECT 1/1:TP
ref 60 2 A G . PASS . GT:EXPECT 1/1:TP
ref 80 3 T C . PASS . GT:EXPECT 1/1:TP
ref 109 4 G C . PASS . GT:EXPECT 1/1:TP
ref 110 5 C T . PASS . GT:EXPECT 1/1:TP
ref 111 6 A G . PASS . GT:EXPECT 1/1:TP
ref 140 7 GT AC . PASS . GT:EXPECT 1/1:FP
ref 140 8 GT G . PASS . GT:EXPECT 1/1:TP
ref 160 9 A AG . PASS . GT:EXPECT 1/1:Partial_TP
ref 160 10 A AT . PASS . GT:EXPECT 1/1:TP
ref 230 11 TG T . PASS . GT:EXPECT 1/1:FP
ref 300 12 ATGCGTATCG AGGTAACCCC . PASS . GT:EXPECT 1/1:Partial_TP
ref 300 13 ATGCGTATCG AGGTACGAGA . PASS . GT:EXPECT 1/1:TP
ref 400 14 G AAAAA . PASS . GT:EXPECT 1/1:FP_PROBE_UNMAPPED
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ CTGACTGGCCGAATAGGTCAGATATAGGCAACGACATGTGCAGTGCGGCGACCCTTGCAG
AGACAGTGACGCTTTCGCCCCCGTTGCCTAAACCTATTTGAAGGAGTCCTGTAGCAGCCG
CAGTAAGGCACAATACCTCGGTCCGTGTTACCAGACCAATAACAAGACGTCCTCTTCAAT
GTTTAAATGACCCTCTCGTCATAAAACCTTTCTACTATGTGTTCCGCAATGATCAACAAC
TACAATGGCCCGTCGTGAATAACGCGACGGCTGAGACGAACGGCGCGTGAATGAAGCGCA
TACAATGGCGCGTCGTGAATAACGCGACGGCTGAGACGAACGGCGCGTGAATGAAGCGCA
GGTACGAGATTAAACAGCTCAGGAGCCAGTTTTCCAATCCTACATCTGTTTCTTGCGTCG
TAGCGGGACCCTCCATTGTTACTTATTAGGTTCTCGTTATGTCTCATAATCTCAGTGCTG
GTGTGATAAG
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
CTTATCACACCAGCACTGAGATTATGAGACATAACGAGAACCTAATAAGTAACAATGGAG
GGTCCCGCTACGACGCAAGAAACAGATGTAGGATTGGAAAACTGGCTCCTGAGCTGTTTA
ATCTCGTACCTGCGCTTCATTCACGCGCCGTTCGTCTCAGCCGTCGCGTTATTCACGACG
GGCCATTGTAGTTGTTGATCATTGCGGAACACATAGTAGAAAGGTTTTATGACGAGAGGG
CGCCATTGTAGTTGTTGATCATTGCGGAACACATAGTAGAAAGGTTTTATGACGAGAGGG
TCATTTAAACATTGAAGAGGACGTCTTGTTATTGGTCTGGTAACACGGACCGAGGTATTG
TGCCTTACTGCGGCTGCTACAGGACTCCTTCAAATAGGTTTAGGCAACGGGGGCGAAAGC
GTCACTGTCTCTGCAAGGGTCGCCGCACTGCACATGTCGTTGCCTATATCTGACCTATTC
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,11 @@ def add_fp_snps(positions, vcf_lines, ref_seq, truth_seq):

# These two make sure we hit lines in the code where the cigar string has I or D
# while the probe position that is tracked is inside the allele of interest.
# The other variants in this test file don't fo that.
vcf_lines.append(["ref", 161, ".", "".join(ref_seq[160:163]), "ACGTACGGGTGGTGTGTTTGAAAGATAG", ".", "PASS", ".", "GT:EXPECT", "1/1:Partial_TP"])
vcf_lines.append(["ref", 161, ".", "".join(ref_seq[160:175]), "ACG", ".", "PASS", ".", "GT:EXPECT", "1/1:Partial_TP"])
# The other variants in this test file don't do that.
# EDIT: have to remove these because they mess up the previous variants at position 160.
# Added this case into the cluster_snp_indel test instead
#vcf_lines.append(["ref", 161, ".", "".join(ref_seq[160:163]), "ACGTACGGGTGGTGTGTTTGAAAGATAG", ".", "PASS", ".", "GT:EXPECT", "1/1:Partial_TP"])
#vcf_lines.append(["ref", 161, ".", "".join(ref_seq[160:175]), "ACG", ".", "PASS", ".", "GT:EXPECT", "1/1:Partial_TP"])

fp_positions.extend(range(159, 164))
assert len(ref_seq) == len(truth_seq) == 299
Expand Down Expand Up @@ -131,24 +133,17 @@ def add_fp_snps(positions, vcf_lines, ref_seq, truth_seq):
ref_seq[230] = truth_seq[230] = "G"
vcf_lines.append(["ref", 230, ".", "TG", "T", ".", "PASS", ".", "GT:EXPECT", "1/1:FP"])


# SNP so near the end that probe won't map
vcf_lines.append(["ref", 400, ".", ref_seq[399], "AAAAA", ".", "PASS", ".", "GT:EXPECT", "1/1:FP_PROBE_UNMAPPED"])

# Add in records that can't be evaluated for various reasons
ref_seq[249] = "G"
truth_seq[249] = "C"
vcf_lines.append(["ref", 250, ".", "G", "C", ".", "FILTER_X", ".", "GT:EXPECT", "1/1:TP"])
vcf_lines.append(["ref", 250, ".", "G", "C", ".", "MISMAPPED_UNPLACEABLE", ".", "GT:EXPECT", "1/1:TP"])
vcf_lines.append(["ref", 250, ".", "G", "C", ".", "PASS", ".", "GT:EXPECT", "0/1:VFR_FILTER_CANNOT_USE_GT"])
vcf_lines.append(["ref", 250, ".", "G", "C", ".", "PASS", ".", "GT:EXPECT", "./.:VFR_FILTER_CANNOT_USE_GT"])
vcf_lines.append(["ref", 250, ".", "C", "G", ".", "PASS", ".", "GT:EXPECT", "1/1:VFR_FILTER_REF_STRING_MISMATCH"])
vcf_lines.append(["ref", 250, ".", "G", "C", ".", "PASS", ".", "EXPECT", "VFR_FILTER_NO_GT"])
vcf_lines.append(["ref", 250, ".", "G", ".", ".", "PASS", ".", "GT:EXPECT", "1/1:VFR_FILTER_NO_ALTS"])
vcf_lines.append(["ref", 250, ".", ".", "G", ".", "PASS", ".", "GT:EXPECT", "1/1:VFR_FILTER_NO_REF_SEQ"])


add_fp_snps(fp_positions, vcf_lines, ref_seq, truth_seq)
# We now have an underlying assumption that the input VCF does not contain a
# large number of errors, allowing us to apply called variants in the flanks
# of probes. This is to correctly call clusters of variants. This means that
# we can no longer add in all these FP SNPs at every position in this test -
# it results in flanks having junk and messing up the TP/FP call that
# we're testing. So don't do it for now (but leave here commented out in case
# we change the method again the future).
#add_fp_snps(fp_positions, vcf_lines, ref_seq, truth_seq)


with open("annotate_vcf_with_probe_mapping.in.vcf", "w") as f:
Expand Down
32 changes: 32 additions & 0 deletions tests/data/probe_mapping/clustered_snp_indel.expect.vcf
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
##fileformat=VCFv4.2
##FILTER=<ID=PASS,Description="All filters passed">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##contig=<ID=ref,length=2000>
##FORMAT=<ID=VFR_IN_MASK,Number=1,Type=String,Description="Whether or not the variant is in the truth genome mask">
##FORMAT=<ID=VFR_RESULT,Number=1,Type=String,Description="FP, TP, or Partial_TP when part of the allele matches the truth reference">
##FORMAT=<ID=VFR_ALLELE_LEN,Number=1,Type=Integer,Description="Number of positions in allele that were checked if they match the truth">
##FORMAT=<ID=VFR_ALLELE_MATCH_COUNT,Number=1,Type=String,Description="Number of positions in allele that match the truth">
##FORMAT=<ID=VFR_ALLELE_MATCH_FRAC,Number=1,Type=String,Description="Fraction of positions in allele that match the truth">
##FORMAT=<ID=VFR_ED_RA,Number=1,Type=String,Description="Edit distance between ref and alt allele (using the called allele where more than one alt)">
##FORMAT=<ID=VFR_ED_TR,Number=1,Type=String,Description="Edit distance between truth and ref allele">
##FORMAT=<ID=VFR_ED_TA,Number=1,Type=String,Description="Edit distance between truth and alt allele">
##FORMAT=<ID=VFR_ED_SCORE,Number=1,Type=String,Description="Edit distance score">
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT sample
NC_000962 1001 . A T . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1004 . T C . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1005 . GGAGA G . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1013 . G C . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1015 . A AC . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:0:0:2:2:1.0:0:TP
NC_000962 1019 . C G . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1022 . T TAG . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:0:0:3:3:1.0:0:TP
NC_000962 1024 . T TGC . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:0:0:3:3:1.0:0:TP
NC_000962 1026 . G A . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1028 . GC G . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1033 . A T . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1035 . A G . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1038 . A C . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1041 . G A . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1044 . G A . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1045 . G C . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1046 . A T . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:1:0:1:1:1.0:0:TP
NC_000962 1048 . C CG . PASS . GT:VFR_ED_RA:VFR_ED_TR:VFR_ED_TA:VFR_ALLELE_LEN:VFR_ALLELE_MATCH_COUNT:VFR_ALLELE_MATCH_FRAC:VFR_IN_MASK:VFR_RESULT 1/1:1:0:0:2:2:1.0:0:TP
23 changes: 23 additions & 0 deletions tests/data/probe_mapping/clustered_snp_indel.in.vcf
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
##fileformat=VCFv4.2
##FILTER=<ID=PASS,Description="All filters passed">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##contig=<ID=ref,length=2000>
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT sample
NC_000962 1001 . A T . PASS . GT 1/1
NC_000962 1004 . T C . PASS . GT 1/1
NC_000962 1005 . GGAGA G . PASS . GT 1/1
NC_000962 1013 . G C . PASS . GT 1/1
NC_000962 1015 . A AC . PASS . GT 1/1
NC_000962 1019 . C G . PASS . GT 1/1
NC_000962 1022 . T TAG . PASS . GT 1/1
NC_000962 1024 . T TGC . PASS . GT 1/1
NC_000962 1026 . G A . PASS . GT 1/1
NC_000962 1028 . GC G . PASS . GT 1/1
NC_000962 1033 . A T . PASS . GT 1/1
NC_000962 1035 . A G . PASS . GT 1/1
NC_000962 1038 . A C . PASS . GT 1/1
NC_000962 1041 . G A . PASS . GT 1/1
NC_000962 1044 . G A . PASS . GT 1/1
NC_000962 1045 . G C . PASS . GT 1/1
NC_000962 1046 . A T . PASS . GT 1/1
NC_000962 1048 . C CG . PASS . GT 1/1
35 changes: 35 additions & 0 deletions tests/data/probe_mapping/clustered_snp_indel.ref.fa
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
>NC_000962
TTGACCGATGACCCCGGTTCAGGCTTCACCACAGTGTGGAACGCGGTCGTCTCCGAACTT
AACGGCGACCCTAAGGTTGACGACGGACCCAGCAGTGATGCTAATCTCAGCGCTCCGCTG
ACCCCTCAGCAAAGGGCTTGGCTCAATCTCGTCCAGCCATTGACCATCGTCGAGGGGTTT
GCTCTGTTATCCGTGCCGAGCAGCTTTGTCCAAAACGAAATCGAGCGCCATCTGCGGGCC
CCGATTACCGACGCTCTCAGCCGCCGACTCGGACATCAGATCCAACTCGGGGTCCGCATC
GCTCCGCCGGCGACCGACGAAGCCGACGACACTACCGTGCCGCCTTCCGAAAATCCTGCT
ACCACATCGCCAGACACCACAACCGACAACGACGAGATTGATGACAGCGCTGCGGCACGG
GGCGATAACCAGCACAGTTGGCCAAGTTACTTCACCGAGCGCCCGCACAATACCGATTCC
GCTACCGCTGGCGTAACCAGCCTTAACCGTCGCTACACCTTTGATACGTTCGTTATCGGC
GCCTCCAACCGGTTCGCGCACGCCGCCGCCTTGGCGATCGCAGAAGCACCCGCCCGCGCT
TACAACCCCCTGTTCATCTGGGGCGAGTCCGGTCTCGGCAAGACACACCTGCTACACGCG
GCAGGCAACTATGCCCAACGGTTGTTCCCGGGAATGCGGGTCAAATATGTCTCCACCGAG
GAATTCACCAACGACTTCATTAACTCGCTCCGCGATGACCGCAAGGTCGCATTCAAACGC
AGCTACCGCGACGTAGACGTGCTGTTGGTCGACGACATCCAATTCATTGAAGGCAAAGAG
GGTATTCAAGAGGAGTTCTTCCACACCTTCAACACCTTGCACAATGCCAACAAGCAAATC
GTCATCTCATCTGACCGCCCACCCAAGCAGCTCGCCACCCTCGAGGACCGGCTGAGAACC
CGCTTTGAGTGGGGGCTGATCACTGACGTACAACCACCCGAGCTGGAGACCCGCATCGCC
ATCTTGCGCAAGAAAGCACAGATGGAACGGCTCGCGGTCCCCGACGATGTCCTCGAACTC
ATCGCCAGCAGTATCGAACGCAATATCCGTGAACTCGAGGGCGCGCTGATCCGGGTCACC
GCGTTCGCCTCATTGAACAAAACACCAATCGACAAAGCGCTGGCCGAGATTGTGCTTCGC
GATCTGATCGCCGACGCCAACACCATGCAAATCAGCGCGGCGACGATCATGGCTGCCACC
GCCGAATACTTCGACACTACCGTCGAAGAGCTTCGCGGGCCCGGCAAGACCCGAGCACTG
GCCCAGTCACGACAGATTGCGATGTACCTGTGTCGTGAGCTCACCGATCTTTCGTTGCCC
AAAATCGGCCAAGCGTTCGGCCGTGATCACACAACCGTCATGTACGCCCAACGCAAGATC
CTGTCCGAGATGGCCGAGCGCCGTGAGGTCTTTGATCACGTCAAAGAACTCACCACTCGC
ATCCGTCAGCGCTCCAAGCGCTAGCACGGCGTGTTCTTCCGACAACGTTCTTAAAAAAAC
TTCTCTCTCCCAGGTCACACCAGTCACAGAGATTGGCTGTGAGTGTCGCTGTGCACAAAC
CGCGCACAGACTCATACAGTCCCGGCGGTTCCGTTCACAACCCACGCCTCATCCCCACCG
ACCCAACACACACCCCACAGTCATCGCCACCGTCATCCACAACTCCGACCGACGTCGACC
TGCACCAAGACCAGACTGTCCCCAAACTGCACACCCTCTAATACTGTTACCGAGATTTCT
TCGTCGTTTGTTCTTGGAAAGACAGCGCTGGGGATCGTTCGCTGGATACCACCCGCATAA
CTGGCTCGTCGCGGTGGGTCAGAGGTCAATGATGAACTTTCAAGTTGACGTGAGAAGCTC
TACGGTTGTTGTTCGACTGCTGTTGCGGCCGTCGTGGCGGGTCACGCGTCATGGGCATTC
GTCGTTGGCAGTCCCCACGC
Loading

0 comments on commit be60d7c

Please sign in to comment.