Skip to content

Commit 39315ab

Browse files
davidbenjaminEdwardDixon
authored andcommitted
Realignment filter annotates vcf with passing and failing read counts (broadinstitute#5328)
1 parent 210758d commit 39315ab

File tree

3 files changed

+6
-1
lines changed

3 files changed

+6
-1
lines changed

src/main/java/org/broadinstitute/hellbender/tools/walkers/realignmentfilter/FilterAlignmentArtifacts.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ public void onTraversalStart() {
137137
final Set<VCFHeaderLine> headerLines = new HashSet<>(inputHeader.getMetaDataInSortedOrder());
138138
headerLines.add(GATKVCFHeaderLines.getFilterLine(GATKVCFConstants.ALIGNMENT_ARTIFACT_FILTER_NAME));
139139
headerLines.addAll(getDefaultToolVCFHeaderLines());
140+
headerLines.add(GATKVCFHeaderLines.getInfoLine(GATKVCFConstants.REALIGNMENT_COUNTS_VCF_ATTRIBUTE));
140141
final VCFHeader vcfHeader = new VCFHeader(headerLines, inputHeader.getGenotypeSamples());
141142
vcfWriter.writeHeader(vcfHeader);
142143
}
@@ -200,8 +201,10 @@ public void apply(final VariantContext vc, final ReadsContext readsContext, fina
200201
// if we haven't decided yet due to too few supporting reads, fail if there are more failures than successes
201202
passesFilter = passesFilter != Trilean.UNKNOWN ? passesFilter :
202203
Trilean.of(failedRealignmentCount.intValue() <= succeededRealignmentCount.intValue());
204+
final VariantContextBuilder vcb = new VariantContextBuilder(vc)
205+
.attribute(GATKVCFConstants.REALIGNMENT_COUNTS_VCF_ATTRIBUTE, new int[] {succeededRealignmentCount.intValue(), failedRealignmentCount.intValue()});
203206

204-
vcfWriter.add(passesFilter == Trilean.TRUE ? vc : new VariantContextBuilder(vc).filter(GATKVCFConstants.ALIGNMENT_ARTIFACT_FILTER_NAME).make());
207+
vcfWriter.add( (passesFilter == Trilean.TRUE ? vcb : vcb.filter(GATKVCFConstants.ALIGNMENT_ARTIFACT_FILTER_NAME)).make());
205208
}
206209

207210
private static int pairScore(final Pair<BwaMemAlignment, BwaMemAlignment> pair) {

src/main/java/org/broadinstitute/hellbender/utils/variant/GATKVCFConstants.java

+1
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ public final class GATKVCFConstants {
110110
public static final String NORMAL_ARTIFACT_LOD_ATTRIBUTE = "N_ART_LOD";
111111
public static final String POPULATION_AF_VCF_ATTRIBUTE = "POP_AF";
112112
public static final String GERMLINE_POSTERIORS_VCF_ATTRIBUTE = "P_GERMLINE";
113+
public static final String REALIGNMENT_COUNTS_VCF_ATTRIBUTE = "RCNTS";
113114
public static final String POSTERIOR_PROB_OF_CONTAMINATION_ATTRIBUTE = "P_CONTAM";
114115
public static final List<String> STANDARD_MUTECT_INFO_FIELDS = Arrays.asList(NORMAL_LOD_KEY, TUMOR_LOD_KEY, NORMAL_ARTIFACT_LOD_ATTRIBUTE,
115116
EVENT_COUNT_IN_HAPLOTYPE_KEY, IN_PON_VCF_ATTRIBUTE, POPULATION_AF_VCF_ATTRIBUTE, GERMLINE_POSTERIORS_VCF_ATTRIBUTE, POSTERIOR_PROB_OF_CONTAMINATION_ATTRIBUTE);

src/main/java/org/broadinstitute/hellbender/utils/variant/GATKVCFHeaderLines.java

+1
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ private static void addFilterLine(final VCFFilterHeaderLine line) {
202202
// M2-related info lines
203203
addInfoLine(new VCFInfoHeaderLine(EVENT_COUNT_IN_HAPLOTYPE_KEY, 1, VCFHeaderLineType.Integer, "Number of events in this haplotype"));
204204
addInfoLine(new VCFInfoHeaderLine(NORMAL_LOD_KEY, VCFHeaderLineCount.A, VCFHeaderLineType.Float, "Normal LOD score"));
205+
addInfoLine(new VCFInfoHeaderLine(REALIGNMENT_COUNTS_VCF_ATTRIBUTE, 2, VCFHeaderLineType.Integer, "Number of reads passing and failing realignment."));
205206
addInfoLine(new VCFInfoHeaderLine(TUMOR_LOD_KEY, VCFHeaderLineCount.A, VCFHeaderLineType.Float, "Log odds ratio score for variant"));
206207
addInfoLine(new VCFInfoHeaderLine(IN_PON_VCF_ATTRIBUTE, 0, VCFHeaderLineType.Flag, "site found in panel of normals"));
207208
addInfoLine(new VCFInfoHeaderLine(POPULATION_AF_VCF_ATTRIBUTE, VCFHeaderLineCount.A, VCFHeaderLineType.Float, "population allele frequencies of alt alleles"));

0 commit comments

Comments
 (0)