出于某种原因,我无法真正理解只有在使用 vcftools 过滤后才能使用 beagle 估算 VCF 表。过滤非常简单,我已经使用了数百次。这就是我过滤vcf的方式
vcftools --gzvcf ${path}${file}.vcf.gz --remove-indels --max-missing ${maxM} --maf ${maf} --minQ ${minQ} --out ${path}${file}_filterd_minQ${minQ}_maxM${maxM}_maf${maf} --recode #--recode-INFO-all
这就是我运行小猎犬的方式:
java -Xmx144g -jar /home/pogoda/software/BEAGLE/beagle.03Jul19.b33.jar gt=${file} nthreads=36 out=IMPUTED_${file}
我可以毫无问题地估算未过滤的表,因此它必须与过滤有关。知道 vcftools 有什么问题吗?
这是我得到的错误:
java.lang.NumberFormatException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:598)
at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:735)
at java.util.stream.ReduceOps$ReduceOp.evaluateParallel(ReduceOps.java:714)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at vcf.VcfIt.fillEmissionBuffer(VcfIt.java:311)
at vcf.VcfIt.start(VcfIt.java:209)
at vcf.VcfIt.create(VcfIt.java:184)
at vcf.VcfIt.create(VcfIt.java:157)
at main.Main.targIt(Main.java:240)
at main.Main.lambda$data$0(Main.java:140)
at vcf.WindowIt$Reader.run(WindowIt.java:244)
at java.lang.Thread.run(Thread.java:748)
Caused by: 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.parseInt(Integer.java:615)
at vcf.VcfRecGTParser.parseAllele(VcfRecGTParser.java:300)
at vcf.VcfRecGTParser.storeAlleles(VcfRecGTParser.java:169)
at vcf.BitSetGT.<init>(BitSetGT.java:84)
at vcf.VcfIt.lambda$static$0(VcfIt.java:76)
at vcf.VcfIt.lambda$new$4(VcfIt.java:199)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:747)
at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:721)
at java.util.stream.AbstractTask.compute(AbstractTask.java:316)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
terminating program.```