Nirvana from hail in jupyter

I successfully installed VEP and run it through HAIL using

ht_vep = hl.vep(ht,'s3://bucket/path/vep95_GRCh38_config.json')

I am now looking for Nirvana. I am aware it is a historical experimental function in hail but that would be great to have it functional.

Following the doc, I succeed to install Nirvana within a docker and run in on my master node

# Install Nirvana from docker
mkdir -p /opt/nirvana/data
cd /opt/nirvana/
docker pull annotation/nirvana:3.9.1
# Download data
docker run --rm -i -v /opt/nirvana/data:/scratch annotation/nirvana:3.14 dotnet \
  /opt/nirvana/Downloader.dll --ga $ASSEMBLY -o /scratch

I was then able to run Nirvana from command line on the master node

sudo docker run --rm -it -v /opt/nirvana/data:/scratch annotation/nirvana:3.14 dotnet \
     /opt/nirvana/Nirvana.dll -c /scratch/Cache/GRCh38/Both \
     -r /scratch/References/Homo_sapiens.GRCh38.Nirvana.dat \
     --sd /scratch/SupplementaryAnnotation/GRCh38 \
     -i /scratch/test.vcf.gz \
     -o /scratch/test.out

Now trying to run Nirvana from a notebook with hail

I generated a properties fileas per hail doc. I have been a bit inventive to try to use docker the same way vep was using a docker image

hail.nirvana.dotnet = sudo docker run --rm -it -v /opt/nirvana/data:/scratch annotation/nirvana:3.14 dotnet
hail.nirvana.location = /opt/nirvana/Nirvana.dll
hail.nirvana.reference = /scratch/References/Homo_sapiens.GRCh38.Nirvana.dat
hail.nirvana.cache = /scratch/Cache/GRCh38/Both
hail.nirvana.supplementaryAnnotationDirectory = /scratch/SupplementaryAnnotation/GRCh38

and trying to run nirvana as per the hail doc

nirv = hl.nirvana(mt, "")

First issue is that hl.nirvana() do not handle files from S3 (where vep does). then I am a bit puzzled where should reside the properties file: in home, in jupyter, in nirvana ?

Second issue is that I am not sure of the properties.

any help welcome

1 Like