From 9e87861bfdbd009d3b54d6b47bff0b6c30202f0e Mon Sep 17 00:00:00 2001
From: Redmar van den Berg <RedmarvandenBerg@lumc.nl>
Date: Thu, 24 Oct 2019 09:12:26 +0200
Subject: [PATCH] Add check for phased calls

Since it is not clear how we should handle phased calls, we check if the
variants are phased and error out if this is the case.
---
 tests/cases/dummy_phased_blank.vcf.gz     | Bin 0 -> 6985 bytes
 tests/cases/dummy_phased_blank.vcf.gz.tbi | Bin 0 -> 172 bytes
 tests/test_evaluate.py                    |  24 ++++++++++++++++++++++
 vtools/evaluate.py                        |   4 ++++
 4 files changed, 28 insertions(+)
 create mode 100644 tests/cases/dummy_phased_blank.vcf.gz
 create mode 100644 tests/cases/dummy_phased_blank.vcf.gz.tbi

diff --git a/tests/cases/dummy_phased_blank.vcf.gz b/tests/cases/dummy_phased_blank.vcf.gz
new file mode 100644
index 0000000000000000000000000000000000000000..22772c816c36e81870a0a72d8862064c60c2a056
GIT binary patch
literal 6985
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
b000000RIL6LPG)o8vp|U0000000000TRD5l

literal 0
HcmV?d00001

diff --git a/tests/cases/dummy_phased_blank.vcf.gz.tbi b/tests/cases/dummy_phased_blank.vcf.gz.tbi
new file mode 100644
index 0000000000000000000000000000000000000000..3e846195d35e95a729b46de1b2f0a5a3429bed8e
GIT binary patch
literal 172
zcmb2|=3rp}f&Xj_PR>jW{S0qU+wwIz2(Vp<<l<hh(AgSstANFN#m>gwR#EqldiT!9
zHVW)yIQx6j%;{&&7rYPZ>d?BLbTakZgx4QsZhzZedG+$u=T_?<muc;-_n&|Jr{%xP
kGS{Uisd(Z>C-=sDVvUkw-7_nYfk7V4J<<%!VCR7d03oJ9Pyhe`

literal 0
HcmV?d00001

diff --git a/tests/test_evaluate.py b/tests/test_evaluate.py
index dbb3cb5..ec17739 100644
--- a/tests/test_evaluate.py
+++ b/tests/test_evaluate.py
@@ -133,3 +133,27 @@ def test_truncated_positive_no_call(NA12878_positive_truncated):
     """ Variants which are missing from the positive vcf do not count towards
     alleles_no_call """
     assert NA12878_positive_truncated['alleles_no_call'] == 0
+
+
+def test_phased_positive():
+    """ Test error message when the positive vcf contains phased variants """
+    filename = 'tests/cases/gatk.vcf.gz'
+    phased = 'tests/cases/dummy_phased_blank.vcf.gz'
+    call = VCF(filename, gts012=True)
+    phased = VCF(phased, gts012=True)
+    with pytest.raises(NotImplementedError,
+                       match='Phased variants are not supported'):
+        site_concordancy(call, phased, call_samples=['NA12878'],
+                         positive_samples=['BLANK'])
+
+
+def test_phased_call():
+    """ Test error message when the call vcf contains phased variants """
+    filename = 'tests/cases/gatk.vcf.gz'
+    phased = 'tests/cases/dummy_phased_blank.vcf.gz'
+    call = VCF(phased, gts012=True)
+    positive = VCF(filename, gts012=True)
+    with pytest.raises(NotImplementedError,
+                       match='Phased variants are not supported'):
+        site_concordancy(call, positive, call_samples=['BLANK'],
+                         positive_samples=['NA12878'])
diff --git a/vtools/evaluate.py b/vtools/evaluate.py
index 652dd33..ea276ca 100644
--- a/vtools/evaluate.py
+++ b/vtools/evaluate.py
@@ -165,6 +165,10 @@ def site_concordancy(call_vcf: VCF,
             pos = pos_record.genotypes[p_s]
             cal = call_record.genotypes[c_s]
 
+            # If the genotypes are phased
+            if pos[2] or cal[2]:
+                raise NotImplementedError('Phased variants are not supported')
+
             # Parse the genotypes and add the results into d
             parse_variants(pos, cal, d)
 
-- 
GitLab