# Can you support Illumina DRAGEN msVCF?

**URL:** <https://discuss.hail.is/t/can-you-support-illumina-dragen-msvcf/3458>\
**Category:** Feature Requests\
**Created:** [June 30, 2023, 4:07am UTC](https://discuss.hail.is/t/can-you-support-illumina-dragen-msvcf/3458 "2023-06-30T04:07:04Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![lgh2624](https://avatars.discourse-cdn.com/v4/letter/l/e495f1/32.png) [@lgh2624](https://discuss.hail.is/u/lgh2624)\
**Post date:** [June 30, 2023, 4:07am UTC](https://discuss.hail.is/t/can-you-support-illumina-dragen-msvcf/3458/1 "2023-06-30T04:07:04Z")

</div>

Hi all.

I’m using DRAGEN to analyze WGS data of about 2,300 probands and their families.  
Because of the scalability, we conducted joint analysis using iterative gVCF genotyper (IGG) pipeline and I got msVCF as joint output.  
I tried to use Hail scripts written to analyze other pVCFs such as GATK or something else, but msVCF format is something different to which Hail can handle including vds.  
msVCF looks like this:

```python
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT sample1 sample2 sample3 sample4
chr22 10514964 . A T 21.67 PASS AC=7;AN=4148;NS=2317;NS_GT=2074;NS_NOGT=63;NS_NODATA=180;IC=0.28;HWE=0.0051;ExcHet=1;HWEc2=0 GT:GQ:AD:FT:LPL:LAA 0/0:3:1:LowDepth:0:. 0/0:24:24:PASS:0:. 0/0:23:16:PASS:0:. 0/0:23:23:PASS:0:.
chr22 10514994 . G A 35.86 PASS AC=1065;AN=3820;NS=2317;NS_GT=1910;NS_NOGT=236;NS_NODATA=171;IC=0.33;HWE=5.6e-45;ExcHet=1;HWEc2=0 GT:GQ:AD:FT:LPL:LAA ./.:0:0:LowDepth;LowGQ:0:. 0/0:0:19:LowGQ:0:. 0/1:3:8,3:PASS:35,0,15:1 0/0:23:23:PASS:0:.
chr22 10515037 . AAAT A 6.98 PASS AC=8;AN=3200;NS=2317;NS_GT=1600;NS_NOGT=569;NS_NODATA=148;IC=0.25;HWE=0.0087;ExcHet=1;HWEc2=0 GT:GQ:AD:FT:LPL:LAA 0/0:3:1:LowDepth:0:. 0/0:0:18:LowGQ:0:. 0/0:7:16:PASS:0:. ./.:0:4:LowGQ:0:.

```

Now, I am using custom codes below to use Hail:

```python
mt = hl.read_matrix_table(f'{i_dir}/ica_joint_msvcf_merged.mt')
mt = mt.annotate_entries(DP=hl.sum(mt.AD),
                         AD=hl.case()
                         .when(mt.GT.is_hom_ref(), hl.array([mt.AD[0], 0]))
                         .when(hl.is_missing(mt.GT) & hl.is_missing(mt.AD), hl.missing(hl.tarray(hl.tint32)))
                         .when(hl.is_missing(mt.GT) & ~hl.is_missing(mt.AD), hl.array([mt.AD[0], 0])))

mt.write(i_dir + 'Inputs/' + project + '_beforeQC_' + date +'.mt', overwrite=True)

```

So, I hope Hail supports DRAGEN msVCF.  
Could you please consider this matter?  
I’m attaching some a related link, so please check it together.

> **[Genotyping variants at population scale using DRAGEN gVCF Genotyper](https://www.illumina.com/science/genomics-research/articles/gVCF-Genotyper.html)**
>
> In this article, we give an overview of the gVCF Genotyper workflow, show how to deploy it at scale, and demonstrate the performance of the DRAGEN gVCF Genotyper using the 1000 Genomes Project cohort.

Please consider it positively.

Thank you.  
Lee.

---

<div class="post-metadata">

**Author:** ![DBScan](https://avatars.discourse-cdn.com/v4/letter/d/bc79bd/32.png) [@DBScan](https://discuss.hail.is/u/DBScan)\
**Post date:** [July 4, 2023, 3:10pm UTC](https://discuss.hail.is/t/can-you-support-illumina-dragen-msvcf/3458/2 "2023-07-04T15:10:26Z")

</div>

I have successfully used HAIL to analyze a msVCF (generated by the iterative gVCF genotyper) with several thousand samples. What exactly is the problem you are having?

---

<div class="post-metadata">

**Author:** ![lgh2624](https://avatars.discourse-cdn.com/v4/letter/l/e495f1/32.png) [@lgh2624](https://discuss.hail.is/u/lgh2624)\
**Post date:** [July 5, 2023, 1:31am UTC](https://discuss.hail.is/t/can-you-support-illumina-dragen-msvcf/3458/3 "2023-07-05T01:31:06Z")

</div>

Hi @DBScan

Thanks for your reply!

Actually, I am analyzing de novo variants with our msVCF.  
So, I need complete PL (3 elements stands for how ref, het and hom var) to run de\_novo() function. Because de\_novo() function needs parental PL to calculate probabilities that the genotype of child is really true de novo variant.  
But msVCF genotyped using IGG has only one PL element for entries whose GT is hom ref.

Did you analyze DNVs with your msVCF?  
If so, can you tell me how you handled the lacking PL?

Thanks.  
Lee

---

<div class="post-metadata">

**Author:** ![DBScan](https://avatars.discourse-cdn.com/v4/letter/d/bc79bd/32.png) [@DBScan](https://discuss.hail.is/u/DBScan)\
**Post date:** [July 5, 2023, 8:03am UTC](https://discuss.hail.is/t/can-you-support-illumina-dragen-msvcf/3458/4 "2023-07-05T08:03:38Z")

</div>

I see what you would like to achieve now. You would have to rerun the iterative gVCF genotyper with the parameter `--gg-remove-nonref false`, then you get three values for LPL (Local normalized, Phred-scaled likelihoods for genotypes as in original gVCF).

```python
chr1 10109 . AACCCT A,<NON_REF> . PASS AC=1,0;AN=6;NS=3;NS_GT=3;NS_NOGT=0;NS_NODATA=0;GAC=1,0;GAN=6;GNS=3;GNS_GT=3;GNS_NOGT=0;GNS_NODATA=0 GT:GQ:AD:FT:LPL:LAA 0/1:8:2,1,0:PASS:25,0,5,29,9,37:1,2 0/0:5:101,0,13:PASS:0,5,189:2 0/0:5:84,0,10:PASS:0,5,101:2

```
