From e9bf6c5809c292aa8d760b24cdc30414615e1910 Mon Sep 17 00:00:00 2001 From: Pradeep Bashyal Date: Tue, 14 May 2024 09:00:18 -0500 Subject: [PATCH 01/10] Fix `ping` mode for all - When in `ping` mode, Alleles that were not already in `lgx` mode were not reduced properly. For those alleles educe to `lgx` first. --- pyard/ard.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pyard/ard.py b/pyard/ard.py index 4b50a76..d768405 100644 --- a/pyard/ard.py +++ b/pyard/ard.py @@ -206,11 +206,20 @@ def _redux_allele( if redux_type in ["lg", "lgx", "G"]: allele = allele[:-1] if self._config["ping"] and re_ping: + # ping: alleles that are in P group but not in G groups are defined + # for 2-field alleles. If not already in 2-field form, reduce it to + # 2-field version first then re-reduce it to P group. if redux_type in ("lg", "lgx", "U2"): if allele in self.ars_mappings.p_not_g: return self.ars_mappings.p_not_g[allele] else: - return self._redux_allele(allele, redux_type, False) + redux_allele = self._redux_allele(allele, redux_type, False) + if ( + redux_allele == allele + or redux_allele in self.ars_mappings.p_not_g.values() + ): + return redux_allele + return self._redux_allele(redux_allele, "lgx", True) if redux_type == "G" and allele in self.ars_mappings.g_group: if allele in self.ars_mappings.dup_g: From bb87b8342c6511534f2a3cc21f4c5f356da2037c Mon Sep 17 00:00:00 2001 From: Pradeep Bashyal Date: Tue, 14 May 2024 09:00:53 -0500 Subject: [PATCH 02/10] =?UTF-8?q?Bump=20version:=201.1.3=20=E2=86=92=201.1?= =?UTF-8?q?.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- api-spec.yaml | 2 +- pyard/__init__.py | 2 +- setup.cfg | 2 +- setup.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 11688d0..ac091bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ LABEL MAINTAINER="Pradeep Bashyal" WORKDIR /app -ARG PY_ARD_VERSION=1.1.3 +ARG PY_ARD_VERSION=1.1.4 COPY requirements.txt /app RUN pip install --no-cache-dir --upgrade pip && \ diff --git a/api-spec.yaml b/api-spec.yaml index abe07fc..31889bc 100644 --- a/api-spec.yaml +++ b/api-spec.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: ARD Reduction description: Reduce to ARD Level - version: "1.1.3" + version: "1.1.4" servers: - url: 'http://localhost:8080' tags: diff --git a/pyard/__init__.py b/pyard/__init__.py index f07271d..42cfb0b 100644 --- a/pyard/__init__.py +++ b/pyard/__init__.py @@ -26,7 +26,7 @@ from .misc import get_imgt_db_versions as db_versions __author__ = """NMDP Bioinformatics""" -__version__ = "1.1.3" +__version__ = "1.1.4" def init( diff --git a/setup.cfg b/setup.cfg index c791e58..8213967 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.1.3 +current_version = 1.1.4 commit = True tag = True diff --git a/setup.py b/setup.py index a3450f2..3f0bf77 100644 --- a/setup.py +++ b/setup.py @@ -36,7 +36,7 @@ setup( name="py-ard", - version="1.1.3", + version="1.1.4", description="ARD reduction for HLA with Python", long_description=readme, long_description_content_type="text/markdown", From 734bbd8109c6a61e101714020d43cc30a0d0b1c5 Mon Sep 17 00:00:00 2001 From: Pradeep Bashyal Date: Tue, 14 May 2024 09:42:55 -0500 Subject: [PATCH 03/10] Add additional test scenarios for ping --- tests/features/allele.feature | 14 ------ tests/features/p_g_group.feature | 76 ++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 14 deletions(-) diff --git a/tests/features/allele.feature b/tests/features/allele.feature index d6f5df5..4aac0bd 100644 --- a/tests/features/allele.feature +++ b/tests/features/allele.feature @@ -1,19 +1,5 @@ Feature: Alleles - Scenario Outline: allele reduction with ping - - Given the allele as - When reducing on the level with ping - Then the reduced allele is found to be - - Examples: - | Allele | Level | Redux Allele | - | C*02:02 | lg | C*02:02g | - | C*02:02 | lgx | C*02:02 | - | C*02:10 | lg | C*02:02g | - | C*02:10 | lgx | C*02:02 | - | C*06:17 | lgx | C*06:02 | - Scenario Outline: allele reduction Given the allele as diff --git a/tests/features/p_g_group.feature b/tests/features/p_g_group.feature index 0a063fc..87b1521 100644 --- a/tests/features/p_g_group.feature +++ b/tests/features/p_g_group.feature @@ -10,3 +10,79 @@ Feature: P and G Groups | Allele | Level | Redux Allele | | A*02:01P | lgx | A*02:01 | | A*02:01:01G | lgx | A*02:01 | + + + Scenario Outline: allele reduction with ping + + Given the allele as + When reducing on the level with ping + Then the reduced allele is found to be + + Examples: + | Allele | Level | Redux Allele | + | C*02:02 | lg | C*02:02g | + | C*02:02 | lgx | C*02:02 | + | C*02:10 | lg | C*02:02g | + | C*02:10 | lgx | C*02:02 | + | C*06:17 | lgx | C*06:02 | + + Examples: DRB4*01s + | Allele | Level | Redux Allele | + | DRB4*01:03 | lgx | DRB4*01:01 | + | DRB4*01:03:01 | lgx | DRB4*01:01 | + | DRB4*01:03:02 | lgx | DRB4*01:01 | + | DRB4*01:03:03 | lgx | DRB4*01:01 | + | DRB4*01:03:04 | lgx | DRB4*01:01 | + | DRB4*01:03:05 | lgx | DRB4*01:01 | + | DRB4*01:03:06 | lgx | DRB4*01:01 | + | DRB4*01:03:07 | lgx | DRB4*01:01 | + | DRB4*01:03:08 | lgx | DRB4*01:01 | + | DRB4*01:03:09 | lgx | DRB4*01:01 | + | DRB4*01:03:10 | lgx | DRB4*01:01 | + | DRB4*01:03:11 | lgx | DRB4*01:01 | + | DRB4*01:03:12 | lgx | DRB4*01:01 | + | DRB4*01:03:13 | lgx | DRB4*01:01 | + | DRB4*01:03:14 | lgx | DRB4*01:01 | + | DRB4*01:03:15 | lgx | DRB4*01:01 | + | DRB4*01:03:16 | lgx | DRB4*01:01 | + | DRB4*01:03:17 | lgx | DRB4*01:01 | + | DRB4*01:03:18 | lgx | DRB4*01:01 | + | DRB4*01:03:19 | lgx | DRB4*01:01 | + | DRB4*01:03:20 | lgx | DRB4*01:01 | + | DRB4*01:03:21 | lgx | DRB4*01:01 | + | DRB4*01:03:22 | lgx | DRB4*01:01 | + | DRB4*01:03:23 | lgx | DRB4*01:01 | + | DRB4*01:03:24 | lgx | DRB4*01:01 | + | DRB4*01:03:25 | lgx | DRB4*01:01 | + | DRB4*01:03:26 | lgx | DRB4*01:01 | + | DRB4*01:03:27 | lgx | DRB4*01:01 | + | DRB4*01:03:28 | lgx | DRB4*01:01 | + | DRB4*01:03:29 | lgx | DRB4*01:01 | + | DRB4*01:03:30 | lgx | DRB4*01:01 | + | DRB4*01:03:31 | lgx | DRB4*01:01 | + | DRB4*01:03:32 | lgx | DRB4*01:01 | + | DRB4*01:03:33 | lgx | DRB4*01:01 | + | DRB4*01:03:34 | lgx | DRB4*01:01 | + | DRB4*01:03:35 | lgx | DRB4*01:01 | + | DRB4*01:03:01:01 | lgx | DRB4*01:01 | + | DRB4*01:03:01:03 | lgx | DRB4*01:01 | + | DRB4*01:03:01:04 | lgx | DRB4*01:01 | + | DRB4*01:03:01:05 | lgx | DRB4*01:01 | + | DRB4*01:03:01:06 | lgx | DRB4*01:01 | + | DRB4*01:03:01:07 | lgx | DRB4*01:01 | + | DRB4*01:03:01:08 | lgx | DRB4*01:01 | + | DRB4*01:03:01:09 | lgx | DRB4*01:01 | + | DRB4*01:03:01:10 | lgx | DRB4*01:01 | + | DRB4*01:03:01:11 | lgx | DRB4*01:01 | + | DRB4*01:03:01:12 | lgx | DRB4*01:01 | + | DRB4*01:03:01:14 | lgx | DRB4*01:01 | + | DRB4*01:03:01:15 | lgx | DRB4*01:01 | + | DRB4*01:03:01:16 | lgx | DRB4*01:01 | + | DRB4*01:03:01:17 | lgx | DRB4*01:01 | + | DRB4*01:03:01:18 | lgx | DRB4*01:01 | + | DRB4*01:03:02:01 | lgx | DRB4*01:01 | + | DRB4*01:03:02:02 | lgx | DRB4*01:01 | + + Examples: C*02:10s + | Allele | Level | Redux Allele | + | C*02:10:02 | lgx | C*02:02 | From f8f9d1505b9da9ef9f7b5d49af469c12a8c643f4 Mon Sep 17 00:00:00 2001 From: Pradeep Bashyal Date: Tue, 14 May 2024 09:44:52 -0500 Subject: [PATCH 04/10] Group `C*02:10`s together --- tests/features/p_g_group.feature | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/features/p_g_group.feature b/tests/features/p_g_group.feature index 87b1521..fcb3de1 100644 --- a/tests/features/p_g_group.feature +++ b/tests/features/p_g_group.feature @@ -20,10 +20,6 @@ Feature: P and G Groups Examples: | Allele | Level | Redux Allele | - | C*02:02 | lg | C*02:02g | - | C*02:02 | lgx | C*02:02 | - | C*02:10 | lg | C*02:02g | - | C*02:10 | lgx | C*02:02 | | C*06:17 | lgx | C*06:02 | Examples: DRB4*01s @@ -86,3 +82,7 @@ Feature: P and G Groups Examples: C*02:10s | Allele | Level | Redux Allele | | C*02:10:02 | lgx | C*02:02 | + | C*02:02 | lg | C*02:02g | + | C*02:02 | lgx | C*02:02 | + | C*02:10 | lg | C*02:02g | + | C*02:10 | lgx | C*02:02 | From 5d1511eb77ce7437694816fb746ad967f6b05135 Mon Sep 17 00:00:00 2001 From: Pradeep Bashyal Date: Wed, 15 May 2024 15:19:30 -0500 Subject: [PATCH 05/10] Make `ping` mode the default. --- pyard/ard.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyard/ard.py b/pyard/ard.py index d768405..1b9d9b4 100644 --- a/pyard/ard.py +++ b/pyard/ard.py @@ -56,7 +56,7 @@ "reduce_XX": True, "reduce_MAC": True, "reduce_shortnull": True, - "ping": False, + "ping": True, "map_drb345_to_drbx": True, "verbose_log": False, "ARS_as_lg": False, From 87eece1cd86cb0dc1903b083781a14d26d8b0e53 Mon Sep 17 00:00:00 2001 From: Pradeep Bashyal Date: Tue, 21 May 2024 13:58:47 -0500 Subject: [PATCH 06/10] Fix tests to adjust for `ping` mode being the default. - Remove special ping ard object - Fix for `lg` (ARS) mode in `ping` mode - Remove duplicate tests in .json --- pyard/ard.py | 34 ++++++++++++++----- tests/environment.py | 6 ---- tests/expected-serology.json | 15 -------- tests/features/allele.feature | 2 +- tests/features/p_g_group.feature | 3 ++ tests/features/serology_typings_redux.feature | 4 +-- tests/features/shortnulls.feature | 8 ++--- tests/steps/redux_allele.py | 2 +- 8 files changed, 36 insertions(+), 38 deletions(-) diff --git a/pyard/ard.py b/pyard/ard.py index 1b9d9b4..25d67b9 100644 --- a/pyard/ard.py +++ b/pyard/ard.py @@ -211,15 +211,28 @@ def _redux_allele( # 2-field version first then re-reduce it to P group. if redux_type in ("lg", "lgx", "U2"): if allele in self.ars_mappings.p_not_g: - return self.ars_mappings.p_not_g[allele] + not_g_allele = self.ars_mappings.p_not_g[allele] + if redux_type == "lg": + return self._add_lg_suffix(not_g_allele) + return not_g_allele else: redux_allele = self._redux_allele(allele, redux_type, False) + if redux_allele.endswith("g"): + no_suffix_allele = redux_allele.removesuffix("g") + elif redux_allele.endswith("ARS"): + no_suffix_allele = redux_allele.removesuffix("ARS") + else: + no_suffix_allele = redux_allele if ( - redux_allele == allele - or redux_allele in self.ars_mappings.p_not_g.values() + no_suffix_allele == allele + or no_suffix_allele in self.ars_mappings.p_not_g.values() ): return redux_allele - return self._redux_allele(redux_allele, "lgx", True) + redux_allele = self._redux_allele( + no_suffix_allele, redux_type, True + ) + if self._is_valid_allele(redux_allele): + return redux_allele if redux_type == "G" and allele in self.ars_mappings.g_group: if allele in self.ars_mappings.dup_g: @@ -238,11 +251,7 @@ def _redux_allele( # return allele with only first 2 field redux_allele = ":".join(allele.split(":")[0:2]) if redux_type == "lg": - # ARS suffix maybe used instead of g - if self._config["ARS_as_lg"]: - return redux_allele + "ARS" - # lg mode has g appended with lgx reduction - return redux_allele + "g" + return self._add_lg_suffix(redux_allele) return redux_allele elif redux_type == "W": # new redux_type which is full WHO expansion @@ -328,6 +337,13 @@ def _redux_allele( else: raise InvalidAlleleError(f"{allele} is an invalid allele.") + def _add_lg_suffix(self, redux_allele): + # ARS suffix maybe used instead of g + if self._config["ARS_as_lg"]: + return redux_allele + "ARS" + # lg mode has g appended with lgx reduction + return redux_allele + "g" + def _get_non_strict_allele(self, allele): """ In non-strict mode, if the allele is not valid, diff --git a/tests/environment.py b/tests/environment.py index d6d5423..926eaae 100644 --- a/tests/environment.py +++ b/tests/environment.py @@ -25,12 +25,6 @@ def before_all(context): context.ard = pyard.init("3440", data_dir="/tmp/py-ard") - # an ard with ping set to True - ping_config = { - "ping": True, - } - context.ard_ping = pyard.init("3440", data_dir="/tmp/py-ard", config=ping_config) - # an ard with ARS suffix for lg lg_ars_config = { "ARS_as_lg": True, diff --git a/tests/expected-serology.json b/tests/expected-serology.json index 4814944..58fe019 100644 --- a/tests/expected-serology.json +++ b/tests/expected-serology.json @@ -1,20 +1,5 @@ { "redux": [ - { - "glstring": "A10", - "ard_type": "G", - "expected_gl": "A*25:01:01G/A*25:01:02/A*25:01:03/A*25:01:04/A*25:01:05/A*25:01:06/A*25:01:07/A*25:01:08/A*25:01:09/A*25:01:10/A*25:01:11/A*25:01:12/A*25:01:14/A*25:01:16/A*25:01:17/A*25:01:19/A*25:02/A*25:03/A*25:04/A*25:05/A*25:06/A*25:08/A*25:09/A*25:10/A*25:11/A*25:13/A*25:14/A*25:15/A*25:16/A*25:17/A*25:18/A*25:19:01/A*25:19:02/A*25:20/A*25:21/A*25:22/A*25:23/A*25:24/A*25:25/A*25:26/A*25:27:01/A*25:27:02/A*25:28/A*25:29/A*25:30/A*25:31/A*25:32/A*25:33/A*25:34/A*25:35/A*25:36/A*25:37/A*25:38/A*25:39/A*25:40/A*25:41/A*25:43/A*25:44/A*25:45/A*25:46/A*25:47/A*25:48/A*25:50/A*25:51/A*25:52/A*25:53/A*25:54/A*25:55/A*25:56/A*25:57/A*25:58/A*25:59/A*25:61/A*25:64/A*25:65/A*25:66/A*25:67/A*25:70/A*25:71/A*25:72/A*25:73/A*26:01:01G/A*26:01:02/A*26:01:03/A*26:01:04/A*26:01:05/A*26:01:06/A*26:01:08/A*26:01:09/A*26:01:10/A*26:01:11/A*26:01:12/A*26:01:13/A*26:01:14/A*26:01:15/A*26:01:16/A*26:01:17/A*26:01:18/A*26:01:19/A*26:01:20/A*26:01:21/A*26:01:22/A*26:01:23/A*26:01:24/A*26:01:26/A*26:01:27/A*26:01:28/A*26:01:29/A*26:01:30/A*26:01:31/A*26:01:33/A*26:01:34/A*26:01:36/A*26:01:37/A*26:01:38/A*26:01:39/A*26:01:41/A*26:01:42/A*26:01:45/A*26:01:48/A*26:01:50/A*26:01:51/A*26:01:52/A*26:01:53/A*26:01:54/A*26:01:57/A*26:01:59/A*26:01:60/A*26:01:61/A*26:01:62/A*26:01:63/A*26:01:64/A*26:01:65/A*26:01:66/A*26:01:69/A*26:02:01/A*26:02:02/A*26:03:01G/A*26:04/A*26:05/A*26:06/A*26:07:01/A*26:07:02/A*26:08:01G/A*26:08:02/A*26:08:03/A*26:09/A*26:10/A*26:12/A*26:13/A*26:14/A*26:15/A*26:16/A*26:17/A*26:18/A*26:19/A*26:20:01/A*26:20:02/A*26:21/A*26:22/A*26:23/A*26:27/A*26:28/A*26:29/A*26:30/A*26:31/A*26:32/A*26:33/A*26:34/A*26:35/A*26:36/A*26:37/A*26:38/A*26:39/A*26:40/A*26:41/A*26:42/A*26:43:01/A*26:43:02/A*26:45/A*26:46/A*26:47/A*26:48/A*26:49/A*26:50/A*26:51/A*26:52/A*26:53/A*26:54/A*26:55/A*26:57/A*26:58/A*26:59/A*26:61/A*26:62/A*26:63/A*26:64/A*26:65/A*26:66/A*26:67/A*26:68/A*26:69/A*26:70/A*26:72/A*26:73/A*26:74/A*26:75/A*26:76/A*26:77/A*26:78/A*26:79/A*26:80/A*26:81/A*26:83/A*26:84/A*26:85/A*26:86/A*26:87/A*26:88/A*26:89/A*26:90/A*26:91/A*26:92/A*26:93/A*26:94/A*26:95/A*26:96/A*26:97/A*26:100/A*26:101/A*26:102/A*26:103/A*26:104/A*26:105/A*26:106/A*26:108/A*26:109/A*26:110/A*26:111/A*26:112/A*26:113/A*26:114/A*26:115/A*26:116/A*26:118/A*26:119/A*26:120/A*26:121/A*26:122/A*26:123/A*26:124/A*26:125/A*26:126/A*26:128/A*26:129/A*26:130/A*26:131/A*26:132/A*26:133/A*26:134/A*26:135/A*26:136/A*26:137/A*26:138/A*26:139/A*26:140/A*26:141/A*26:142/A*26:143/A*26:144/A*26:146/A*26:147/A*26:148/A*26:149/A*26:150/A*26:151/A*26:152/A*26:153/A*26:154/A*26:155/A*26:156/A*26:158/A*26:159/A*26:165/A*26:169/A*26:170/A*26:171/A*26:172/A*26:173/A*26:174/A*26:175/A*26:176/A*26:177/A*26:178/A*26:181/A*26:182/A*26:184/A*26:188/A*26:189/A*26:190/A*26:192/A*26:193/A*26:194/A*26:195/A*26:196/A*26:197/A*26:198/A*26:200/A*26:204:01G/A*26:205/A*26:207/A*26:211/A*26:212/A*26:213/A*26:214/A*34:01:01G/A*34:01:02/A*34:01:03/A*34:01:05/A*34:02:01G/A*34:02:02/A*34:02:03/A*34:02:04/A*34:02:05/A*34:03/A*34:04/A*34:05/A*34:06/A*34:07/A*34:08/A*34:09/A*34:11/A*34:12/A*34:13/A*34:14/A*34:15/A*34:16/A*34:17/A*34:19/A*34:20/A*34:21/A*34:22/A*34:23/A*34:24/A*34:25/A*66:01:01G/A*66:01:02/A*66:01:03/A*66:01:04/A*66:01:05/A*66:02:01G/A*66:03:01G/A*66:04/A*66:05/A*66:06/A*66:07/A*66:09/A*66:10/A*66:11/A*66:12/A*66:13/A*66:14/A*66:15/A*66:16/A*66:18/A*66:19/A*66:20/A*66:21/A*66:22/A*66:23/A*66:24/A*66:25/A*66:26Q/A*66:30/A*66:32/A*66:33/A*66:35/A*66:37/A*66:40/A*66:41/A*66:42/A*66:43" - }, - { - "glstring": "A10", - "ard_type": "lg", - "expected_gl": "A*25:01g/A*25:02g/A*25:03g/A*25:04g/A*25:05g/A*25:06g/A*25:08g/A*25:09g/A*25:10g/A*25:11g/A*25:13g/A*25:14g/A*25:15g/A*25:16g/A*25:17g/A*25:18g/A*25:19g/A*25:20g/A*25:21g/A*25:22g/A*25:23g/A*25:24g/A*25:25g/A*25:26g/A*25:27g/A*25:28g/A*25:29g/A*25:30g/A*25:31g/A*25:32g/A*25:33g/A*25:34g/A*25:35g/A*25:36g/A*25:37g/A*25:38g/A*25:39g/A*25:40g/A*25:41g/A*25:43g/A*25:44g/A*25:45g/A*25:46g/A*25:47g/A*25:48g/A*25:50g/A*25:51g/A*25:52g/A*25:53g/A*25:54g/A*25:55g/A*25:56g/A*25:57g/A*25:58g/A*25:59g/A*25:61g/A*25:64g/A*25:65g/A*25:66g/A*25:67g/A*25:70g/A*25:71g/A*25:72g/A*25:73g/A*26:01g/A*26:02g/A*26:03g/A*26:04g/A*26:05g/A*26:06g/A*26:07g/A*26:08g/A*26:09g/A*26:10g/A*26:12g/A*26:13g/A*26:14g/A*26:15g/A*26:16g/A*26:17g/A*26:18g/A*26:19g/A*26:20g/A*26:21g/A*26:22g/A*26:23g/A*26:27g/A*26:28g/A*26:29g/A*26:30g/A*26:31g/A*26:32g/A*26:33g/A*26:34g/A*26:35g/A*26:36g/A*26:37g/A*26:38g/A*26:39g/A*26:40g/A*26:41g/A*26:42g/A*26:43g/A*26:45g/A*26:46g/A*26:47g/A*26:48g/A*26:49g/A*26:50g/A*26:51g/A*26:52g/A*26:53g/A*26:54g/A*26:55g/A*26:57g/A*26:58g/A*26:59g/A*26:61g/A*26:62g/A*26:63g/A*26:64g/A*26:65g/A*26:66g/A*26:67g/A*26:68g/A*26:69g/A*26:70g/A*26:72g/A*26:73g/A*26:74g/A*26:75g/A*26:76g/A*26:77g/A*26:78g/A*26:79g/A*26:80g/A*26:81g/A*26:83g/A*26:84g/A*26:85g/A*26:86g/A*26:87g/A*26:88g/A*26:89g/A*26:90g/A*26:91g/A*26:92g/A*26:93g/A*26:94g/A*26:95g/A*26:96g/A*26:97g/A*26:100g/A*26:101g/A*26:102g/A*26:103g/A*26:104g/A*26:105g/A*26:106g/A*26:108g/A*26:109g/A*26:110g/A*26:111g/A*26:112g/A*26:113g/A*26:114g/A*26:115g/A*26:116g/A*26:118g/A*26:119g/A*26:120g/A*26:121g/A*26:122g/A*26:123g/A*26:124g/A*26:125g/A*26:126g/A*26:128g/A*26:129g/A*26:130g/A*26:131g/A*26:132g/A*26:133g/A*26:134g/A*26:135g/A*26:136g/A*26:137g/A*26:138g/A*26:139g/A*26:140g/A*26:141g/A*26:142g/A*26:143g/A*26:144g/A*26:146g/A*26:147g/A*26:148g/A*26:149g/A*26:150g/A*26:151g/A*26:152g/A*26:153g/A*26:154g/A*26:155g/A*26:156g/A*26:158g/A*26:159g/A*26:165g/A*26:169g/A*26:170g/A*26:171g/A*26:172g/A*26:173g/A*26:174g/A*26:175g/A*26:176g/A*26:177g/A*26:178g/A*26:181g/A*26:182g/A*26:184g/A*26:188g/A*26:189g/A*26:190g/A*26:192g/A*26:193g/A*26:194g/A*26:195g/A*26:196g/A*26:197g/A*26:198g/A*26:200g/A*26:204g/A*26:205g/A*26:207g/A*26:211g/A*26:212g/A*26:213g/A*26:214g/A*34:01g/A*34:02g/A*34:03g/A*34:04g/A*34:05g/A*34:06g/A*34:07g/A*34:08g/A*34:09g/A*34:11g/A*34:12g/A*34:13g/A*34:14g/A*34:15g/A*34:16g/A*34:17g/A*34:19g/A*34:20g/A*34:21g/A*34:22g/A*34:23g/A*34:24g/A*34:25g/A*66:01g/A*66:02g/A*66:03g/A*66:04g/A*66:05g/A*66:06g/A*66:07g/A*66:09g/A*66:10g/A*66:11g/A*66:12g/A*66:13g/A*66:14g/A*66:15g/A*66:16g/A*66:18g/A*66:19g/A*66:20g/A*66:21g/A*66:22g/A*66:23g/A*66:24g/A*66:25g/A*66:26Qg/A*66:30g/A*66:32g/A*66:33g/A*66:35g/A*66:37g/A*66:40g/A*66:41g/A*66:42g/A*66:43g" - }, - { - "glstring": "A10", - "ard_type": "lgx", - "expected_gl": "A*25:01/A*25:02/A*25:03/A*25:04/A*25:05/A*25:06/A*25:08/A*25:09/A*25:10/A*25:11/A*25:13/A*25:14/A*25:15/A*25:16/A*25:17/A*25:18/A*25:19/A*25:20/A*25:21/A*25:22/A*25:23/A*25:24/A*25:25/A*25:26/A*25:27/A*25:28/A*25:29/A*25:30/A*25:31/A*25:32/A*25:33/A*25:34/A*25:35/A*25:36/A*25:37/A*25:38/A*25:39/A*25:40/A*25:41/A*25:43/A*25:44/A*25:45/A*25:46/A*25:47/A*25:48/A*25:50/A*25:51/A*25:52/A*25:53/A*25:54/A*25:55/A*25:56/A*25:57/A*25:58/A*25:59/A*25:61/A*25:64/A*25:65/A*25:66/A*25:67/A*25:70/A*25:71/A*25:72/A*25:73/A*26:01/A*26:02/A*26:03/A*26:04/A*26:05/A*26:06/A*26:07/A*26:08/A*26:09/A*26:10/A*26:12/A*26:13/A*26:14/A*26:15/A*26:16/A*26:17/A*26:18/A*26:19/A*26:20/A*26:21/A*26:22/A*26:23/A*26:27/A*26:28/A*26:29/A*26:30/A*26:31/A*26:32/A*26:33/A*26:34/A*26:35/A*26:36/A*26:37/A*26:38/A*26:39/A*26:40/A*26:41/A*26:42/A*26:43/A*26:45/A*26:46/A*26:47/A*26:48/A*26:49/A*26:50/A*26:51/A*26:52/A*26:53/A*26:54/A*26:55/A*26:57/A*26:58/A*26:59/A*26:61/A*26:62/A*26:63/A*26:64/A*26:65/A*26:66/A*26:67/A*26:68/A*26:69/A*26:70/A*26:72/A*26:73/A*26:74/A*26:75/A*26:76/A*26:77/A*26:78/A*26:79/A*26:80/A*26:81/A*26:83/A*26:84/A*26:85/A*26:86/A*26:87/A*26:88/A*26:89/A*26:90/A*26:91/A*26:92/A*26:93/A*26:94/A*26:95/A*26:96/A*26:97/A*26:100/A*26:101/A*26:102/A*26:103/A*26:104/A*26:105/A*26:106/A*26:108/A*26:109/A*26:110/A*26:111/A*26:112/A*26:113/A*26:114/A*26:115/A*26:116/A*26:118/A*26:119/A*26:120/A*26:121/A*26:122/A*26:123/A*26:124/A*26:125/A*26:126/A*26:128/A*26:129/A*26:130/A*26:131/A*26:132/A*26:133/A*26:134/A*26:135/A*26:136/A*26:137/A*26:138/A*26:139/A*26:140/A*26:141/A*26:142/A*26:143/A*26:144/A*26:146/A*26:147/A*26:148/A*26:149/A*26:150/A*26:151/A*26:152/A*26:153/A*26:154/A*26:155/A*26:156/A*26:158/A*26:159/A*26:165/A*26:169/A*26:170/A*26:171/A*26:172/A*26:173/A*26:174/A*26:175/A*26:176/A*26:177/A*26:178/A*26:181/A*26:182/A*26:184/A*26:188/A*26:189/A*26:190/A*26:192/A*26:193/A*26:194/A*26:195/A*26:196/A*26:197/A*26:198/A*26:200/A*26:204/A*26:205/A*26:207/A*26:211/A*26:212/A*26:213/A*26:214/A*34:01/A*34:02/A*34:03/A*34:04/A*34:05/A*34:06/A*34:07/A*34:08/A*34:09/A*34:11/A*34:12/A*34:13/A*34:14/A*34:15/A*34:16/A*34:17/A*34:19/A*34:20/A*34:21/A*34:22/A*34:23/A*34:24/A*34:25/A*66:01/A*66:02/A*66:03/A*66:04/A*66:05/A*66:06/A*66:07/A*66:09/A*66:10/A*66:11/A*66:12/A*66:13/A*66:14/A*66:15/A*66:16/A*66:18/A*66:19/A*66:20/A*66:21/A*66:22/A*66:23/A*66:24/A*66:25/A*66:26Q/A*66:30/A*66:32/A*66:33/A*66:35/A*66:37/A*66:40/A*66:41/A*66:42/A*66:43" - }, { "glstring": "A19", "ard_type": "G", diff --git a/tests/features/allele.feature b/tests/features/allele.feature index 4aac0bd..fd8bd07 100644 --- a/tests/features/allele.feature +++ b/tests/features/allele.feature @@ -25,7 +25,7 @@ Feature: Alleles | C*02:02 | lgx | C*02:02 | | C*02:10 | lg | C*02:02g | | C*02:10 | lgx | C*02:02 | - | C*06:17 | lgx | C*06:17 | + | C*06:17 | lgx | C*06:02 | Scenario Outline: allele reduction with ARS suffix diff --git a/tests/features/p_g_group.feature b/tests/features/p_g_group.feature index fcb3de1..5bfe496 100644 --- a/tests/features/p_g_group.feature +++ b/tests/features/p_g_group.feature @@ -13,6 +13,9 @@ Feature: P and G Groups Scenario Outline: allele reduction with ping + `ping` is the default. + + If there is no G group for the allele, it should use the P group allele. Given the allele as When reducing on the level with ping diff --git a/tests/features/serology_typings_redux.feature b/tests/features/serology_typings_redux.feature index eb2f150..7ec8cd7 100644 --- a/tests/features/serology_typings_redux.feature +++ b/tests/features/serology_typings_redux.feature @@ -13,8 +13,8 @@ Feature: Serology Examples: Valid A serology typings | Serology | Level | Redux Allele | | A10 | G | A*25:01:01G/A*25:01:02/A*25:01:03/A*25:01:04/A*25:01:05/A*25:01:06/A*25:01:07/A*25:01:08/A*25:01:09/A*25:01:10/A*25:01:11/A*25:01:12/A*25:01:14/A*25:01:16/A*25:01:17/A*25:01:19/A*25:02/A*25:03/A*25:04/A*25:05/A*25:06/A*25:08/A*25:09/A*25:10/A*25:11/A*25:13/A*25:14/A*25:15/A*25:16/A*25:17/A*25:18/A*25:19:01/A*25:19:02/A*25:20/A*25:21/A*25:22/A*25:23/A*25:24/A*25:25/A*25:26/A*25:27:01/A*25:27:02/A*25:28/A*25:29/A*25:30/A*25:31/A*25:32/A*25:33/A*25:34/A*25:35/A*25:36/A*25:37/A*25:38/A*25:39/A*25:40/A*25:41/A*25:43/A*25:44/A*25:45/A*25:46/A*25:47/A*25:48/A*25:50/A*25:51/A*25:52/A*25:53/A*25:54/A*25:55/A*25:56/A*25:57/A*25:58/A*25:59/A*25:61/A*25:64/A*25:65/A*25:66/A*25:67/A*25:70/A*25:71/A*25:72/A*25:73/A*26:01:01G/A*26:01:02/A*26:01:03/A*26:01:04/A*26:01:05/A*26:01:06/A*26:01:08/A*26:01:09/A*26:01:10/A*26:01:11/A*26:01:12/A*26:01:13/A*26:01:14/A*26:01:15/A*26:01:16/A*26:01:17/A*26:01:18/A*26:01:19/A*26:01:20/A*26:01:21/A*26:01:22/A*26:01:23/A*26:01:24/A*26:01:26/A*26:01:27/A*26:01:28/A*26:01:29/A*26:01:30/A*26:01:31/A*26:01:33/A*26:01:34/A*26:01:36/A*26:01:37/A*26:01:38/A*26:01:39/A*26:01:41/A*26:01:42/A*26:01:45/A*26:01:48/A*26:01:50/A*26:01:51/A*26:01:52/A*26:01:53/A*26:01:54/A*26:01:57/A*26:01:59/A*26:01:60/A*26:01:61/A*26:01:62/A*26:01:63/A*26:01:64/A*26:01:65/A*26:01:66/A*26:01:69/A*26:02:01/A*26:02:02/A*26:03:01G/A*26:04/A*26:05/A*26:06/A*26:07:01/A*26:07:02/A*26:08:01G/A*26:08:02/A*26:08:03/A*26:09/A*26:10/A*26:12/A*26:13/A*26:14/A*26:15/A*26:16/A*26:17/A*26:18/A*26:19/A*26:20:01/A*26:20:02/A*26:21/A*26:22/A*26:23/A*26:27/A*26:28/A*26:29/A*26:30/A*26:31/A*26:32/A*26:33/A*26:34/A*26:35/A*26:36/A*26:37/A*26:38/A*26:39/A*26:40/A*26:41/A*26:42/A*26:43:01/A*26:43:02/A*26:45/A*26:46/A*26:47/A*26:48/A*26:49/A*26:50/A*26:51/A*26:52/A*26:53/A*26:54/A*26:55/A*26:57/A*26:58/A*26:59/A*26:61/A*26:62/A*26:63/A*26:64/A*26:65/A*26:66/A*26:67/A*26:68/A*26:69/A*26:70/A*26:72/A*26:73/A*26:74/A*26:75/A*26:76/A*26:77/A*26:78/A*26:79/A*26:80/A*26:81/A*26:83/A*26:84/A*26:85/A*26:86/A*26:87/A*26:88/A*26:89/A*26:90/A*26:91/A*26:92/A*26:93/A*26:94/A*26:95/A*26:96/A*26:97/A*26:100/A*26:101/A*26:102/A*26:103/A*26:104/A*26:105/A*26:106/A*26:108/A*26:109/A*26:110/A*26:111/A*26:112/A*26:113/A*26:114/A*26:115/A*26:116/A*26:118/A*26:119/A*26:120/A*26:121/A*26:122/A*26:123/A*26:124/A*26:125/A*26:126/A*26:128/A*26:129/A*26:130/A*26:131/A*26:132/A*26:133/A*26:134/A*26:135/A*26:136/A*26:137/A*26:138/A*26:139/A*26:140/A*26:141/A*26:142/A*26:143/A*26:144/A*26:146/A*26:147/A*26:148/A*26:149/A*26:150/A*26:151/A*26:152/A*26:153/A*26:154/A*26:155/A*26:156/A*26:158/A*26:159/A*26:165/A*26:169/A*26:170/A*26:171/A*26:172/A*26:173/A*26:174/A*26:175/A*26:176/A*26:177/A*26:178/A*26:181/A*26:182/A*26:184/A*26:188/A*26:189/A*26:190/A*26:192/A*26:193/A*26:194/A*26:195/A*26:196/A*26:197/A*26:198/A*26:200/A*26:204:01G/A*26:205/A*26:207/A*26:211/A*26:212/A*26:213/A*26:214/A*34:01:01G/A*34:01:02/A*34:01:03/A*34:01:05/A*34:02:01G/A*34:02:02/A*34:02:03/A*34:02:04/A*34:02:05/A*34:03/A*34:04/A*34:05/A*34:06/A*34:07/A*34:08/A*34:09/A*34:11/A*34:12/A*34:13/A*34:14/A*34:15/A*34:16/A*34:17/A*34:19/A*34:20/A*34:21/A*34:22/A*34:23/A*34:24/A*34:25/A*66:01:01G/A*66:01:02/A*66:01:03/A*66:01:04/A*66:01:05/A*66:02:01G/A*66:03:01G/A*66:04/A*66:05/A*66:06/A*66:07/A*66:09/A*66:10/A*66:11/A*66:12/A*66:13/A*66:14/A*66:15/A*66:16/A*66:18/A*66:19/A*66:20/A*66:21/A*66:22/A*66:23/A*66:24/A*66:25/A*66:26Q/A*66:30/A*66:32/A*66:33/A*66:35/A*66:37/A*66:40/A*66:41/A*66:42/A*66:43 | - | A10 | lg | A*25:01g/A*25:02g/A*25:03g/A*25:04g/A*25:05g/A*25:06g/A*25:08g/A*25:09g/A*25:10g/A*25:11g/A*25:13g/A*25:14g/A*25:15g/A*25:16g/A*25:17g/A*25:18g/A*25:19g/A*25:20g/A*25:21g/A*25:22g/A*25:23g/A*25:24g/A*25:25g/A*25:26g/A*25:27g/A*25:28g/A*25:29g/A*25:30g/A*25:31g/A*25:32g/A*25:33g/A*25:34g/A*25:35g/A*25:36g/A*25:37g/A*25:38g/A*25:39g/A*25:40g/A*25:41g/A*25:43g/A*25:44g/A*25:45g/A*25:46g/A*25:47g/A*25:48g/A*25:50g/A*25:51g/A*25:52g/A*25:53g/A*25:54g/A*25:55g/A*25:56g/A*25:57g/A*25:58g/A*25:59g/A*25:61g/A*25:64g/A*25:65g/A*25:66g/A*25:67g/A*25:70g/A*25:71g/A*25:72g/A*25:73g/A*26:01g/A*26:02g/A*26:03g/A*26:04g/A*26:05g/A*26:06g/A*26:07g/A*26:08g/A*26:09g/A*26:10g/A*26:12g/A*26:13g/A*26:14g/A*26:15g/A*26:16g/A*26:17g/A*26:18g/A*26:19g/A*26:20g/A*26:21g/A*26:22g/A*26:23g/A*26:27g/A*26:28g/A*26:29g/A*26:30g/A*26:31g/A*26:32g/A*26:33g/A*26:34g/A*26:35g/A*26:36g/A*26:37g/A*26:38g/A*26:39g/A*26:40g/A*26:41g/A*26:42g/A*26:43g/A*26:45g/A*26:46g/A*26:47g/A*26:48g/A*26:49g/A*26:50g/A*26:51g/A*26:52g/A*26:53g/A*26:54g/A*26:55g/A*26:57g/A*26:58g/A*26:59g/A*26:61g/A*26:62g/A*26:63g/A*26:64g/A*26:65g/A*26:66g/A*26:67g/A*26:68g/A*26:69g/A*26:70g/A*26:72g/A*26:73g/A*26:74g/A*26:75g/A*26:76g/A*26:77g/A*26:78g/A*26:79g/A*26:80g/A*26:81g/A*26:83g/A*26:84g/A*26:85g/A*26:86g/A*26:87g/A*26:88g/A*26:89g/A*26:90g/A*26:91g/A*26:92g/A*26:93g/A*26:94g/A*26:95g/A*26:96g/A*26:97g/A*26:100g/A*26:101g/A*26:102g/A*26:103g/A*26:104g/A*26:105g/A*26:106g/A*26:108g/A*26:109g/A*26:110g/A*26:111g/A*26:112g/A*26:113g/A*26:114g/A*26:115g/A*26:116g/A*26:118g/A*26:119g/A*26:120g/A*26:121g/A*26:122g/A*26:123g/A*26:124g/A*26:125g/A*26:126g/A*26:128g/A*26:129g/A*26:130g/A*26:131g/A*26:132g/A*26:133g/A*26:134g/A*26:135g/A*26:136g/A*26:137g/A*26:138g/A*26:139g/A*26:140g/A*26:141g/A*26:142g/A*26:143g/A*26:144g/A*26:146g/A*26:147g/A*26:148g/A*26:149g/A*26:150g/A*26:151g/A*26:152g/A*26:153g/A*26:154g/A*26:155g/A*26:156g/A*26:158g/A*26:159g/A*26:165g/A*26:169g/A*26:170g/A*26:171g/A*26:172g/A*26:173g/A*26:174g/A*26:175g/A*26:176g/A*26:177g/A*26:178g/A*26:181g/A*26:182g/A*26:184g/A*26:188g/A*26:189g/A*26:190g/A*26:192g/A*26:193g/A*26:194g/A*26:195g/A*26:196g/A*26:197g/A*26:198g/A*26:200g/A*26:204g/A*26:205g/A*26:207g/A*26:211g/A*26:212g/A*26:213g/A*26:214g/A*34:01g/A*34:02g/A*34:03g/A*34:04g/A*34:05g/A*34:06g/A*34:07g/A*34:08g/A*34:09g/A*34:11g/A*34:12g/A*34:13g/A*34:14g/A*34:15g/A*34:16g/A*34:17g/A*34:19g/A*34:20g/A*34:21g/A*34:22g/A*34:23g/A*34:24g/A*34:25g/A*66:01g/A*66:02g/A*66:03g/A*66:04g/A*66:05g/A*66:06g/A*66:07g/A*66:09g/A*66:10g/A*66:11g/A*66:12g/A*66:13g/A*66:14g/A*66:15g/A*66:16g/A*66:18g/A*66:19g/A*66:20g/A*66:21g/A*66:22g/A*66:23g/A*66:24g/A*66:25g/A*66:26Qg/A*66:30g/A*66:32g/A*66:33g/A*66:35g/A*66:37g/A*66:40g/A*66:41g/A*66:42g/A*66:43g | - | A10 | lgx | A*25:01/A*25:02/A*25:03/A*25:04/A*25:05/A*25:06/A*25:08/A*25:09/A*25:10/A*25:11/A*25:13/A*25:14/A*25:15/A*25:16/A*25:17/A*25:18/A*25:19/A*25:20/A*25:21/A*25:22/A*25:23/A*25:24/A*25:25/A*25:26/A*25:27/A*25:28/A*25:29/A*25:30/A*25:31/A*25:32/A*25:33/A*25:34/A*25:35/A*25:36/A*25:37/A*25:38/A*25:39/A*25:40/A*25:41/A*25:43/A*25:44/A*25:45/A*25:46/A*25:47/A*25:48/A*25:50/A*25:51/A*25:52/A*25:53/A*25:54/A*25:55/A*25:56/A*25:57/A*25:58/A*25:59/A*25:61/A*25:64/A*25:65/A*25:66/A*25:67/A*25:70/A*25:71/A*25:72/A*25:73/A*26:01/A*26:02/A*26:03/A*26:04/A*26:05/A*26:06/A*26:07/A*26:08/A*26:09/A*26:10/A*26:12/A*26:13/A*26:14/A*26:15/A*26:16/A*26:17/A*26:18/A*26:19/A*26:20/A*26:21/A*26:22/A*26:23/A*26:27/A*26:28/A*26:29/A*26:30/A*26:31/A*26:32/A*26:33/A*26:34/A*26:35/A*26:36/A*26:37/A*26:38/A*26:39/A*26:40/A*26:41/A*26:42/A*26:43/A*26:45/A*26:46/A*26:47/A*26:48/A*26:49/A*26:50/A*26:51/A*26:52/A*26:53/A*26:54/A*26:55/A*26:57/A*26:58/A*26:59/A*26:61/A*26:62/A*26:63/A*26:64/A*26:65/A*26:66/A*26:67/A*26:68/A*26:69/A*26:70/A*26:72/A*26:73/A*26:74/A*26:75/A*26:76/A*26:77/A*26:78/A*26:79/A*26:80/A*26:81/A*26:83/A*26:84/A*26:85/A*26:86/A*26:87/A*26:88/A*26:89/A*26:90/A*26:91/A*26:92/A*26:93/A*26:94/A*26:95/A*26:96/A*26:97/A*26:100/A*26:101/A*26:102/A*26:103/A*26:104/A*26:105/A*26:106/A*26:108/A*26:109/A*26:110/A*26:111/A*26:112/A*26:113/A*26:114/A*26:115/A*26:116/A*26:118/A*26:119/A*26:120/A*26:121/A*26:122/A*26:123/A*26:124/A*26:125/A*26:126/A*26:128/A*26:129/A*26:130/A*26:131/A*26:132/A*26:133/A*26:134/A*26:135/A*26:136/A*26:137/A*26:138/A*26:139/A*26:140/A*26:141/A*26:142/A*26:143/A*26:144/A*26:146/A*26:147/A*26:148/A*26:149/A*26:150/A*26:151/A*26:152/A*26:153/A*26:154/A*26:155/A*26:156/A*26:158/A*26:159/A*26:165/A*26:169/A*26:170/A*26:171/A*26:172/A*26:173/A*26:174/A*26:175/A*26:176/A*26:177/A*26:178/A*26:181/A*26:182/A*26:184/A*26:188/A*26:189/A*26:190/A*26:192/A*26:193/A*26:194/A*26:195/A*26:196/A*26:197/A*26:198/A*26:200/A*26:204/A*26:205/A*26:207/A*26:211/A*26:212/A*26:213/A*26:214/A*34:01/A*34:02/A*34:03/A*34:04/A*34:05/A*34:06/A*34:07/A*34:08/A*34:09/A*34:11/A*34:12/A*34:13/A*34:14/A*34:15/A*34:16/A*34:17/A*34:19/A*34:20/A*34:21/A*34:22/A*34:23/A*34:24/A*34:25/A*66:01/A*66:02/A*66:03/A*66:04/A*66:05/A*66:06/A*66:07/A*66:09/A*66:10/A*66:11/A*66:12/A*66:13/A*66:14/A*66:15/A*66:16/A*66:18/A*66:19/A*66:20/A*66:21/A*66:22/A*66:23/A*66:24/A*66:25/A*66:26Q/A*66:30/A*66:32/A*66:33/A*66:35/A*66:37/A*66:40/A*66:41/A*66:42/A*66:43 | + | A10 | lg | A*25:01g/A*25:02g/A*25:03g/A*25:04g/A*25:05g/A*25:06g/A*25:08g/A*25:09g/A*25:10g/A*25:11g/A*25:13g/A*25:14g/A*25:15g/A*25:16g/A*25:17g/A*25:18g/A*25:19g/A*25:20g/A*25:21g/A*25:22g/A*25:23g/A*25:24g/A*25:25g/A*25:26g/A*25:27g/A*25:28g/A*25:29g/A*25:30g/A*25:31g/A*25:32g/A*25:33g/A*25:34g/A*25:35g/A*25:36g/A*25:37g/A*25:38g/A*25:39g/A*25:40g/A*25:41g/A*25:43g/A*25:44g/A*25:45g/A*25:46g/A*25:47g/A*25:48g/A*25:50g/A*25:51g/A*25:52g/A*25:53g/A*25:54g/A*25:55g/A*25:56g/A*25:57g/A*25:58g/A*25:59g/A*25:61g/A*25:64g/A*25:65g/A*25:66g/A*25:67g/A*25:70g/A*25:71g/A*25:72g/A*25:73g/A*26:01g/A*26:02g/A*26:03g/A*26:04g/A*26:05g/A*26:06g/A*26:07g/A*26:08g/A*26:09g/A*26:10g/A*26:12g/A*26:13g/A*26:14g/A*26:15g/A*26:16g/A*26:17g/A*26:18g/A*26:19g/A*26:20g/A*26:21g/A*26:22g/A*26:23g/A*26:27g/A*26:28g/A*26:29g/A*26:30g/A*26:31g/A*26:32g/A*26:33g/A*26:34g/A*26:35g/A*26:36g/A*26:37g/A*26:38g/A*26:39g/A*26:40g/A*26:41g/A*26:42g/A*26:43g/A*26:45g/A*26:46g/A*26:47g/A*26:48g/A*26:49g/A*26:50g/A*26:51g/A*26:52g/A*26:53g/A*26:54g/A*26:55g/A*26:57g/A*26:58g/A*26:59g/A*26:61g/A*26:62g/A*26:63g/A*26:64g/A*26:65g/A*26:66g/A*26:67g/A*26:68g/A*26:69g/A*26:70g/A*26:72g/A*26:73g/A*26:74g/A*26:75g/A*26:76g/A*26:77g/A*26:78g/A*26:79g/A*26:80g/A*26:81g/A*26:83g/A*26:84g/A*26:85g/A*26:86g/A*26:87g/A*26:88g/A*26:89g/A*26:90g/A*26:91g/A*26:92g/A*26:93g/A*26:94g/A*26:95g/A*26:96g/A*26:97g/A*26:100g/A*26:101g/A*26:102g/A*26:103g/A*26:104g/A*26:105g/A*26:106g/A*26:108g/A*26:109g/A*26:110g/A*26:112g/A*26:113g/A*26:114g/A*26:115g/A*26:116g/A*26:118g/A*26:119g/A*26:120g/A*26:121g/A*26:122g/A*26:123g/A*26:124g/A*26:125g/A*26:126g/A*26:128g/A*26:129g/A*26:130g/A*26:131g/A*26:132g/A*26:133g/A*26:134g/A*26:135g/A*26:136g/A*26:137g/A*26:138g/A*26:139g/A*26:140g/A*26:141g/A*26:142g/A*26:143g/A*26:144g/A*26:146g/A*26:147g/A*26:148g/A*26:149g/A*26:150g/A*26:151g/A*26:152g/A*26:153g/A*26:154g/A*26:155g/A*26:156g/A*26:158g/A*26:159g/A*26:165g/A*26:169g/A*26:170g/A*26:171g/A*26:172g/A*26:173g/A*26:174g/A*26:175g/A*26:176g/A*26:177g/A*26:178g/A*26:181g/A*26:182g/A*26:184g/A*26:188g/A*26:189g/A*26:190g/A*26:192g/A*26:193g/A*26:194g/A*26:195g/A*26:196g/A*26:197g/A*26:198g/A*26:200g/A*26:204g/A*26:205g/A*26:207g/A*26:211g/A*26:212g/A*26:214g/A*34:01g/A*34:02g/A*34:03g/A*34:04g/A*34:05g/A*34:06g/A*34:07g/A*34:08g/A*34:09g/A*34:11g/A*34:12g/A*34:13g/A*34:14g/A*34:15g/A*34:16g/A*34:17g/A*34:19g/A*34:20g/A*34:21g/A*34:22g/A*34:23g/A*34:24g/A*34:25g/A*66:01g/A*66:02g/A*66:03g/A*66:04g/A*66:05g/A*66:06g/A*66:07g/A*66:09g/A*66:10g/A*66:11g/A*66:12g/A*66:13g/A*66:14g/A*66:15g/A*66:16g/A*66:18g/A*66:19g/A*66:20g/A*66:21g/A*66:22g/A*66:23g/A*66:24g/A*66:25g/A*66:26Qg/A*66:30g/A*66:32g/A*66:33g/A*66:35g/A*66:37g/A*66:40g/A*66:41g/A*66:42g/A*66:43g | + | A10 | lgx | A*25:01/A*25:02/A*25:03/A*25:04/A*25:05/A*25:06/A*25:08/A*25:09/A*25:10/A*25:11/A*25:13/A*25:14/A*25:15/A*25:16/A*25:17/A*25:18/A*25:19/A*25:20/A*25:21/A*25:22/A*25:23/A*25:24/A*25:25/A*25:26/A*25:27/A*25:28/A*25:29/A*25:30/A*25:31/A*25:32/A*25:33/A*25:34/A*25:35/A*25:36/A*25:37/A*25:38/A*25:39/A*25:40/A*25:41/A*25:43/A*25:44/A*25:45/A*25:46/A*25:47/A*25:48/A*25:50/A*25:51/A*25:52/A*25:53/A*25:54/A*25:55/A*25:56/A*25:57/A*25:58/A*25:59/A*25:61/A*25:64/A*25:65/A*25:66/A*25:67/A*25:70/A*25:71/A*25:72/A*25:73/A*26:01/A*26:02/A*26:03/A*26:04/A*26:05/A*26:06/A*26:07/A*26:08/A*26:09/A*26:10/A*26:12/A*26:13/A*26:14/A*26:15/A*26:16/A*26:17/A*26:18/A*26:19/A*26:20/A*26:21/A*26:22/A*26:23/A*26:27/A*26:28/A*26:29/A*26:30/A*26:31/A*26:32/A*26:33/A*26:34/A*26:35/A*26:36/A*26:37/A*26:38/A*26:39/A*26:40/A*26:41/A*26:42/A*26:43/A*26:45/A*26:46/A*26:47/A*26:48/A*26:49/A*26:50/A*26:51/A*26:52/A*26:53/A*26:54/A*26:55/A*26:57/A*26:58/A*26:59/A*26:61/A*26:62/A*26:63/A*26:64/A*26:65/A*26:66/A*26:67/A*26:68/A*26:69/A*26:70/A*26:72/A*26:73/A*26:74/A*26:75/A*26:76/A*26:77/A*26:78/A*26:79/A*26:80/A*26:81/A*26:83/A*26:84/A*26:85/A*26:86/A*26:87/A*26:88/A*26:89/A*26:90/A*26:91/A*26:92/A*26:93/A*26:94/A*26:95/A*26:96/A*26:97/A*26:100/A*26:101/A*26:102/A*26:103/A*26:104/A*26:105/A*26:106/A*26:108/A*26:109/A*26:110/A*26:112/A*26:113/A*26:114/A*26:115/A*26:116/A*26:118/A*26:119/A*26:120/A*26:121/A*26:122/A*26:123/A*26:124/A*26:125/A*26:126/A*26:128/A*26:129/A*26:130/A*26:131/A*26:132/A*26:133/A*26:134/A*26:135/A*26:136/A*26:137/A*26:138/A*26:139/A*26:140/A*26:141/A*26:142/A*26:143/A*26:144/A*26:146/A*26:147/A*26:148/A*26:149/A*26:150/A*26:151/A*26:152/A*26:153/A*26:154/A*26:155/A*26:156/A*26:158/A*26:159/A*26:165/A*26:169/A*26:170/A*26:171/A*26:172/A*26:173/A*26:174/A*26:175/A*26:176/A*26:177/A*26:178/A*26:181/A*26:182/A*26:184/A*26:188/A*26:189/A*26:190/A*26:192/A*26:193/A*26:194/A*26:195/A*26:196/A*26:197/A*26:198/A*26:200/A*26:204/A*26:205/A*26:207/A*26:211/A*26:212/A*26:214/A*34:01/A*34:02/A*34:03/A*34:04/A*34:05/A*34:06/A*34:07/A*34:08/A*34:09/A*34:11/A*34:12/A*34:13/A*34:14/A*34:15/A*34:16/A*34:17/A*34:19/A*34:20/A*34:21/A*34:22/A*34:23/A*34:24/A*34:25/A*66:01/A*66:02/A*66:03/A*66:04/A*66:05/A*66:06/A*66:07/A*66:09/A*66:10/A*66:11/A*66:12/A*66:13/A*66:14/A*66:15/A*66:16/A*66:18/A*66:19/A*66:20/A*66:21/A*66:22/A*66:23/A*66:24/A*66:25/A*66:26Q/A*66:30/A*66:32/A*66:33/A*66:35/A*66:37/A*66:40/A*66:41/A*66:42/A*66:43 | | A19 | G | A*02:65/A*29:01:01G/A*29:01:02/A*29:01:03/A*29:01:04/A*29:01:06/A*29:01:07/A*29:01:08/A*29:01:09/A*29:01:10/A*29:01:11/A*29:01:12/A*29:01:13/A*29:02:01G/A*29:02:02/A*29:02:03/A*29:02:04/A*29:02:05/A*29:02:06/A*29:02:08/A*29:02:09/A*29:02:10/A*29:02:11/A*29:02:12/A*29:02:13/A*29:02:14/A*29:02:15/A*29:02:16/A*29:02:17G/A*29:02:18/A*29:02:19/A*29:02:21/A*29:02:22/A*29:02:23/A*29:02:25/A*29:02:29/A*29:02:31/A*29:02:32/A*29:02:33/A*29:03/A*29:04/A*29:05/A*29:06/A*29:07/A*29:09/A*29:10:01/A*29:10:02/A*29:11/A*29:12/A*29:13/A*29:14/A*29:15/A*29:16/A*29:17/A*29:18/A*29:19/A*29:20/A*29:21/A*29:22/A*29:23/A*29:24/A*29:25/A*29:27/A*29:28/A*29:29/A*29:30/A*29:31/A*29:32/A*29:33/A*29:34/A*29:35/A*29:36/A*29:37/A*29:38/A*29:39/A*29:40/A*29:41/A*29:42/A*29:43/A*29:44/A*29:45/A*29:47/A*29:48/A*29:49/A*29:50/A*29:51/A*29:52/A*29:53/A*29:54/A*29:55/A*29:56/A*29:57/A*29:58/A*29:59/A*29:60/A*29:61/A*29:62/A*29:63/A*29:64/A*29:65/A*29:66/A*29:67/A*29:68/A*29:69/A*29:70/A*29:71/A*29:72/A*29:73/A*29:74/A*29:76/A*29:77/A*29:79/A*29:80/A*29:81/A*29:82/A*29:83/A*29:84/A*29:85/A*29:86/A*29:87/A*29:88/A*29:89/A*29:90/A*29:91/A*29:92/A*29:93/A*29:94/A*29:96/A*29:97/A*29:98/A*29:99/A*29:101:01/A*29:101:02/A*29:102/A*29:103/A*29:104/A*29:105/A*29:106/A*29:107/A*29:108/A*29:109/A*29:110/A*29:111/A*29:113/A*29:114/A*29:115/A*29:117/A*29:118/A*29:122/A*29:123/A*29:124/A*29:125/A*29:126Q/A*29:127/A*29:128/A*29:129/A*29:132/A*29:133:01G/A*29:136/A*29:137/A*29:138/A*29:139/A*29:140/A*29:141/A*29:142/A*29:143/A*29:144/A*29:150/A*29:151/A*29:152/A*29:153/A*29:154/A*30:01:01G/A*30:01:03/A*30:01:04/A*30:01:05/A*30:01:06/A*30:01:07/A*30:01:08/A*30:01:09/A*30:01:10/A*30:01:11/A*30:01:12/A*30:01:14/A*30:01:15/A*30:01:16/A*30:01:17/A*30:01:18/A*30:02:01G/A*30:02:03/A*30:02:04/A*30:02:05/A*30:02:06/A*30:02:07/A*30:02:08/A*30:02:09/A*30:02:10/A*30:02:11/A*30:02:12/A*30:02:13/A*30:02:14/A*30:02:15/A*30:02:16/A*30:02:17/A*30:02:18/A*30:02:19/A*30:02:22/A*30:02:24/A*30:02:26/A*30:03/A*30:04:01G/A*30:04:02/A*30:04:03/A*30:06/A*30:07/A*30:08:01/A*30:08:02/A*30:09:01G/A*30:10/A*30:11:01/A*30:11:02/A*30:12:01/A*30:12:02/A*30:13/A*30:14L/A*30:15/A*30:16/A*30:17/A*30:18/A*30:19/A*30:20/A*30:22/A*30:23/A*30:25/A*30:26/A*30:28/A*30:29/A*30:30/A*30:31/A*30:32/A*30:34/A*30:35/A*30:36/A*30:37/A*30:38/A*30:39:01/A*30:39:02/A*30:40/A*30:41/A*30:42/A*30:43/A*30:44/A*30:45/A*30:46/A*30:47/A*30:48/A*30:49/A*30:50/A*30:51/A*30:52/A*30:53/A*30:54/A*30:55/A*30:56/A*30:57/A*30:58/A*30:60/A*30:61/A*30:62/A*30:63/A*30:64/A*30:65/A*30:66/A*30:67/A*30:68/A*30:69/A*30:71/A*30:72/A*30:74/A*30:75/A*30:79/A*30:80/A*30:82/A*30:83/A*30:84/A*30:85/A*30:86/A*30:87/A*30:88/A*30:89/A*30:90/A*30:91/A*30:92/A*30:93/A*30:94/A*30:96/A*30:97/A*30:98/A*30:99/A*30:101Q/A*30:102/A*30:103/A*30:104/A*30:106/A*30:107/A*30:108/A*30:109/A*30:110/A*30:111/A*30:113/A*30:116/A*30:117/A*30:118/A*30:119/A*30:120/A*30:122/A*30:124/A*30:125/A*30:126/A*30:127/A*30:128/A*30:129/A*30:131/A*30:133/A*30:134/A*30:139/A*30:140/A*30:143/A*30:150/A*30:152/A*30:153/A*30:154/A*30:155/A*30:157/A*30:159/A*30:160/A*30:161/A*30:162/A*30:163/A*30:164/A*30:165/A*30:166/A*30:168/A*30:172/A*30:174/A*30:176/A*30:177/A*30:179/A*30:180/A*30:182/A*30:183/A*30:184Q/A*30:185/A*30:186/A*30:188/A*31:01:02G/A*31:01:03/A*31:01:04/A*31:01:05/A*31:01:06/A*31:01:07/A*31:01:08/A*31:01:09/A*31:01:10/A*31:01:11/A*31:01:12/A*31:01:14/A*31:01:15/A*31:01:16/A*31:01:17/A*31:01:18/A*31:01:19/A*31:01:20/A*31:01:21/A*31:01:22/A*31:01:23/A*31:01:24/A*31:01:25/A*31:01:26/A*31:01:27/A*31:01:29/A*31:01:30/A*31:01:31/A*31:01:32/A*31:01:34/A*31:01:36/A*31:01:37/A*31:01:38/A*31:01:39/A*31:01:40/A*31:01:41/A*31:01:44/A*31:02:01G/A*31:03/A*31:04:01G/A*31:04:02/A*31:05/A*31:06/A*31:07/A*31:08/A*31:09/A*31:10/A*31:11/A*31:12/A*31:13/A*31:15/A*31:16/A*31:17/A*31:18/A*31:19/A*31:20/A*31:21/A*31:22/A*31:24/A*31:25/A*31:26/A*31:27/A*31:28/A*31:29/A*31:30/A*31:31/A*31:32/A*31:33/A*31:34/A*31:35/A*31:36/A*31:37/A*31:38/A*31:39/A*31:40/A*31:41/A*31:42/A*31:43/A*31:44/A*31:45/A*31:47/A*31:49/A*31:50/A*31:51/A*31:52/A*31:53/A*31:54/A*31:57/A*31:58/A*31:61/A*31:62/A*31:63/A*31:64/A*31:65/A*31:66/A*31:67/A*31:68/A*31:69/A*31:70/A*31:73/A*31:74/A*31:75/A*31:76/A*31:77/A*31:78/A*31:79/A*31:80/A*31:82/A*31:83/A*31:84/A*31:85/A*31:86/A*31:87/A*31:88/A*31:89/A*31:90/A*31:91/A*31:92/A*31:93/A*31:94/A*31:96/A*31:97/A*31:98/A*31:99/A*31:100/A*31:101/A*31:102/A*31:103/A*31:104/A*31:105/A*31:106/A*31:107/A*31:108/A*31:109/A*31:110/A*31:112/A*31:113/A*31:114/A*31:115/A*31:116/A*31:117/A*31:118/A*31:120/A*31:121/A*31:122/A*31:123/A*31:124/A*31:127/A*31:129/A*31:130/A*31:133/A*31:134/A*31:136/A*31:137/A*31:138/A*31:139/A*31:140/A*31:142/A*31:144/A*31:145/A*31:146/A*31:147/A*31:148/A*31:150/A*31:154/A*31:161/A*31:162/A*31:163/A*31:164/A*31:165/A*31:168/A*31:169/A*31:170/A*31:171/A*31:172/A*31:173/A*31:174/A*31:175/A*31:176/A*31:179/A*31:180/A*31:183/A*31:185/A*31:187/A*31:189/A*31:190/A*31:191/A*31:192/A*31:193/A*31:195/A*32:01:01G/A*32:01:03/A*32:01:04/A*32:01:05/A*32:01:06/A*32:01:07/A*32:01:08/A*32:01:09/A*32:01:10/A*32:01:11/A*32:01:12/A*32:01:13/A*32:01:14/A*32:01:15/A*32:01:16/A*32:01:17/A*32:01:18/A*32:01:19/A*32:01:20/A*32:01:21/A*32:01:22/A*32:01:24/A*32:01:25/A*32:01:26/A*32:01:28/A*32:01:30/A*32:01:31/A*32:01:32/A*32:01:33/A*32:01:37/A*32:01:38/A*32:01:39/A*32:01:40/A*32:01:41/A*32:01:43/A*32:01:45/A*32:02/A*32:03:01G/A*32:04/A*32:05/A*32:06/A*32:07/A*32:08/A*32:09/A*32:10/A*32:11Q/A*32:12/A*32:13/A*32:14/A*32:15/A*32:16/A*32:17/A*32:18/A*32:20/A*32:21/A*32:22/A*32:23/A*32:24/A*32:25/A*32:26:01/A*32:26:02/A*32:28/A*32:29/A*32:30:01/A*32:30:02/A*32:31/A*32:32/A*32:33:01/A*32:33:02/A*32:33:03/A*32:34/A*32:35/A*32:36/A*32:37/A*32:38/A*32:39/A*32:40/A*32:41/A*32:42/A*32:43:01/A*32:43:02/A*32:44/A*32:46:01/A*32:46:02/A*32:47/A*32:49/A*32:50/A*32:51/A*32:52/A*32:55:01/A*32:55:02/A*32:55:03/A*32:57/A*32:58/A*32:59/A*32:60/A*32:62/A*32:63/A*32:64/A*32:65/A*32:66/A*32:67/A*32:69/A*32:70/A*32:71/A*32:72/A*32:73/A*32:75/A*32:76/A*32:77/A*32:78/A*32:79/A*32:80/A*32:81/A*32:82/A*32:83/A*32:84/A*32:85/A*32:86/A*32:87/A*32:88/A*32:89/A*32:90/A*32:91/A*32:93/A*32:94/A*32:95/A*32:96/A*32:97/A*32:98/A*32:99/A*32:100/A*32:101Q/A*32:102/A*32:104/A*32:105/A*32:107/A*32:108/A*32:109/A*32:113/A*32:115/A*32:118/A*32:119/A*32:120/A*32:123/A*32:125/A*32:127/A*32:128/A*32:129/A*32:131/A*32:136/A*32:137/A*32:138/A*32:140/A*32:141/A*32:142/A*32:143/A*32:144/A*32:145/A*32:146/A*32:150/A*32:151/A*33:01:01G/A*33:01:02/A*33:01:03/A*33:01:04/A*33:01:05/A*33:01:06/A*33:01:07/A*33:01:08/A*33:01:10/A*33:01:11/A*33:01:12/A*33:03:01G/A*33:03:02/A*33:03:04/A*33:03:05/A*33:03:06/A*33:03:07/A*33:03:08/A*33:03:09/A*33:03:10/A*33:03:11/A*33:03:12/A*33:03:14/A*33:03:15/A*33:03:16/A*33:03:19/A*33:03:20/A*33:03:21/A*33:03:24/A*33:03:25/A*33:03:26/A*33:03:27/A*33:03:28/A*33:03:29/A*33:03:30/A*33:03:31/A*33:03:32/A*33:03:33/A*33:03:34/A*33:03:35/A*33:03:36/A*33:03:38/A*33:03:39/A*33:03:40/A*33:03:41/A*33:03:42/A*33:03:45/A*33:03:46/A*33:03:47/A*33:04/A*33:05/A*33:06/A*33:07/A*33:08/A*33:09/A*33:10/A*33:11/A*33:12/A*33:13/A*33:14/A*33:16/A*33:17/A*33:18:01/A*33:18:02/A*33:19/A*33:20/A*33:21/A*33:22/A*33:23/A*33:24/A*33:26/A*33:27/A*33:28/A*33:29/A*33:30/A*33:32:01/A*33:32:02/A*33:33/A*33:34/A*33:35/A*33:36/A*33:37/A*33:40:01/A*33:40:02/A*33:41/A*33:42/A*33:43/A*33:45/A*33:46/A*33:47/A*33:48/A*33:49/A*33:50/A*33:51/A*33:52/A*33:53/A*33:54/A*33:55/A*33:56/A*33:57/A*33:58/A*33:59/A*33:60/A*33:61/A*33:62/A*33:63/A*33:64/A*33:65/A*33:66/A*33:67/A*33:68/A*33:69/A*33:70/A*33:71/A*33:72/A*33:75/A*33:76/A*33:78/A*33:79/A*33:81/A*33:86/A*33:87/A*33:88/A*33:89/A*33:90/A*33:91/A*33:92/A*33:93/A*33:94/A*33:95/A*33:97/A*33:98/A*33:99/A*33:100/A*33:101/A*33:102/A*33:103/A*33:104/A*33:105/A*33:106/A*33:107/A*33:108/A*33:109/A*33:110/A*33:112/A*33:113/A*33:114/A*33:115/A*33:116/A*33:117/A*33:118/A*33:119/A*33:120/A*33:121/A*33:122/A*33:124/A*33:125/A*33:126/A*33:127/A*33:128/A*33:130/A*33:131/A*33:132/A*33:133/A*33:134/A*33:135/A*33:137/A*33:138/A*33:139/A*33:141/A*33:142/A*33:144/A*33:147/A*33:149/A*33:150/A*33:152/A*33:155/A*33:158/A*33:159/A*33:161/A*33:162/A*33:164/A*33:165/A*33:166/A*33:167/A*33:168/A*33:173/A*33:175Q/A*33:177/A*33:178/A*33:179/A*33:180/A*33:183/A*33:184/A*33:185/A*33:186/A*33:187/A*33:188/A*33:189/A*33:190/A*33:192/A*33:195/A*33:196/A*33:197/A*33:199/A*33:200/A*33:201/A*33:206/A*33:208/A*33:211/A*33:212/A*74:01:01G/A*74:01:02/A*74:01:03/A*74:01:04/A*74:01:05/A*74:01:06/A*74:01:07/A*74:03:01G/A*74:03:02/A*74:04/A*74:05/A*74:06:01G/A*74:07/A*74:08/A*74:09/A*74:10/A*74:11/A*74:13/A*74:15/A*74:16:01/A*74:16:02/A*74:17/A*74:18/A*74:19/A*74:20/A*74:21/A*74:22/A*74:23/A*74:24/A*74:25/A*74:26/A*74:27/A*74:28/A*74:29/A*74:30/A*74:33/A*74:35/A*74:37/A*74:38/A*74:40/A*74:41 | | DR1403 | G | DRB1*14:03:01G/DRB1*14:03:02 | | Cw10 | lg | C*03:02g/C*03:04g/C*03:06g/C*03:26g/C*03:28g/C*03:46g | diff --git a/tests/features/shortnulls.feature b/tests/features/shortnulls.feature index 4689a1e..51ed818 100644 --- a/tests/features/shortnulls.feature +++ b/tests/features/shortnulls.feature @@ -11,10 +11,10 @@ Feature: Short Nulls Then the reduced allele is found to be Examples: expression characters not propagated - | Allele | Level | Redux Allele | - | DRB4*01:03N | lgx | DRB4*01:01 | - | DRB4*01:03:01N | lgx | DRB4*01:01 | - | DRB5*01:08N | lgx | DRB5*01:02/DRB5*01:08 | + | Allele | Level | Redux Allele | + | DRB4*01:03N | lgx | DRB4*01:01 | + | DRB4*01:03:01N | lgx | DRB4*01:01 | + | DRB5*01:08N | lgx | DRB5*01:02 | Examples: expression characters propagated | Allele | Level | Redux Allele | diff --git a/tests/steps/redux_allele.py b/tests/steps/redux_allele.py index a8534ca..525dfd7 100644 --- a/tests/steps/redux_allele.py +++ b/tests/steps/redux_allele.py @@ -39,7 +39,7 @@ def step_impl(context, level): @when("reducing on the {level} level with ping") def step_impl(context, level): context.level = level - redux_allele = context.ard_ping.redux(context.allele, level) + redux_allele = context.ard.redux(context.allele, level) if not redux_allele: context.redux_allele = "X" else: From fba9222c04534fe868d9be41b82d362f56461c01 Mon Sep 17 00:00:00 2001 From: Pradeep Bashyal Date: Tue, 21 May 2024 14:11:46 -0500 Subject: [PATCH 07/10] Fix for Python 3.8 - `removesuffix()` not available on str --- pyard/ard.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyard/ard.py b/pyard/ard.py index 25d67b9..8d8904c 100644 --- a/pyard/ard.py +++ b/pyard/ard.py @@ -218,9 +218,9 @@ def _redux_allele( else: redux_allele = self._redux_allele(allele, redux_type, False) if redux_allele.endswith("g"): - no_suffix_allele = redux_allele.removesuffix("g") + no_suffix_allele = redux_allele[:-1] elif redux_allele.endswith("ARS"): - no_suffix_allele = redux_allele.removesuffix("ARS") + no_suffix_allele = redux_allele[:-3] else: no_suffix_allele = redux_allele if ( From a268b86d77c5427f9410a41a5035bff7c0aeb3d3 Mon Sep 17 00:00:00 2001 From: Pradeep Bashyal Date: Tue, 21 May 2024 14:36:56 -0500 Subject: [PATCH 08/10] Update README --- README.md | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 77ac692..5f6da79 100644 --- a/README.md +++ b/README.md @@ -85,11 +85,21 @@ Homebrew will notify you as new versions of `py-ard` are released. ### Install from source +Checkout the `py-ard` source code. + +```shell +git clone https://github.com/nmdp-bioinformatics/py-ard.git +cd py-ard +``` + +Create and activate virtual environment. Install the py-ard dependencies. + ```shell -python3 -m venv venv +make venv + source venv/bin/activate -python setup.py install +make install ``` See [Our Contribution Guide](CONTRIBUTING.rst) for open source contribution to `py-ard`. @@ -103,13 +113,16 @@ it'll throw an Invalid Exception, not silently return an empty result. #### Initialize `py-ard` -Import `pyard` package. +Import and initialize `pyard` package. +The default initialization is to use the latest version of IPD-IMGT/HLA database. ```python import pyard + +ard = pyard.init() ``` -Initialize `ARD` object with a version of IMGT HLA database +Initialize `py-ard` with a particular version of IPD/IMGT-HLA database. ```python import pyard @@ -144,13 +157,6 @@ As MAC data changes frequently, you can choose to refresh the MAC code for curre ard.refresh_mac_codes() ``` -The default initialization is to use the latest version of IPD-IMGT/HLA database. - -```python -import pyard - -ard = pyard.init() -``` You can check the current version of IPD-IMGT/HLA database. From 821862b3905f18978f206242ae89a127507436a3 Mon Sep 17 00:00:00 2001 From: Pradeep Bashyal Date: Tue, 21 May 2024 14:37:34 -0500 Subject: [PATCH 09/10] =?UTF-8?q?Bump=20version:=201.1.4=20=E2=86=92=201.2?= =?UTF-8?q?.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- api-spec.yaml | 2 +- pyard/__init__.py | 2 +- setup.cfg | 2 +- setup.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index ac091bb..ffb8feb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ LABEL MAINTAINER="Pradeep Bashyal" WORKDIR /app -ARG PY_ARD_VERSION=1.1.4 +ARG PY_ARD_VERSION=1.2.0 COPY requirements.txt /app RUN pip install --no-cache-dir --upgrade pip && \ diff --git a/api-spec.yaml b/api-spec.yaml index 31889bc..0b525d9 100644 --- a/api-spec.yaml +++ b/api-spec.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: ARD Reduction description: Reduce to ARD Level - version: "1.1.4" + version: "1.2.0" servers: - url: 'http://localhost:8080' tags: diff --git a/pyard/__init__.py b/pyard/__init__.py index 42cfb0b..84fc2ef 100644 --- a/pyard/__init__.py +++ b/pyard/__init__.py @@ -26,7 +26,7 @@ from .misc import get_imgt_db_versions as db_versions __author__ = """NMDP Bioinformatics""" -__version__ = "1.1.4" +__version__ = "1.2.0" def init( diff --git a/setup.cfg b/setup.cfg index 8213967..1a459e5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.1.4 +current_version = 1.2.0 commit = True tag = True diff --git a/setup.py b/setup.py index 3f0bf77..d39edd9 100644 --- a/setup.py +++ b/setup.py @@ -36,7 +36,7 @@ setup( name="py-ard", - version="1.1.4", + version="1.2.0", description="ARD reduction for HLA with Python", long_description=readme, long_description_content_type="text/markdown", From ed6d2cb86f45fd0aa9bfe6170c4a3fa34fabd724 Mon Sep 17 00:00:00 2001 From: Pradeep Bashyal Date: Tue, 21 May 2024 14:46:38 -0500 Subject: [PATCH 10/10] Add note for ping mode. --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5f6da79..6c67e38 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,11 @@ Swiss army knife of **HLA** Nomenclature **Note:** -Release `1.1.1` has extensive Serolgy related updates and affects Serology related data. Please rebuild the cache database if there's a missing Serology error. +- `ping` mode is default. When in `ping` mode, alleles that do not have a G group, their corresponding P group is used. + +- Release `1.1.1` has extensive Serolgy related updates and affects Serology related data. Please rebuild the cache database if there's a missing Serology error. ``` -pyard-import --re-install + pyard-import --re-install ``` Or set `py-ard` requirements to be `py-ard<=1.1.1` for your dependency.