Error when writing a large VEP annotated Hail Table

Hello, I am running into an error when trying to write a larger-sized VEP annotated Hail Table. I know that there are some other topics that mention this, however the error message I’m receiving is different and I was hoping I could get some guidance.

Specs being used (on DNAnexus platform):

  • 112 total # of cores
  • 128 GB of memory
  • 600 GB of storage
  • Hail v 0.2.78
  • VEP v 1.0.3

original MatrixTable specs (imported from pVCF):

  • 469835 samples
  • 2283839 variants
  • 2506 partitions

Code:

from pyspark.sql import SparkSession
import hail as hl

builder = (
    SparkSession
    .builder
    .enableHiveSupport()
)
spark = builder.getOrCreate()
hl.init(sc=spark.sparkContext)

mt = hl.read_matrix_table(mt_url)
ann_mt = hl.vep(mt, "path/to/config.json")
ann_tb = ann_mt.rows()
ann_tb.write(url)

I have been able to run the above code successfully for a smaller, truncated version of the same dataset (200000 samples + 100000 variants). However, when I try to run it with the data described in the “original MatrixTable specs” above, I get the following error message:

FatalError: HailException: VEP command 'docker run -i -v /cluster/vep:/root/.vep dnanexus/dxjupyterlab-vep ./vep --format vcf --json --everything --allele_number --no_stats --cache --offline --minimal --assembly GRCh38 -o STDOUT --check_existing --dir_cache /root/.vep/ --fasta /root/.vep/homo_sapiens/103_GRCh38/Homo_sapiens.GRCh38.dna.toplevel.fa.gz --plugin LoF,loftee_path:/root/.vep/Plugins/loftee,            human_ancestor_fa:/root/.vep/human_ancestor.fa,conservation_file:/root/.vep/loftee.sql,            gerp_bigwig:/root/.vep/gerp_conservation_scores.homo_sapiens.GRCh38.bw' failed with non-zero exit status 2
  VEP Error output:
Smartmatch is experimental at /root/.vep/Plugins/loftee/de_novo_donor.pl line 175.
Smartmatch is experimental at /root/.vep/Plugins/loftee/de_novo_donor.pl line 214.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 191.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 194.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 238.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 241.
substr outside of string at /opt/vep/src/ensembl-vep/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 906.
Use of uninitialized value in uc at /opt/vep/src/ensembl-vep/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 906.
substr outside of string at /opt/vep/src/ensembl-vep/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 906.


Java stack trace:
org.apache.spark.SparkException: Job aborted due to stage failure: Task 3801 in stage 1.0 failed 4 times, most recent failure: Lost task 3801.3 in stage 1.0 (TID 9137, ip-10-60-155-202.eu-west-2.compute.internal, executor 24): is.hail.utils.HailException: VEP command 'docker run -i -v /cluster/vep:/root/.vep dnanexus/dxjupyterlab-vep ./vep --format vcf --json --everything --allele_number --no_stats --cache --offline --minimal --assembly GRCh38 -o STDOUT --check_existing --dir_cache /root/.vep/ --fasta /root/.vep/homo_sapiens/103_GRCh38/Homo_sapiens.GRCh38.dna.toplevel.fa.gz --plugin LoF,loftee_path:/root/.vep/Plugins/loftee,            human_ancestor_fa:/root/.vep/human_ancestor.fa,conservation_file:/root/.vep/loftee.sql,            gerp_bigwig:/root/.vep/gerp_conservation_scores.homo_sapiens.GRCh38.bw' failed with non-zero exit status 2
  VEP Error output:
Smartmatch is experimental at /root/.vep/Plugins/loftee/de_novo_donor.pl line 175.
Smartmatch is experimental at /root/.vep/Plugins/loftee/de_novo_donor.pl line 214.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 191.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 194.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 238.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 241.
substr outside of string at /opt/vep/src/ensembl-vep/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 906.
Use of uninitialized value in uc at /opt/vep/src/ensembl-vep/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 906.
substr outside of string at /opt/vep/src/ensembl-vep/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 906.

	at is.hail.utils.ErrorHandling$class.fatal(ErrorHandling.scala:11)
	at is.hail.utils.package$.fatal(package.scala:78)
	at is.hail.methods.VEP$.waitFor(VEP.scala:72)
	at is.hail.methods.VEP$$anonfun$7$$anonfun$apply$4.apply(VEP.scala:226)
	at is.hail.methods.VEP$$anonfun$7$$anonfun$apply$4.apply(VEP.scala:171)
	at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:435)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:441)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
	at is.hail.utils.richUtils.RichContextRDD$$anonfun$cleanupRegions$1$$anon$1.hasNext(RichContextRDD.scala:69)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
	at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
	at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
	at is.hail.utils.richUtils.RichContextRDD$$anonfun$cleanupRegions$1$$anon$1.hasNext(RichContextRDD.scala:69)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
	at org.apache.spark.storage.memory.MemoryStore.putIterator(MemoryStore.scala:221)
	at org.apache.spark.storage.memory.MemoryStore.putIteratorAsValues(MemoryStore.scala:299)
	at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:1165)
	at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:1156)
	at org.apache.spark.storage.BlockManager.doPut(BlockManager.scala:1091)
	at org.apache.spark.storage.BlockManager.doPutIterator(BlockManager.scala:1156)
	at org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:882)
	at org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:335)
	at org.apache.spark.rdd.RDD.iterator(RDD.scala:286)
	at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
	at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
	at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
	at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
	at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
	at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
	at is.hail.sparkextras.ContextRDD.iterator(ContextRDD.scala:390)
	at is.hail.rvd.BroadcastRVD.computePartition(RVD.scala:1558)
	at __C684collect_distributed_array.apply_region13_43(Unknown Source)
	at __C684collect_distributed_array.apply(Unknown Source)
	at __C684collect_distributed_array.apply(Unknown Source)
	at is.hail.backend.BackendUtils$$anonfun$collectDArray$1$$anonfun$apply$1.apply(BackendUtils.scala:31)
	at is.hail.backend.BackendUtils$$anonfun$collectDArray$1$$anonfun$apply$1.apply(BackendUtils.scala:30)
	at is.hail.utils.package$.using(package.scala:638)
	at is.hail.annotations.RegionPool.scopedRegion(RegionPool.scala:144)
	at is.hail.backend.BackendUtils$$anonfun$collectDArray$1.apply(BackendUtils.scala:30)
	at is.hail.backend.BackendUtils$$anonfun$collectDArray$1.apply(BackendUtils.scala:28)
	at is.hail.backend.spark.SparkBackendComputeRDD.compute(SparkBackend.scala:730)
	at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
	at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
	at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
	at org.apache.spark.scheduler.Task.run(Task.scala:123)
	at org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:408)
	at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360)
	at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:414)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

Driver stacktrace:
	at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:2001)
	at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1984)
	at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1983)
	at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
	at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
	at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1983)
	at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:1033)
	at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:1033)
	at scala.Option.foreach(Option.scala:257)
	at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:1033)
	at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:2223)
	at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:2172)
	at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:2161)
	at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:49)
	at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:823)
	at org.apache.spark.SparkContext.runJob(SparkContext.scala:2061)
	at org.apache.spark.SparkContext.runJob(SparkContext.scala:2082)
	at org.apache.spark.SparkContext.runJob(SparkContext.scala:2101)
	at org.apache.spark.SparkContext.runJob(SparkContext.scala:2126)
	at org.apache.spark.rdd.RDD$$anonfun$collect$1.apply(RDD.scala:945)
	at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
	at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
	at org.apache.spark.rdd.RDD.withScope(RDD.scala:363)
	at org.apache.spark.rdd.RDD.collect(RDD.scala:944)
	at is.hail.backend.spark.SparkBackend.parallelizeAndComputeWithIndex(SparkBackend.scala:286)
	at is.hail.backend.BackendUtils.collectDArray(BackendUtils.scala:28)
	at __C608Compiled.__m610split_CollectDistributedArray_region1_29(Emit.scala)
	at __C608Compiled.__m610split_CollectDistributedArray(Emit.scala)
	at __C608Compiled.apply(Emit.scala)
	at is.hail.expr.ir.CompileAndEvaluate$$anonfun$_apply$1.apply$mcV$sp(CompileAndEvaluate.scala:57)
	at is.hail.expr.ir.CompileAndEvaluate$$anonfun$_apply$1.apply(CompileAndEvaluate.scala:57)
	at is.hail.expr.ir.CompileAndEvaluate$$anonfun$_apply$1.apply(CompileAndEvaluate.scala:57)
	at is.hail.utils.ExecutionTimer.time(ExecutionTimer.scala:81)
	at is.hail.expr.ir.CompileAndEvaluate$._apply(CompileAndEvaluate.scala:57)
	at is.hail.expr.ir.CompileAndEvaluate$.evalToIR(CompileAndEvaluate.scala:30)
	at is.hail.expr.ir.LowerOrInterpretNonCompilable$.evaluate$1(LowerOrInterpretNonCompilable.scala:30)
	at is.hail.expr.ir.LowerOrInterpretNonCompilable$.is$hail$expr$ir$LowerOrInterpretNonCompilable$$rewrite$1(LowerOrInterpretNonCompilable.scala:67)
	at is.hail.expr.ir.LowerOrInterpretNonCompilable$.apply(LowerOrInterpretNonCompilable.scala:72)
	at is.hail.expr.ir.lowering.LowerOrInterpretNonCompilablePass$.transform(LoweringPass.scala:69)
	at is.hail.expr.ir.lowering.LoweringPass$$anonfun$apply$3$$anonfun$1.apply(LoweringPass.scala:16)
	at is.hail.expr.ir.lowering.LoweringPass$$anonfun$apply$3$$anonfun$1.apply(LoweringPass.scala:16)
	at is.hail.utils.ExecutionTimer.time(ExecutionTimer.scala:81)
	at is.hail.expr.ir.lowering.LoweringPass$$anonfun$apply$3.apply(LoweringPass.scala:16)
	at is.hail.expr.ir.lowering.LoweringPass$$anonfun$apply$3.apply(LoweringPass.scala:14)
	at is.hail.utils.ExecutionTimer.time(ExecutionTimer.scala:81)
	at is.hail.expr.ir.lowering.LoweringPass$class.apply(LoweringPass.scala:14)
	at is.hail.expr.ir.lowering.LowerOrInterpretNonCompilablePass$.apply(LoweringPass.scala:64)
	at is.hail.expr.ir.lowering.LoweringPipeline$$anonfun$apply$1.apply(LoweringPipeline.scala:15)
	at is.hail.expr.ir.lowering.LoweringPipeline$$anonfun$apply$1.apply(LoweringPipeline.scala:13)
	at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
	at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:35)
	at is.hail.expr.ir.lowering.LoweringPipeline.apply(LoweringPipeline.scala:13)
	at is.hail.expr.ir.CompileAndEvaluate$._apply(CompileAndEvaluate.scala:47)
	at is.hail.backend.spark.SparkBackend.is$hail$backend$spark$SparkBackend$$_execute(SparkBackend.scala:381)
	at is.hail.backend.spark.SparkBackend$$anonfun$8$$anonfun$apply$4.apply(SparkBackend.scala:417)
	at is.hail.backend.spark.SparkBackend$$anonfun$8$$anonfun$apply$4.apply(SparkBackend.scala:414)
	at is.hail.backend.ExecuteContext$$anonfun$scoped$1$$anonfun$apply$1.apply(ExecuteContext.scala:47)
	at is.hail.backend.ExecuteContext$$anonfun$scoped$1$$anonfun$apply$1.apply(ExecuteContext.scala:47)
	at is.hail.utils.package$.using(package.scala:638)
	at is.hail.backend.ExecuteContext$$anonfun$scoped$1.apply(ExecuteContext.scala:47)
	at is.hail.backend.ExecuteContext$$anonfun$scoped$1.apply(ExecuteContext.scala:46)
	at is.hail.utils.package$.using(package.scala:638)
	at is.hail.annotations.RegionPool$.scoped(RegionPool.scala:17)
	at is.hail.backend.ExecuteContext$.scoped(ExecuteContext.scala:46)
	at is.hail.backend.spark.SparkBackend.withExecuteContext(SparkBackend.scala:275)
	at is.hail.backend.spark.SparkBackend$$anonfun$8.apply(SparkBackend.scala:414)
	at is.hail.backend.spark.SparkBackend$$anonfun$8.apply(SparkBackend.scala:413)
	at is.hail.utils.ExecutionTimer$.time(ExecutionTimer.scala:52)
	at is.hail.backend.spark.SparkBackend.executeEncode(SparkBackend.scala:413)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
	at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
	at py4j.Gateway.invoke(Gateway.java:282)
	at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
	at py4j.commands.CallCommand.execute(CallCommand.java:79)
	at py4j.GatewayConnection.run(GatewayConnection.java:238)
	at java.lang.Thread.run(Thread.java:750)

is.hail.utils.HailException: VEP command 'docker run -i -v /cluster/vep:/root/.vep dnanexus/dxjupyterlab-vep ./vep --format vcf --json --everything --allele_number --no_stats --cache --offline --minimal --assembly GRCh38 -o STDOUT --check_existing --dir_cache /root/.vep/ --fasta /root/.vep/homo_sapiens/103_GRCh38/Homo_sapiens.GRCh38.dna.toplevel.fa.gz --plugin LoF,loftee_path:/root/.vep/Plugins/loftee,            human_ancestor_fa:/root/.vep/human_ancestor.fa,conservation_file:/root/.vep/loftee.sql,            gerp_bigwig:/root/.vep/gerp_conservation_scores.homo_sapiens.GRCh38.bw' failed with non-zero exit status 2
  VEP Error output:
Smartmatch is experimental at /root/.vep/Plugins/loftee/de_novo_donor.pl line 175.
Smartmatch is experimental at /root/.vep/Plugins/loftee/de_novo_donor.pl line 214.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 191.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 194.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 238.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 241.
substr outside of string at /opt/vep/src/ensembl-vep/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 906.
Use of uninitialized value in uc at /opt/vep/src/ensembl-vep/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 906.
substr outside of string at /opt/vep/src/ensembl-vep/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 906.

	at is.hail.utils.ErrorHandling$class.fatal(ErrorHandling.scala:11)
	at is.hail.utils.package$.fatal(package.scala:78)
	at is.hail.methods.VEP$.waitFor(VEP.scala:72)
	at is.hail.methods.VEP$$anonfun$7$$anonfun$apply$4.apply(VEP.scala:226)
	at is.hail.methods.VEP$$anonfun$7$$anonfun$apply$4.apply(VEP.scala:171)
	at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:435)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:441)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
	at is.hail.utils.richUtils.RichContextRDD$$anonfun$cleanupRegions$1$$anon$1.hasNext(RichContextRDD.scala:69)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
	at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
	at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
	at is.hail.utils.richUtils.RichContextRDD$$anonfun$cleanupRegions$1$$anon$1.hasNext(RichContextRDD.scala:69)
	at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
	at org.apache.spark.storage.memory.MemoryStore.putIterator(MemoryStore.scala:221)
	at org.apache.spark.storage.memory.MemoryStore.putIteratorAsValues(MemoryStore.scala:299)
	at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:1165)
	at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:1156)
	at org.apache.spark.storage.BlockManager.doPut(BlockManager.scala:1091)
	at org.apache.spark.storage.BlockManager.doPutIterator(BlockManager.scala:1156)
	at org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:882)
	at org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:335)
	at org.apache.spark.rdd.RDD.iterator(RDD.scala:286)
	at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
	at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
	at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
	at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
	at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
	at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
	at is.hail.sparkextras.ContextRDD.iterator(ContextRDD.scala:390)
	at is.hail.rvd.BroadcastRVD.computePartition(RVD.scala:1558)
	at __C684collect_distributed_array.apply_region13_43(Unknown Source)
	at __C684collect_distributed_array.apply(Unknown Source)
	at __C684collect_distributed_array.apply(Unknown Source)
	at is.hail.backend.BackendUtils$$anonfun$collectDArray$1$$anonfun$apply$1.apply(BackendUtils.scala:31)
	at is.hail.backend.BackendUtils$$anonfun$collectDArray$1$$anonfun$apply$1.apply(BackendUtils.scala:30)
	at is.hail.utils.package$.using(package.scala:638)
	at is.hail.annotations.RegionPool.scopedRegion(RegionPool.scala:144)
	at is.hail.backend.BackendUtils$$anonfun$collectDArray$1.apply(BackendUtils.scala:30)
	at is.hail.backend.BackendUtils$$anonfun$collectDArray$1.apply(BackendUtils.scala:28)
	at is.hail.backend.spark.SparkBackendComputeRDD.compute(SparkBackend.scala:730)
	at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
	at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
	at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
	at org.apache.spark.scheduler.Task.run(Task.scala:123)
	at org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:408)
	at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360)
	at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:414)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)




Hail version: 0.2.78-b17627756568
Error summary: HailException: VEP command 'docker run -i -v /cluster/vep:/root/.vep dnanexus/dxjupyterlab-vep ./vep --format vcf --json --everything --allele_number --no_stats --cache --offline --minimal --assembly GRCh38 -o STDOUT --check_existing --dir_cache /root/.vep/ --fasta /root/.vep/homo_sapiens/103_GRCh38/Homo_sapiens.GRCh38.dna.toplevel.fa.gz --plugin LoF,loftee_path:/root/.vep/Plugins/loftee,            human_ancestor_fa:/root/.vep/human_ancestor.fa,conservation_file:/root/.vep/loftee.sql,            gerp_bigwig:/root/.vep/gerp_conservation_scores.homo_sapiens.GRCh38.bw' failed with non-zero exit status 2
  VEP Error output:
Smartmatch is experimental at /root/.vep/Plugins/loftee/de_novo_donor.pl line 175.
Smartmatch is experimental at /root/.vep/Plugins/loftee/de_novo_donor.pl line 214.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 191.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 194.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 238.
Smartmatch is experimental at /root/.vep/Plugins/loftee/splice_site_scan.pl line 241.
substr outside of string at /opt/vep/src/ensembl-vep/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 906.
Use of uninitialized value in uc at /opt/vep/src/ensembl-vep/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 906.
substr outside of string at /opt/vep/src/ensembl-vep/Bio/EnsEMBL/Variation/TranscriptVariationAllele.pm line 906.

Hi @jlew!

You appear to be using some DNANexus VEP Docker image, dnanexus/dxjupyterlab-vep. You are apparently encountering a known issue with newer versions of VEP:

I suspect the version of VEP you are using is actually 100.3, not 1.0.3.

You’ll need to contact the DNANexus team and ask them to switch to an unaffected version of VEP. Unfortunately, the Hail team can only provide support for our official VEP Docker images: konradjk/vep85_loftee:1.0.3 and konradjk/vep95_loftee:0.2.

You might also be able to modify the "command" in the config file to exclude --no_stats.

Thanks so much for your help, @danking! Removing --no-stats from the command in the config file did the trick :slight_smile:

Additionally, the version of VEP being used is 103, not 1.0.3

1 Like