# Error in variant/sample QC. Malformed VCF?

**URL:** <https://discuss.hail.is/t/error-in-variant-sample-qc-malformed-vcf/1977>\
**Category:** Hail Query & hailctl\
**Created:** [March 22, 2021, 3:07am UTC](https://discuss.hail.is/t/error-in-variant-sample-qc-malformed-vcf/1977 "2021-03-22T03:07:06Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![na89](https://avatars.discourse-cdn.com/v4/letter/n/ce7236/32.png) [@na89](https://discuss.hail.is/u/na89)\
**Post date:** [March 22, 2021, 3:07am UTC](https://discuss.hail.is/t/error-in-variant-sample-qc-malformed-vcf/1977/1 "2021-03-22T03:07:06Z")

</div>

Hi Hail,

I am getting an error when running sample\_qc() and it seems like there is some irregularity in the VCF file. Could you please suggest what should be the best way to find out what is wrong in the VCF?

below is the code and error. Thanks!  
Nikita

```
mt = hl.split_multi(mt)
mt = mt.filter_rows(hl.len(mt.filters) == 0)
mt = mt.filter_entries(mt.DP >=8 )
mt = mt.filter_entries(mt.GQ >=20)
ab = mt.AD[1] / hl.sum(mt.AD)

filter_condition_ab = (
    hl.case()
    .when(mt.GT.is_hom_ref(), ab <= 0.1)
    .when(mt.GT.is_het(), (ab >= 0.25) & (ab <= 0.75))
    .default(ab >= 0.9)
)

mt = mt.filter_entries(filter_condition_ab)
mt = hl.variant_qc(mt)
mt = mt.filter_rows(mt.variant_qc.call_rate > 0)
mt = hl.sample_qc(mt)
mt.sample_qc.show(5)

```

## Hail version: 0.2.64-1ef70187dc78 Error summary: HailException: array index out of bounds: index=2, length=2

Python traceback:  
File “”, line 1, in   
mt = hl.sample\_qc(mt)

File “”, line 2, in sample\_qc

File “/anaconda3/envs/hail/lib/python3.7/site-packages/hail/methods/qc.py”, line 129, in sample\_qc  
bound\_exprs[‘n\_singleton’] = hl.agg.sum(hl.sum(hl.range(0, mt[‘GT’].ploidy).map(lambda i: mt[variant\_ac][mt[‘GT’][i]] == 1)))

File “”, line 2, in map

File “/anaconda3/envs/hail/lib/python3.7/site-packages/hail/methods/qc.py”, line 129, in   
bound\_exprs[‘n\_singleton’] = hl.agg.sum(hl.sum(hl.range(0, mt[‘GT’].ploidy).map(lambda i: mt[variant\_ac][mt[‘GT’][i]] == 1)))

---

<div class="post-metadata">

**Author:** ![tpoterba](https://yyz2.discourse-cdn.com/flex036/user_avatar/discuss.hail.is/tpoterba/32/61_2.png) [@tpoterba](https://discuss.hail.is/u/tpoterba)\
**Post date:** [March 22, 2021, 11:53am UTC](https://discuss.hail.is/t/error-in-variant-sample-qc-malformed-vcf/1977/2 "2021-03-22T11:53:11Z")

</div>

I think the issue here is you need `split_multi_hts` not `split_multi` - the former doesn’t rewrite genotype fields, the latter does. This isn’t super intuitive.

---

<div class="post-metadata">

**Author:** ![na89](https://avatars.discourse-cdn.com/v4/letter/n/ce7236/32.png) [@na89](https://discuss.hail.is/u/na89)\
**Post date:** [March 23, 2021, 12:04am UTC](https://discuss.hail.is/t/error-in-variant-sample-qc-malformed-vcf/1977/3 "2021-03-23T00:04:51Z")

</div>

Thanks Tim! this resolved the problem
