Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MPOS=. INFO field makes FilterMutectCalls fail #5684

Closed
af8 opened this issue Feb 17, 2019 · 3 comments · Fixed by #5688
Closed

MPOS=. INFO field makes FilterMutectCalls fail #5684

af8 opened this issue Feb 17, 2019 · 3 comments · Fixed by #5688
Assignees
Labels

Comments

@af8
Copy link

af8 commented Feb 17, 2019

Bug Report

Affected tool(s) or class(es)

FilterMutectCalls

Affected version(s)

  • gatk-4.1.0.0 (latest)

Description

Hi,

I am using Mutect2 (v4.1.0.0) and similar to a previous bug reported on AF=., FilterMutectCalls seems to complain about MPOS fields having a value of .. No intermediate processing was done between Mutect2 and FilterMutectCalls. Below the error stack trace :

17:13:28.491 INFO  NativeLibraryLoader - Loading libgkl_compression.so from jar:file:/data-ddn/home/anthony/sbx/mutect2/work/conda/gatk4-mutect2-nf-bcf605d6af4c0524a368d3d105898641/share/gatk4-4.1.0.0-0/gatk-package-4.1.0.0-local.jar!/com/intel/gkl/native/libgkl_compression.so
17:13:30.503 INFO  FilterMutectCalls - ------------------------------------------------------------
17:13:30.503 INFO  FilterMutectCalls - The Genome Analysis Toolkit (GATK) v4.1.0.0
17:13:30.504 INFO  FilterMutectCalls - For support and documentation go to https://software.broadinstitute.org/gatk/
17:13:30.504 INFO  FilterMutectCalls - Executing as anthony@node063 on Linux v2.6.32-220.el6.x86_64 amd64
17:13:30.504 INFO  FilterMutectCalls - Java runtime: OpenJDK 64-Bit Server VM v1.8.0_152-release-1056-b12
17:13:30.504 INFO  FilterMutectCalls - Start Date/Time: February 17, 2019 5:13:28 PM CET
17:13:30.504 INFO  FilterMutectCalls - ------------------------------------------------------------
17:13:30.505 INFO  FilterMutectCalls - ------------------------------------------------------------
17:13:30.505 INFO  FilterMutectCalls - HTSJDK Version: 2.18.2
17:13:30.505 INFO  FilterMutectCalls - Picard Version: 2.18.25
17:13:30.505 INFO  FilterMutectCalls - HTSJDK Defaults.COMPRESSION_LEVEL : 2
17:13:30.505 INFO  FilterMutectCalls - HTSJDK Defaults.USE_ASYNC_IO_READ_FOR_SAMTOOLS : false
17:13:30.505 INFO  FilterMutectCalls - HTSJDK Defaults.USE_ASYNC_IO_WRITE_FOR_SAMTOOLS : true
17:13:30.506 INFO  FilterMutectCalls - HTSJDK Defaults.USE_ASYNC_IO_WRITE_FOR_TRIBBLE : false
17:13:30.506 INFO  FilterMutectCalls - Deflater: IntelDeflater
17:13:30.506 INFO  FilterMutectCalls - Inflater: IntelInflater
17:13:30.506 INFO  FilterMutectCalls - GCS max retries/reopens: 20
17:13:30.506 INFO  FilterMutectCalls - Requester pays: disabled
17:13:30.506 INFO  FilterMutectCalls - Initializing engine
17:13:30.997 INFO  FeatureManager - Using codec VCFCodec to read file file:///data-ddn/home/anthony/sbx/mutect2/work/ea/18e314102728d4b34b636b04f1f897/her2-crefix-unfiltered.vcf
17:13:31.136 INFO  FilterMutectCalls - Done initializing engine
17:13:31.285 INFO  ProgressMeter - Starting traversal
17:13:31.286 INFO  ProgressMeter -        Current Locus  Elapsed Minutes    Variants Processed  Variants/Minute
17:13:31.286 INFO  FilterMutectCalls - Starting first pass through the variants
17:13:31.570 INFO  FilterMutectCalls - Shutting down engine
[February 17, 2019 5:13:31 PM CET] org.broadinstitute.hellbender.tools.walkers.mutect.FilterMutectCalls done. Elapsed time: 0.06 minutes.
Runtime.totalMemory()=845676544
java.lang.NumberFormatException: For input string: "."
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:569)
	at java.lang.Integer.valueOf(Integer.java:766)
	at htsjdk.variant.variantcontext.CommonInfo.lambda$getAttributeAsIntList$1(CommonInfo.java:287)
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
	at java.util.Collections$2.tryAdvance(Collections.java:4717)
	at java.util.Collections$2.forEachRemaining(Collections.java:4725)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
	at htsjdk.variant.variantcontext.CommonInfo.getAttributeAsList(CommonInfo.java:273)
	at htsjdk.variant.variantcontext.CommonInfo.getAttributeAsIntList(CommonInfo.java:281)
	at htsjdk.variant.variantcontext.VariantContext.getAttributeAsIntList(VariantContext.java:738)
	at org.broadinstitute.hellbender.tools.walkers.mutect.Mutect2FilteringEngine.applyReadPositionFilter(Mutect2FilteringEngine.java:223)
	at org.broadinstitute.hellbender.tools.walkers.mutect.Mutect2FilteringEngine.calculateFilters(Mutect2FilteringEngine.java:529)
	at org.broadinstitute.hellbender.tools.walkers.mutect.FilterMutectCalls.firstPassApply(FilterMutectCalls.java:130)
	at org.broadinstitute.hellbender.engine.TwoPassVariantWalker.lambda$traverseVariants$0(TwoPassVariantWalker.java:76)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.Iterator.forEachRemaining(Iterator.java:116)
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at org.broadinstitute.hellbender.engine.TwoPassVariantWalker.traverseVariants(TwoPassVariantWalker.java:74)
	at org.broadinstitute.hellbender.engine.TwoPassVariantWalker.traverse(TwoPassVariantWalker.java:27)
	at org.broadinstitute.hellbender.engine.GATKTool.doWork(GATKTool.java:966)
	at org.broadinstitute.hellbender.cmdline.CommandLineProgram.runTool(CommandLineProgram.java:138)
	at org.broadinstitute.hellbender.cmdline.CommandLineProgram.instanceMainPostParseArgs(CommandLineProgram.java:191)
	at org.broadinstitute.hellbender.cmdline.CommandLineProgram.instanceMain(CommandLineProgram.java:210)
	at org.broadinstitute.hellbender.Main.runCommandLineProgram(Main.java:162)
	at org.broadinstitute.hellbender.Main.mainEntry(Main.java:205)
	at org.broadinstitute.hellbender.Main.main(Main.java:291)
Using GATK jar /data-ddn/home/anthony/sbx/mutect2/work/conda/gatk4-mutect2-nf-bcf605d6af4c0524a368d3d105898641/share/gatk4-4.1.0.0-0/gatk-package-4.1.0.0-local.jar
Running:
    java -Dsamjdk.use_async_io_read_samtools=false -Dsamjdk.use_async_io_write_samtools=true -Dsamjdk.use_async_io_write_tribble=false -Dsamjdk.compression_level=2 -jar /data-ddn/home/anthony/sbx/mutect2/work/conda/gatk4-mutect2-nf-bcf605d6af4c0524a368d3d105898641/share/gatk4-4.1.0.0-0/gatk-package-4.1.0.0-local.jar FilterMutectCalls --contamination-table her2-crefix-contamination.table --variant her2-crefix-unfiltered.vcf --output her2-crefix-filtered.vcf

And here is an excerpt of the unfiltered VCF :

cat $VCF | grep '=\.' | head

chr1	885346	.	T	A	.	.	DP=90;ECNT=8;MBQ=30,29;MFRL=309,433;MMQ=60,27;MPOS=.;NALOD=-1.307;NLOD=7.24;POPAF=1.37;SAAF=0.081,0,0.078;SAPP=0.005496,0.055,0.94;TLOD=10.89	GT:AD:AF:DP:F1R2:F2R1:PGT:PID:PS	0|1:47,4:0.094:51:26,2:21,2:0|1:885342_GCT_G:885342	0|0:38,1:0.049:39:15,1:23,0:0|1:885342_GCT_G:885342
chr1	888222	.	T	C	.	.	DP=78;ECNT=2;MBQ=31,31;MFRL=310,293;MMQ=60,30;MPOS=.;NALOD=-1.352;NLOD=6.64;PON;POPAF=2.23;SAAF=0.051,0,0.049;SAPP=0.006659,0.023,0.97;TLOD=4.46	GT:AD:AF:DP:F1R2:F2R1:PGT:PID:PS	0|1:39,2:0.07:41:20,0:19,2:0|1:888199_TTTTCTTCACATTATA_T:888199	0|0:36,1:0.051:37:20,1:16,0:0|1:888199_TTTTCTTCACATTATA_T:888199
chr1	1401646	.	TC	T	.	.	DP=75;ECNT=3;MBQ=29,30;MFRL=305,143;MMQ=60,60;MPOS=.;NALOD=1.1;NLOD=6.92;POPAF=5.52;SAAF=0.03,0.03,0.038;SAPP=0.008222,0.00989,0.982;TLOD=4.44	GT:AD:AF:DP:F1R2:F2R1:PGT:PID:PS	0|1:50,2:0.056:52:27,1:23,1:0|1:1401637_GCTGCTGA_G:1401637	0|0:23,0:0.04:23:12,0:11,0:0|1:1401637_GCTGCTGA_G:1401637
chr1	3870695	.	A	ACCCT	.	.	DP=59;ECNT=2;MBQ=31,29;MFRL=303,282;MMQ=60,60;MPOS=.;NALOD=1.54;NLOD=10.23;POPAF=5.52;SAAF=0.081,0,0.08;SAPP=0.009489,0.029,0.962;TLOD=5.11	GT:AD:AF:DP:F1R2:F2R1:PGT:PID:PS	0|1:23,2:0.111:25:12,2:11,0:0|1:3870691_CCG_C:3870691	0|0:34,0:0.028:34:17,0:17,0:0|1:3870691_CCG_C:3870691
chr1	4136053	.	GGTTAGTCATCATGGGAGTGA	G	.	.	DP=87;ECNT=1;MBQ=30,30;MFRL=314,306;MMQ=60,60;MPOS=.;NALOD=-1.69;NLOD=2.96;POPAF=1.52;SAAF=0.182,0.091,0.188;SAPP=0.005004,0.19,0.805;TLOD=8.92	GT:AD:AF:DP:F1R2:F2R10/1:39,9:0.119:48:17,3:22,6	0/0:29,10:0.075:39:16,5:13,5
chr1	4987891	.	G	GCA	.	.	DP=57;ECNT=2;MBQ=29,30;MFRL=325,345;MMQ=60,60;MPOS=.;NALOD=-1.039;NLOD=2.57;POPAF=1.52;SAAF=0,0.091,0.091;SAPP=0.04,0.008833,0.951;TLOD=4.36	GT:AD:AF:DP:F1R2:F2R1:PGT:PID:PS	0|1:20,2:0.121:22:10,0:10,2:0|1:4987875_GTGTGTGCA_G:4987875	0|0:19,1:0.087:20:4,1:15,0:0|1:4987875_GTGTGTGCA_G:4987875
chr1	5840589	.	C	A	.	.	DP=43;ECNT=1;MBQ=30,29;MFRL=306,214;MMQ=60,65;MPOS=.;NALOD=1.33;NLOD=5.71;POPAF=5.52;SAAF=0.081,0.071,0.095;SAPP=0.014,0.018,0.968;TLOD=4.1	GT:AD:AF:DP:F1R2:F2R1	0/1:19,2:0.13:21:12,0:7,2	0/0:19,0:0.045:19:11,0:8,0
chr1	14149077	.	T	G	.	.	DP=22;ECNT=2;MBQ=31,30;MFRL=319,296;MMQ=60,60;MPOS=.;NALOD=1.08;NLOD=2.98;PON;POPAF=0.682;SAAF=0.606,0.596,0.625;SAPP=0.032,0.022,0.947;TLOD=14.23	GT:AD:AF:DP:F1R2:F2R10/1:3,5:0.602:8:3,3:0,2	0/0:10,0:0.077:10:7,0:3,0
chr1	14896078	.	C	A	.	.	DP=30;ECNT=1;MBQ=29,13;MFRL=324,391;MMQ=60,60;MPOS=.;NALOD=1.2;NLOD=4.47;POPAF=5.52;SAAF=0,0.141,0.143;SAPP=0.053,0.011,0.937;TLOD=5.16	GT:AD:AF:DP:F1R2:F2R1	0/1:12,2:0.186:14:7,1:5,1	0/0:15,0:0.059:15:7,0:8,0

Thanks
Anthony

@af8
Copy link
Author

af8 commented Feb 17, 2019

I have been too quick on this bug diagnosis, sorry.

Actually, the VCF given to FilterMutectCalls was the results of a bcftools concat operation. And I found out that bcftools is actually the culprit for setting this dot value. The value in the original Mutect2 VCF was MPOS=-2147483648. All such values were converted by bcftools into a .

I have replaced bcftools with picard to merge Vcfs, relaunched and I now wait for the results. I'll keep this post updated.

Nonetheless, what a value of -2147483648 is supposed to mean in MPOS tag ?

chr1    885346  .       T       A       .       .       DP=90;ECNT=8;MBQ=30,29;MFRL=309,433;MMQ=60,27;MPOS=-2147483648;NALOD=-1.307e+00;NLOD=7.24;POPAF=1.37;SAAF=0.081,0.00,0.078;SAPP=5.496e-03,0.055,0.940;TLOD=10.89
        GT:AD:AF:DP:F1R2:F2R1:PGT:PID:PS        0|1:47,4:0.094:51:26,2:21,2:0|1:885342_GCT_G:885342     0|0:38,1:0.049:39:15,1:23,0:0|1:885342_GCT_G:885342
chr1    888222  .       T       C       .       .       DP=78;ECNT=2;MBQ=31,31;MFRL=310,293;MMQ=60,30;MPOS=-2147483648;NALOD=-1.352e+00;NLOD=6.64;PON;POPAF=2.23;SAAF=0.051,0.00,0.049;SAPP=6.659e-03,0.023,0.970;TLOD=4.46
     GT:AD:AF:DP:F1R2:F2R1:PGT:PID:PS        0|1:39,2:0.070:41:20,0:19,2:0|1:888199_TTTTCTTCACATTATA_T:888199        0|0:36,1:0.051:37:20,1:16,0:0|1:888199_TTTTCTTCACATTATA_T:888199
chr1    1401646 .       TC      T       .       .       DP=75;ECNT=3;MBQ=29,30;MFRL=305,143;MMQ=60,60;MPOS=-2147483648;NALOD=1.10;NLOD=6.92;POPAF=5.40;SAAF=0.030,0.030,0.038;SAPP=8.222e-03,9.890e-03,0.982;TLOD=4.44  GT:AD:AF:DP:F1R2:F2R1:PGT:PID:PS        0|1:50,2:0.056:52:27,1:23,1:0|1:1401637_GCTGCTGA_G:1401637      0|0:23,0:0.040:23:12,0:11,0:0|1:1401637_GCTGCTGA_G:1401637
chr1    3870695 .       A       ACCCT   .       .       DP=59;ECNT=2;MBQ=31,29;MFRL=303,282;MMQ=60,60;MPOS=-2147483648;NALOD=1.54;NLOD=10.23;POPAF=5.40;SAAF=0.081,0.00,0.080;SAPP=9.489e-03,0.029,0.962;TLOD=5.11      GT:AD:AF:DP:F1R2:F2R1:PGT:PID:PS        0|1:23,2:0.111:25:12,2:11,0:0|1:3870691_CCG_C:3870691   0|0:34,0:0.028:34:17,0:17,0:0|1:3870691_CCG_C:3870691
chr1    4136053 .       GGTTAGTCATCATGGGAGTGA   G       .       .       DP=87;ECNT=1;MBQ=30,30;MFRL=314,306;MMQ=60,60;MPOS=-2147483648;NALOD=-1.690e+00;NLOD=2.96;POPAF=1.52;SAAF=0.182,0.091,0.188;SAPP=5.004e-03,0.190,0.805;TLOD=8.92        GT:AD:AF:DP:F1R2:F2R1   0/1:39,9:0.119:48:17,3:22,6     0/0:29,10:0.075:39:16,5:13,5
chr1    4987891 .       G       GCA     .       .       DP=57;ECNT=2;MBQ=29,30;MFRL=325,345;MMQ=60,60;MPOS=-2147483648;NALOD=-1.039e+00;NLOD=2.57;POPAF=1.52;SAAF=0.00,0.091,0.091;SAPP=0.040,8.833e-03,0.951;TLOD=4.36 GT:AD:AF:DP:F1R2:F2R1:PGT:PID:PS        0|1:20,2:0.121:22:10,0:10,2:0|1:4987875_GTGTGTGCA_G:4987875     0|0:19,1:0.087:20:4,1:15,0:0|1:4987875_GTGTGTGCA_G:4987875

Thanks
Anthony

@af8
Copy link
Author

af8 commented Feb 18, 2019

OK, so finally there are no issues when using Picard's MergeVcfs.

The issue can be closed unless you think compatibility with bcftools is required or having MPOS=-2147483648 is not appropriate.

Anthony

@davidbenjamin davidbenjamin self-assigned this Feb 25, 2019
@davidbenjamin
Copy link
Contributor

@af8 We make no promises when external tools come between Mutect2 and FilterMutectCalls. That being said, I believe PR #5688 will fix this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants