aboutsummaryrefslogtreecommitdiff
path: root/tests/r_qtl
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2024-02-05 15:18:44 +0300
committerFrederick Muriuki Muriithi2024-02-05 15:43:25 +0300
commit3f879d120f7628646f383a457206b15037cc57dc (patch)
treeeaecac8299eeabef511f0297ac439ae0cf590a4e /tests/r_qtl
parent3245182e967f5ac8a296cf47ce3e622c3cb754ed (diff)
downloadgn-uploader-3f879d120f7628646f383a457206b15037cc57dc.tar.gz
Check that data in geno file is valid
Add a function to ensure the values in the geno files are all listed in the control data under the "genotypes" key.
Diffstat (limited to 'tests/r_qtl')
-rw-r--r--tests/r_qtl/test_files/geno_with_missing_genotypes.zipbin0 -> 738 bytes
-rw-r--r--tests/r_qtl/test_r_qtl2_qc.py27
2 files changed, 24 insertions, 3 deletions
diff --git a/tests/r_qtl/test_files/geno_with_missing_genotypes.zip b/tests/r_qtl/test_files/geno_with_missing_genotypes.zip
new file mode 100644
index 0000000..b174d4e
--- /dev/null
+++ b/tests/r_qtl/test_files/geno_with_missing_genotypes.zip
Binary files differ
diff --git a/tests/r_qtl/test_r_qtl2_qc.py b/tests/r_qtl/test_r_qtl2_qc.py
index 9b19ae2..bcbcbac 100644
--- a/tests/r_qtl/test_r_qtl2_qc.py
+++ b/tests/r_qtl/test_r_qtl2_qc.py
@@ -5,7 +5,7 @@ import pytest
from zipfile import ZipFile
from r_qtl import r_qtl2 as rqtl2
-from r_qtl import r_qtl2_qc as qc
+from r_qtl import r_qtl2_qc as rqc
###### DO NOT COMMIT THIS ######
from quality_control.debug import __pk__
@@ -47,7 +47,7 @@ def test_bundle_files_list(filepath, expected):
THEN: verify that ALL files listed in the control file are returned.
"""
with ZipFile(Path(filepath).absolute(), "r") as zfile:
- assert qc.bundle_files_list(rqtl2.control_data(zfile)) == expected
+ assert rqc.bundle_files_list(rqtl2.control_data(zfile)) == expected
@pytest.mark.unit_test
@pytest.mark.parametrize(
@@ -83,4 +83,25 @@ def test_missing_files(filepath, expected):
exist in the bundle are returned.
"""
with ZipFile(Path(filepath).absolute(), "r") as zfile:
- assert qc.missing_files(zfile) == expected
+ assert rqc.missing_files(zfile) == expected
+
+@pytest.mark.unit_test
+@pytest.mark.parametrize(
+ "filepath,expected",
+ (("tests/r_qtl/test_files/empty_control_file_yaml.zip",
+ ((None, None, "Missing 'geno' file."),)),
+ ("tests/r_qtl/test_files/test_geno.zip",
+ tuple()),
+ ("tests/r_qtl/test_files/geno_with_missing_genotypes.zip",
+ ((1, "AXR-1", f"Invalid value 'X'. Expected one of ('L', 'C')"),
+ (2, "EC.480C", f"Invalid value 'Y'. Expected one of ('L', 'C')"),
+ (6, "HH.335C-Col/PhyA", f"Invalid value 'H'. Expected one of ('L', 'C')")))))
+def test_geno_errors(filepath, expected):
+ """
+ GIVEN: A R/qtl2 bundle
+ WHEN: We call r_qtl.r_qtl2_qc.geno_errors(..) on it
+ THEN: We should get a sequence of all errors present in the file, or an
+ empty sequence if no errors exist.
+ """
+ with ZipFile(Path(filepath).absolute(), "r") as zfile:
+ assert tuple(rqc.geno_errors(zfile)) == expected