-
Notifications
You must be signed in to change notification settings - Fork 55
Error "htsjdk.samtools.SAMException: Malformed query" in VarDictJava
You receive the exception with similar text while running VarDictJava:
java.util.concurrent.ExecutionException: htsjdk.samtools.SAMException: Malformed query; start point 27662 lies after end point 0 at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at com.astrazeneca.vardict.VarDict.ampVardictParallel(VarDict.java:5595) at com.astrazeneca.vardict.VarDict.start(VarDict.java:86) at com.astrazeneca.vardict.Main.run(Main.java:134) at com.astrazeneca.vardict.Main.main(Main.java:25) Caused by: htsjdk.samtools.SAMException: Malformed query; start point 27662 lies after end point 0 at htsjdk.samtools.reference.IndexedFastaSequenceFile.getSubsequenceAt(IndexedFastaSequenceFile.java:215) at com.astrazeneca.vardict.VarDict.retriveSubSeq(VarDict.java:1056) at com.astrazeneca.vardict.VarDict.getREF(VarDict.java:3258) at com.astrazeneca.vardict.VarDict$ToVarsWorker.call(VarDict.java:5441) at com.astrazeneca.vardict.VarDict$AmpVardictWorker.call(VarDict.java:5525) at com.astrazeneca.vardict.VarDict$AmpVardictWorker.call(VarDict.java:5506) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
It often appears when you use wrong fasta or BED file (or you choose the wrong region with -R
option). Particularly it occurs when end of region in BED is more then the FASTA chromosome end.
The one case is that FASTA file you specify in the command line must be the one the BAM was aligned to.
Another case is that BED file must not contain regions that aren't presented in FASTA file. If FASTA is hg19, then BED file must contain only the regions from hg19. Otherwise, the error will appear when the program will try to read part of FASTA that don't exist in it.