From c687f9460ca071c714cdc9cba62449b59b001de8 Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Wed, 27 Dec 2023 12:12:33 +0300 Subject: Tests: Test parsing of non-transposed geno files. Check that the parsing of non-transposed geno files. Leave in failing test for transposed geno files. --- tests/r_qtl/test_r_qtl2_gmap.py | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 tests/r_qtl/test_r_qtl2_gmap.py (limited to 'tests/r_qtl/test_r_qtl2_gmap.py') diff --git a/tests/r_qtl/test_r_qtl2_gmap.py b/tests/r_qtl/test_r_qtl2_gmap.py new file mode 100644 index 0000000..64774c2 --- /dev/null +++ b/tests/r_qtl/test_r_qtl2_gmap.py @@ -0,0 +1,48 @@ +"""Test the parsing of the R/qtl2 gmap files.""" +from pathlib import Path + +import pytest +from zipfile import ZipFile + +from r_qtl import r_qtl2 as rqtl2 + +@pytest.mark.unit_test +@pytest.mark.parametrize( + "relpath,mapfiletype,expected", + (("tests/r_qtl/test_files/test_gmap.zip", + "genetic-map", + ({"marker": "PVV4", "chr": "1", "pos": "0.000000"}, + {"marker": "AXR-1", "chr": "1", "pos": "6.250674"}, + {"marker": "HH.335C-Col/PhyA", "chr": "1", "pos": "9.303868"}, + {"marker": "EC.480C", "chr": "1", "pos": "12.577629"}, + {"marker": "EC.66C", "chr": "1", "pos": "18.392830"})), + ("tests/r_qtl/test_files/test_gmap_transposed.zip", + "genetic-map", + ({"marker": "PVV4", "chr": "1", "pos": "0.000000"}, + {"marker": "AXR-1", "chr": "1", "pos": "6.250674"}, + {"marker": "HH.335C-Col/PhyA", "chr": "1", "pos": "9.303868"}, + {"marker": "EC.480C", "chr": "1", "pos": "12.577629"}, + {"marker": "EC.66C", "chr": "1", "pos": "18.392830"})), + ("tests/r_qtl/test_files/test_pmap.zip", + "physical-map", + ({"marker": "D1Mit18", "chr": "1", "pos": "52.418656"}, + {"marker": "D1Mit80", "chr": "1", "pos": "86.377953"}, + {"marker": "D1Mit17", "chr": "1", "pos": "189.571337"}, + {"marker": "D2Mit379", "chr": "2", "pos": "37.451062"}, + {"marker": "D2Mit75", "chr": "2", "pos": "80.584782"})), + ("tests/r_qtl/test_files/test_pmap_transposed.zip", + "physical-map", + ({"marker": "D1Mit18", "chr": "1", "pos": "52.418656"}, + {"marker": "D1Mit80", "chr": "1", "pos": "86.377953"}, + {"marker": "D1Mit17", "chr": "1", "pos": "189.571337"}, + {"marker": "D2Mit379", "chr": "2", "pos": "37.451062"}, + {"marker": "D2Mit75", "chr": "2", "pos": "80.584782"})))) +def test_parse_map_files(relpath, mapfiletype, expected): + """ + GIVEN: A path to a zip file, `relpath` and the type of the map file, + WHEN: we parse the R/qtl2 map file, + THEN: ensure the parsed data is as expected. + """ + with ZipFile(Path(relpath).absolute(), "r") as zfile: + assert rqtl2.map_data( + zfile, mapfiletype, rqtl2.control_data(zfile)) == expected -- cgit v1.2.3