From 00ab2a0ce9f34e453a68f3152f462c236f1938da Mon Sep 17 00:00:00 2001 From: pbashyal-nmdp Date: Tue, 5 Dec 2023 14:55:46 -0600 Subject: [PATCH 1/8] Create a new column in serology mapping table that has the lgx version of the allele list `lgx_allele_list` --- pyard/ard.py | 8 ++++++++ pyard/data_repository.py | 31 +++++++++++++++++++++---------- pyard/db.py | 33 +++++++++++++++++++++++---------- 3 files changed, 52 insertions(+), 20 deletions(-) diff --git a/pyard/ard.py b/pyard/ard.py index b7953ec..197cf0e 100644 --- a/pyard/ard.py +++ b/pyard/ard.py @@ -123,6 +123,9 @@ def __init__( dr.generate_serology_mapping( self.db_connection, self.serology_mapping, imgt_version ) + dr.generate_serology_mapping( + self.db_connection, imgt_version, self.serology_mapping, self._redux_allele + ) # Load V2 to V3 mappings dr.generate_v2_to_v3_mapping(self.db_connection, imgt_version) # Save IMGT database version @@ -271,6 +274,11 @@ def _redux_allele( return self._redux_allele(allele, "lgx") elif redux_type == "S": # find serology equivalent in serology_mapping + if is_2_field_allele(allele): + serology_mapping = db.find_serology_for_allele( + self.db_connection, + allele, + ) serology_mapping = db.find_serology_for_allele(self.db_connection, allele) serology_set = set() for serology, allele_list in serology_mapping.items(): diff --git a/pyard/data_repository.py b/pyard/data_repository.py index 8df94d7..e915685 100644 --- a/pyard/data_repository.py +++ b/pyard/data_repository.py @@ -356,7 +356,7 @@ def to_serological_name(locus_name: str): def generate_serology_mapping( - db_connection: sqlite3.Connection, serology_mapping, imgt_version + db_connection: sqlite3.Connection, imgt_version, serology_mapping, redux_function ): if not db.table_exists(db_connection, "serology_mapping"): df_sero = load_serology_mappings(imgt_version) @@ -390,10 +390,12 @@ def generate_serology_mapping( sero_mapping_combined["Sero"] = sero_mapping_combined["Sero"].apply( to_serological_name ) - + sero_mapping_combined["lgx"] = sero_mapping_combined["Allele"].apply( + lambda allele: redux_function(allele, "lgx") + ) sero_mapping = ( sero_mapping_combined.groupby("Sero") - .apply(lambda x: "/".join(sorted(x["Allele"]))) + .apply(lambda x: (set(x["Allele"]), set(x["lgx"]))) .to_dict() ) @@ -402,8 +404,9 @@ def generate_serology_mapping( for broad, splits in serology_mapping.broad_splits_map.items(): for split in splits: try: - sero_mapping[broad] = "/".join( - [sero_mapping[broad], sero_mapping[split]] + sero_mapping[broad] = ( + sero_mapping[broad][0].union(sero_mapping[split][0]), + sero_mapping[broad][1].union(sero_mapping[split][1]), ) except KeyError: if split in sero_mapping: @@ -411,11 +414,19 @@ def generate_serology_mapping( # re-sort allele lists into smartsort order for sero in sero_mapping.keys(): - sero_mapping[sero] = "/".join( - sorted( - sero_mapping[sero].split("/"), - key=functools.cmp_to_key(smart_sort_comparator), - ) + sero_mapping[sero] = ( + "/".join( + sorted( + sero_mapping[sero][0], + key=functools.cmp_to_key(smart_sort_comparator), + ) + ), + "/".join( + sorted( + sero_mapping[sero][1], + key=functools.cmp_to_key(smart_sort_comparator), + ), + ), ) db.save_serology_mappings(db_connection, sero_mapping) diff --git a/pyard/db.py b/pyard/db.py index cd7f33f..8e393ea 100644 --- a/pyard/db.py +++ b/pyard/db.py @@ -393,18 +393,17 @@ def similar_mac(connection: sqlite3.Connection, mac_prefix: str) -> Set[str]: def find_serology_for_allele( - connection: sqlite3.Connection, allele_name: str + connection: sqlite3.Connection, allele_name: str, column: str = "allele_list" ) -> Dict[str, str]: """ Find similar alleles starting with the provided allele_name. :param connection: db connection of type sqlite.Connection :param allele_name: Allele name to use as a prefix to find similar alleles + :param column: Column to look for allele :return: list of similar alleles """ - query = ( - "SELECT serology, allele_list FROM serology_mapping WHERE allele_list LIKE ?" - ) + query = f"SELECT serology, {column} FROM serology_mapping WHERE {column} LIKE ?" cursor = connection.execute(query, (f"%{allele_name}%",)) results = cursor.fetchall() # fetchall() returns a list of tuples of results @@ -574,12 +573,26 @@ def save_mac_codes(db_connection, mac, mac_table_name): def save_serology_mappings(db_connection, sero_mapping): # Save the serology mapping to db - save_dict( - db_connection, - table_name="serology_mapping", - dictionary=sero_mapping, - columns=("serology", "allele_list"), - ) + cursor = db_connection.cursor() + # Drop the table first + cursor.execute("DROP TABLE IF EXISTS serology_mapping") + # Create table + create_table_sql = f"""CREATE TABLE serology_mapping ( + serology TEXT PRIMARY KEY, + allele_list TEXT NOT NULL, + lgx_allele_list TEXT NOT NULL + )""" + cursor.execute(create_table_sql) + + rows = ((k, v[0], v[1]) for k, v in sero_mapping.items()) + + # insert + cursor.executemany(f"INSERT INTO serology_mapping VALUES (?, ?, ?)", rows) + + # commit transaction - writes to the db + db_connection.commit() + # close the cursor + cursor.close() def load_v2_v3_mappings(db_connection): From fd04a84872ef703d22a7b81b90315337ede3cc0b Mon Sep 17 00:00:00 2001 From: pbashyal-nmdp Date: Wed, 14 Feb 2024 16:16:34 -0600 Subject: [PATCH 2/8] If 2 field use lgx_allele_list --- pyard/ard.py | 9 ++++++--- pyard/db.py | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pyard/ard.py b/pyard/ard.py index 197cf0e..3b17dbc 100644 --- a/pyard/ard.py +++ b/pyard/ard.py @@ -275,11 +275,14 @@ def _redux_allele( elif redux_type == "S": # find serology equivalent in serology_mapping if is_2_field_allele(allele): + allele = self._redux_allele(allele, "lgx") serology_mapping = db.find_serology_for_allele( - self.db_connection, - allele, + self.db_connection, allele, "lgx_allele_list" + ) + else: + serology_mapping = db.find_serology_for_allele( + self.db_connection, allele ) - serology_mapping = db.find_serology_for_allele(self.db_connection, allele) serology_set = set() for serology, allele_list in serology_mapping.items(): if allele in allele_list.split("/"): diff --git a/pyard/db.py b/pyard/db.py index 8e393ea..10509b1 100644 --- a/pyard/db.py +++ b/pyard/db.py @@ -400,7 +400,7 @@ def find_serology_for_allele( :param connection: db connection of type sqlite.Connection :param allele_name: Allele name to use as a prefix to find similar alleles - :param column: Column to look for allele + :param column: Column to look for allele, "allele_list" or "lgx_allele_list" :return: list of similar alleles """ query = f"SELECT serology, {column} FROM serology_mapping WHERE {column} LIKE ?" From a563ef1c44115d97977fc33eea5738e9cd7f1f47 Mon Sep 17 00:00:00 2001 From: pbashyal-nmdp Date: Tue, 13 Feb 2024 10:42:30 -0600 Subject: [PATCH 3/8] Serology Associated Antigens - load Associated Antigens as well as broad/splits into db - refactor broad_splits and associated antigens to SerologyMapping class - add scenarios for Associated Antigens --- pyard/ard.py | 3 --- pyard/data_repository.py | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/pyard/ard.py b/pyard/ard.py index 3b17dbc..adb812d 100644 --- a/pyard/ard.py +++ b/pyard/ard.py @@ -120,9 +120,6 @@ def __init__( broad_splits_mapping, associated_mapping ) - dr.generate_serology_mapping( - self.db_connection, self.serology_mapping, imgt_version - ) dr.generate_serology_mapping( self.db_connection, imgt_version, self.serology_mapping, self._redux_allele ) diff --git a/pyard/data_repository.py b/pyard/data_repository.py index e915685..2d5e97f 100644 --- a/pyard/data_repository.py +++ b/pyard/data_repository.py @@ -177,7 +177,7 @@ def generate_ard_mapping(db_connection: sqlite3.Connection, imgt_version) -> ARS def generate_alleles_and_xx_codes_and_who( - db_connection: sqlite3.Connection, imgt_version, ars_mappings + db_connection: sqlite3.Connection, imgt_version, ars_mappings ): if db.tables_exist(db_connection, code_mapping_tables + allele_tables): return db.load_code_mappings(db_connection) @@ -319,7 +319,7 @@ def generate_short_nulls(db_connection, who_group): def generate_mac_codes( - db_connection: sqlite3.Connection, refresh_mac: bool = False, load_mac: bool = True + db_connection: sqlite3.Connection, refresh_mac: bool = False, load_mac: bool = True ): """ :param db_connection: Database connection to the sqlite database From 6c340b8deb70815bff046fef75114c05f252c972 Mon Sep 17 00:00:00 2001 From: pbashyal-nmdp Date: Tue, 5 Dec 2023 14:55:46 -0600 Subject: [PATCH 4/8] Create a new column in serology mapping table that has the lgx version of the allele list `lgx_allele_list` --- pyard/ard.py | 1 + pyard/drbx_tests.csv | 31 +++++++ pyard/serology.py | 19 ++++ pyard/valid_serology.json | 181 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 232 insertions(+) create mode 100644 pyard/drbx_tests.csv create mode 100644 pyard/serology.py create mode 100644 pyard/valid_serology.json diff --git a/pyard/ard.py b/pyard/ard.py index adb812d..2ce8331 100644 --- a/pyard/ard.py +++ b/pyard/ard.py @@ -123,6 +123,7 @@ def __init__( dr.generate_serology_mapping( self.db_connection, imgt_version, self.serology_mapping, self._redux_allele ) + # Load V2 to V3 mappings dr.generate_v2_to_v3_mapping(self.db_connection, imgt_version) # Save IMGT database version diff --git a/pyard/drbx_tests.csv b/pyard/drbx_tests.csv new file mode 100644 index 0000000..2e51215 --- /dev/null +++ b/pyard/drbx_tests.csv @@ -0,0 +1,31 @@ +drb1,drb3,drb4,drb5 +HLA-DRB1*03:01+DRB1*04:01,DRB3*01:01,DRB4*01:03, +HLA-DRB1*03:01+DRB1*04:01,DRB3*01:01+DRB3*02:01,DRB4*01:03, +HLA-DRB1*03:01+DRB1*04:01,DRB3*01:01,DRB4*01:03+DRB4*01:05, +HLA-DRB1*03:01+DRB1*04:01,DRB3*01:01,DRB4*01:03,DRB5*01:05 +HLA-DRB1*03:01+DRB1*04:01,,DRB4*01:03, +HLA-DRB1*03:01+DRB1*04:01,DRB3*01:03,, +HLA-DRB1*01:01+DRB1*08:01,,, +HLA-DRB1*01:01+DRB1*08:01,DRB3*01:01,, +HLA-DRB1*01:01+DRB1*08:01,,DRB4*01:01, +HLA-DRB1*01:01+DRB1*08:01,,,DRB5*01:01 +HLA-DRB1*01:01+DRB1*03:01,DRB3*01:01,DRB4*01:03,, +HLA-DRB1*01:01+DRB1*03:01,DRB3*01:01,,DRB5*01:03, +HLA-DRB1*01:01+DRB1*03:01,,,, +HLA-DRB1*01:01+DRB1*04:01,,DRB4*01:01+DRB4*01:03, +HLA-DRB1*01:01+DRB1*04:01,DRB3*01:01,DRB4*01:03, +HLA-DRB1*01:01+DRB1*04:01,,DRB4*01:01,DRB5*01:03 +HLA-DRB1*01:01+DRB1*04:01,,,, +HLA-DRB1*03:01+DRB1*13:01,DRB3*01:01,, +HLA-DRB1*03:01+DRB1*13:01,DRB3*01:01,DRB4*01:03, +HLA-DRB1*03:01+DRB1*13:01,DRB3*01:01,,DRB5*01:03 +HLA-DRB1*03:01+DRB1*13:01,,DRB4*01:01,DRB5*01:03 +HLA-DRB1*04:01+DRB1*09:01,DRB3*01:01,, +HLA-DRB1*04:01+DRB1*09:01,DRB3*01:01,DRB4*01:03, +HLA-DRB1*04:01+DRB1*09:01,DRB3*01:01,,DRB5*01:03 +HLA-DRB1*15:01+DRB1*16:01,,DRB4*01:01,DRB5*01:03 +HLA-DRB1*15:01+DRB1*16:01,DRB3*01:01,, +HLA-DRB1*15:01+DRB1*16:01,DRB3*01:01,DRB4*01:03, +HLA-DRB1*15:01+DRB1*16:01,DRB3*01:01,,DRB5*01:03 +HLA-DRB1*15:01+DRB1*16:01,,DRB4*01:01,DRB5*01:03 +HLA-DRB1*15:01+DRB1*16:01,,,DRB5*01:03 diff --git a/pyard/serology.py b/pyard/serology.py new file mode 100644 index 0000000..7db6918 --- /dev/null +++ b/pyard/serology.py @@ -0,0 +1,19 @@ +valid_serology = { + 'A': ['A1', 'A2', 'A203', 'A210', 'A3', 'A9', 'A10', 'A11', 'A19', 'A23', 'A24', 'A2403', 'A25', 'A26', 'A28', + 'A29', + 'A30', 'A31', 'A32', 'A33', 'A34', 'A36', 'A43', 'A66', 'A68', 'A69', 'A74', 'A80'], + 'B': ['B5', 'B7', 'B703', 'B8', 'B12', 'B13', 'B14', 'B15', 'B16', 'B17', 'B18', 'B21', 'B22', 'B27', 'B2708', + 'B35', + 'B37', 'B38', 'B39', 'B3901', 'B3902', 'B40', 'B4005', 'B41', 'B42', 'B44', 'B45', 'B46', 'B47', 'B48', 'B49', + 'B50', 'B51', 'B5102', 'B5103', 'B52', 'B53', 'B54', 'B55', 'B56', 'B57', 'B58', 'B59', 'B60', 'B61', 'B62', + 'B63', 'B64', 'B65', 'B67', 'B70', 'B71', 'B72', 'B73', 'B75', 'B76', 'B77', 'B78', 'B81', 'B82', 'Bw4', + 'Bw6'], + 'C': ['Cw1', 'Cw2', 'Cw3', 'Cw4', 'Cw5', 'Cw6', 'Cw7', 'Cw8', 'Cw9', 'Cw10'], + 'D': ['Dw1', 'Dw2', 'Dw3', 'Dw4', 'Dw5', 'Dw6', 'Dw7', 'Dw8', 'Dw9', 'Dw10', 'Dw11', 'Dw12', 'Dw13', 'Dw14', 'Dw15', + 'Dw16', 'Dw17', 'Dw18', 'Dw19', 'Dw20', 'Dw21', 'Dw22', 'Dw23', 'Dw24', 'Dw25', 'Dw26'], + 'DR': ['DR1', 'DR103', 'DR2', 'DR3', 'DR4', 'DR5', 'DR6', 'DR7', 'DR8', 'DR9', 'DR10', 'DR11', 'DR12', 'DR13', + 'DR14', + 'DR1403', 'DR1404', 'DR15', 'DR16', 'DR17', 'DR18', 'DR51', 'DR52', 'DR53'], + 'DQ': ['DQ1', 'DQ2', 'DQ3', 'DQ4', 'DQ5', 'DQ6', 'DQ7', 'DQ8', 'DQ9'], + 'DP': ['DPw1', 'DPw2', 'DPw3', 'DPw4', 'DPw5', 'DPw6'] +} diff --git a/pyard/valid_serology.json b/pyard/valid_serology.json new file mode 100644 index 0000000..058e930 --- /dev/null +++ b/pyard/valid_serology.json @@ -0,0 +1,181 @@ +{ + "A": [ + "A1", + "A2", + "A203", + "A210", + "A3", + "A9", + "A10", + "A11", + "A19", + "A23", + "A24", + "A2403", + "A25", + "A26", + "A28", + "A29", + "A30", + "A31", + "A32", + "A33", + "A34", + "A36", + "A43", + "A66", + "A68", + "A69", + "A74", + "A80" + ], + "B": [ + "B5", + "B7", + "B703", + "B8", + "B12", + "B13", + "B14", + "B15", + "B16", + "B17", + "B18", + "B21", + "B22", + "B27", + "B2708", + "B35", + "B37", + "B38", + "B39", + "B3901", + "B3902", + "B40", + "B4005", + "B41", + "B42", + "B44", + "B45", + "B46", + "B47", + "B48", + "B49", + "B50", + "B51", + "B5102", + "B5103", + "B52", + "B53", + "B54", + "B55", + "B56", + "B57", + "B58", + "B59", + "B60", + "B61", + "B62", + "B63", + "B64", + "B65", + "B67", + "B70", + "B71", + "B72", + "B73", + "B75", + "B76", + "B77", + "B78", + "B81", + "B82", + "Bw4", + "Bw6" + ], + "C": [ + "Cw1", + "Cw2", + "Cw3", + "Cw4", + "Cw5", + "Cw6", + "Cw7", + "Cw8", + "Cw9", + "Cw10" + ], + "D": [ + "Dw1", + "Dw2", + "Dw3", + "Dw4", + "Dw5", + "Dw6", + "Dw7", + "Dw8", + "Dw9", + "Dw10", + "Dw11", + "Dw12", + "Dw13", + "Dw14", + "Dw15", + "Dw16", + "Dw17", + "Dw18", + "Dw19", + "Dw20", + "Dw21", + "Dw22", + "Dw23", + "Dw24", + "Dw25", + "Dw26" + ], + "DR": [ + "DR1", + "DR103", + "DR2", + "DR3", + "DR4", + "DR5", + "DR6", + "DR7", + "DR8", + "DR9", + "DR10", + "DR11", + "DR12", + "DR13", + "DR14", + "DR1403", + "DR1404", + "DR15", + "DR16", + "DR17", + "DR18", + "DR51", + "DR52", + "DR53" + ], + "DQ": [ + "DQ1", + "DQ2", + "DQ3", + "DQ4", + "DQ5", + "DQ6", + "DQ7", + "DQ8", + "DQ9" + ], + "DP": [ + "DPw1", + "DPw2", + "DPw3", + "DPw4", + "DPw5", + "DPw6" + ] +} \ No newline at end of file From bfe2c06a86c53be3083b2e0d9826a15e938b91bd Mon Sep 17 00:00:00 2001 From: pbashyal-nmdp Date: Fri, 16 Feb 2024 16:53:00 -0600 Subject: [PATCH 5/8] Add tests for ard level serology mapping --- tests/features/serology_redux.feature | 8 ++++++++ tests/steps/redux_allele.py | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/features/serology_redux.feature b/tests/features/serology_redux.feature index 66af7e2..6dbb665 100644 --- a/tests/features/serology_redux.feature +++ b/tests/features/serology_redux.feature @@ -29,3 +29,11 @@ Feature: Serology Reduction Examples: Skip Loci that don't have Serology mappings | Allele | Level | Redux Serology | | A*01:01+A*01:01^B*08:ASXJP+B*07:02^C*02:02+C*07:HTGM^DPB1*28:01:01G+DPB1*296:01 | S | A1+A1^B7+B8^Cw2+Cw7 | + + Examples: 2 field Serology Reduction uses lgx version of serology mapping + + | Allele | Level | Redux Serology | + | DRB1*07:34 | S | DR7 | + | DRB1*07:34:01 | S | DR7 | + | DRB1*07:34:02 | S | DR7 | + | DRB4*01:03N | S | X | diff --git a/tests/steps/redux_allele.py b/tests/steps/redux_allele.py index 9236e44..10d6a17 100644 --- a/tests/steps/redux_allele.py +++ b/tests/steps/redux_allele.py @@ -39,7 +39,11 @@ def step_impl(context, level): @when("reducing on the {level} level with ping") def step_impl(context, level): context.level = level - context.redux_allele = context.ard_ping.redux(context.allele, level) + redux_allele = context.ard_ping.redux(context.allele, level) + if not redux_allele: + context.redux_allele = "X" + else: + context.redux_allele = redux_allele @when("reducing on the {level} level with ARS suffix enabled") From d976cfc29cfff9b12796aa1df21bd9b3aeb9df51 Mon Sep 17 00:00:00 2001 From: pbashyal-nmdp Date: Fri, 16 Feb 2024 16:53:30 -0600 Subject: [PATCH 6/8] =?UTF-8?q?Bump=20version:=201.1.0=20=E2=86=92=201.1.1?= 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 1ddede0..1eb81f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ LABEL MAINTAINER="Pradeep Bashyal" WORKDIR /app -ARG PY_ARD_VERSION=1.1.0 +ARG PY_ARD_VERSION=1.1.1 COPY requirements.txt /app RUN pip install --no-cache-dir --upgrade pip && \ diff --git a/api-spec.yaml b/api-spec.yaml index 62becb7..efe216e 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.0" + version: "1.1.1" servers: - url: 'http://localhost:8080' tags: diff --git a/pyard/__init__.py b/pyard/__init__.py index 6e0591d..8a3cec8 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.0" +__version__ = "1.1.1" def init( diff --git a/setup.cfg b/setup.cfg index d1c5d9b..75a585c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.1.0 +current_version = 1.1.1 commit = True tag = True diff --git a/setup.py b/setup.py index 83ec1d8..0716d0f 100644 --- a/setup.py +++ b/setup.py @@ -36,7 +36,7 @@ setup( name="py-ard", - version="1.1.0", + version="1.1.1", description="ARD reduction for HLA with Python", long_description=readme, long_description_content_type="text/markdown", From d9d06ce51e9f0b91db184b2d2ce26eb255615a39 Mon Sep 17 00:00:00 2001 From: pbashyal-nmdp Date: Tue, 20 Feb 2024 12:52:58 -0600 Subject: [PATCH 7/8] Remove extra files --- pyard/drbx_tests.csv | 31 ------- pyard/serology.py | 19 ---- pyard/valid_serology.json | 181 -------------------------------------- 3 files changed, 231 deletions(-) delete mode 100644 pyard/drbx_tests.csv delete mode 100644 pyard/serology.py delete mode 100644 pyard/valid_serology.json diff --git a/pyard/drbx_tests.csv b/pyard/drbx_tests.csv deleted file mode 100644 index 2e51215..0000000 --- a/pyard/drbx_tests.csv +++ /dev/null @@ -1,31 +0,0 @@ -drb1,drb3,drb4,drb5 -HLA-DRB1*03:01+DRB1*04:01,DRB3*01:01,DRB4*01:03, -HLA-DRB1*03:01+DRB1*04:01,DRB3*01:01+DRB3*02:01,DRB4*01:03, -HLA-DRB1*03:01+DRB1*04:01,DRB3*01:01,DRB4*01:03+DRB4*01:05, -HLA-DRB1*03:01+DRB1*04:01,DRB3*01:01,DRB4*01:03,DRB5*01:05 -HLA-DRB1*03:01+DRB1*04:01,,DRB4*01:03, -HLA-DRB1*03:01+DRB1*04:01,DRB3*01:03,, -HLA-DRB1*01:01+DRB1*08:01,,, -HLA-DRB1*01:01+DRB1*08:01,DRB3*01:01,, -HLA-DRB1*01:01+DRB1*08:01,,DRB4*01:01, -HLA-DRB1*01:01+DRB1*08:01,,,DRB5*01:01 -HLA-DRB1*01:01+DRB1*03:01,DRB3*01:01,DRB4*01:03,, -HLA-DRB1*01:01+DRB1*03:01,DRB3*01:01,,DRB5*01:03, -HLA-DRB1*01:01+DRB1*03:01,,,, -HLA-DRB1*01:01+DRB1*04:01,,DRB4*01:01+DRB4*01:03, -HLA-DRB1*01:01+DRB1*04:01,DRB3*01:01,DRB4*01:03, -HLA-DRB1*01:01+DRB1*04:01,,DRB4*01:01,DRB5*01:03 -HLA-DRB1*01:01+DRB1*04:01,,,, -HLA-DRB1*03:01+DRB1*13:01,DRB3*01:01,, -HLA-DRB1*03:01+DRB1*13:01,DRB3*01:01,DRB4*01:03, -HLA-DRB1*03:01+DRB1*13:01,DRB3*01:01,,DRB5*01:03 -HLA-DRB1*03:01+DRB1*13:01,,DRB4*01:01,DRB5*01:03 -HLA-DRB1*04:01+DRB1*09:01,DRB3*01:01,, -HLA-DRB1*04:01+DRB1*09:01,DRB3*01:01,DRB4*01:03, -HLA-DRB1*04:01+DRB1*09:01,DRB3*01:01,,DRB5*01:03 -HLA-DRB1*15:01+DRB1*16:01,,DRB4*01:01,DRB5*01:03 -HLA-DRB1*15:01+DRB1*16:01,DRB3*01:01,, -HLA-DRB1*15:01+DRB1*16:01,DRB3*01:01,DRB4*01:03, -HLA-DRB1*15:01+DRB1*16:01,DRB3*01:01,,DRB5*01:03 -HLA-DRB1*15:01+DRB1*16:01,,DRB4*01:01,DRB5*01:03 -HLA-DRB1*15:01+DRB1*16:01,,,DRB5*01:03 diff --git a/pyard/serology.py b/pyard/serology.py deleted file mode 100644 index 7db6918..0000000 --- a/pyard/serology.py +++ /dev/null @@ -1,19 +0,0 @@ -valid_serology = { - 'A': ['A1', 'A2', 'A203', 'A210', 'A3', 'A9', 'A10', 'A11', 'A19', 'A23', 'A24', 'A2403', 'A25', 'A26', 'A28', - 'A29', - 'A30', 'A31', 'A32', 'A33', 'A34', 'A36', 'A43', 'A66', 'A68', 'A69', 'A74', 'A80'], - 'B': ['B5', 'B7', 'B703', 'B8', 'B12', 'B13', 'B14', 'B15', 'B16', 'B17', 'B18', 'B21', 'B22', 'B27', 'B2708', - 'B35', - 'B37', 'B38', 'B39', 'B3901', 'B3902', 'B40', 'B4005', 'B41', 'B42', 'B44', 'B45', 'B46', 'B47', 'B48', 'B49', - 'B50', 'B51', 'B5102', 'B5103', 'B52', 'B53', 'B54', 'B55', 'B56', 'B57', 'B58', 'B59', 'B60', 'B61', 'B62', - 'B63', 'B64', 'B65', 'B67', 'B70', 'B71', 'B72', 'B73', 'B75', 'B76', 'B77', 'B78', 'B81', 'B82', 'Bw4', - 'Bw6'], - 'C': ['Cw1', 'Cw2', 'Cw3', 'Cw4', 'Cw5', 'Cw6', 'Cw7', 'Cw8', 'Cw9', 'Cw10'], - 'D': ['Dw1', 'Dw2', 'Dw3', 'Dw4', 'Dw5', 'Dw6', 'Dw7', 'Dw8', 'Dw9', 'Dw10', 'Dw11', 'Dw12', 'Dw13', 'Dw14', 'Dw15', - 'Dw16', 'Dw17', 'Dw18', 'Dw19', 'Dw20', 'Dw21', 'Dw22', 'Dw23', 'Dw24', 'Dw25', 'Dw26'], - 'DR': ['DR1', 'DR103', 'DR2', 'DR3', 'DR4', 'DR5', 'DR6', 'DR7', 'DR8', 'DR9', 'DR10', 'DR11', 'DR12', 'DR13', - 'DR14', - 'DR1403', 'DR1404', 'DR15', 'DR16', 'DR17', 'DR18', 'DR51', 'DR52', 'DR53'], - 'DQ': ['DQ1', 'DQ2', 'DQ3', 'DQ4', 'DQ5', 'DQ6', 'DQ7', 'DQ8', 'DQ9'], - 'DP': ['DPw1', 'DPw2', 'DPw3', 'DPw4', 'DPw5', 'DPw6'] -} diff --git a/pyard/valid_serology.json b/pyard/valid_serology.json deleted file mode 100644 index 058e930..0000000 --- a/pyard/valid_serology.json +++ /dev/null @@ -1,181 +0,0 @@ -{ - "A": [ - "A1", - "A2", - "A203", - "A210", - "A3", - "A9", - "A10", - "A11", - "A19", - "A23", - "A24", - "A2403", - "A25", - "A26", - "A28", - "A29", - "A30", - "A31", - "A32", - "A33", - "A34", - "A36", - "A43", - "A66", - "A68", - "A69", - "A74", - "A80" - ], - "B": [ - "B5", - "B7", - "B703", - "B8", - "B12", - "B13", - "B14", - "B15", - "B16", - "B17", - "B18", - "B21", - "B22", - "B27", - "B2708", - "B35", - "B37", - "B38", - "B39", - "B3901", - "B3902", - "B40", - "B4005", - "B41", - "B42", - "B44", - "B45", - "B46", - "B47", - "B48", - "B49", - "B50", - "B51", - "B5102", - "B5103", - "B52", - "B53", - "B54", - "B55", - "B56", - "B57", - "B58", - "B59", - "B60", - "B61", - "B62", - "B63", - "B64", - "B65", - "B67", - "B70", - "B71", - "B72", - "B73", - "B75", - "B76", - "B77", - "B78", - "B81", - "B82", - "Bw4", - "Bw6" - ], - "C": [ - "Cw1", - "Cw2", - "Cw3", - "Cw4", - "Cw5", - "Cw6", - "Cw7", - "Cw8", - "Cw9", - "Cw10" - ], - "D": [ - "Dw1", - "Dw2", - "Dw3", - "Dw4", - "Dw5", - "Dw6", - "Dw7", - "Dw8", - "Dw9", - "Dw10", - "Dw11", - "Dw12", - "Dw13", - "Dw14", - "Dw15", - "Dw16", - "Dw17", - "Dw18", - "Dw19", - "Dw20", - "Dw21", - "Dw22", - "Dw23", - "Dw24", - "Dw25", - "Dw26" - ], - "DR": [ - "DR1", - "DR103", - "DR2", - "DR3", - "DR4", - "DR5", - "DR6", - "DR7", - "DR8", - "DR9", - "DR10", - "DR11", - "DR12", - "DR13", - "DR14", - "DR1403", - "DR1404", - "DR15", - "DR16", - "DR17", - "DR18", - "DR51", - "DR52", - "DR53" - ], - "DQ": [ - "DQ1", - "DQ2", - "DQ3", - "DQ4", - "DQ5", - "DQ6", - "DQ7", - "DQ8", - "DQ9" - ], - "DP": [ - "DPw1", - "DPw2", - "DPw3", - "DPw4", - "DPw5", - "DPw6" - ] -} \ No newline at end of file From ab99745c72acbbeaac06e48b1ebb08e326d9d27b Mon Sep 17 00:00:00 2001 From: pbashyal-nmdp Date: Tue, 20 Feb 2024 13:19:26 -0600 Subject: [PATCH 8/8] Formatted with black --- pyard/data_repository.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyard/data_repository.py b/pyard/data_repository.py index 2d5e97f..e915685 100644 --- a/pyard/data_repository.py +++ b/pyard/data_repository.py @@ -177,7 +177,7 @@ def generate_ard_mapping(db_connection: sqlite3.Connection, imgt_version) -> ARS def generate_alleles_and_xx_codes_and_who( - db_connection: sqlite3.Connection, imgt_version, ars_mappings + db_connection: sqlite3.Connection, imgt_version, ars_mappings ): if db.tables_exist(db_connection, code_mapping_tables + allele_tables): return db.load_code_mappings(db_connection) @@ -319,7 +319,7 @@ def generate_short_nulls(db_connection, who_group): def generate_mac_codes( - db_connection: sqlite3.Connection, refresh_mac: bool = False, load_mac: bool = True + db_connection: sqlite3.Connection, refresh_mac: bool = False, load_mac: bool = True ): """ :param db_connection: Database connection to the sqlite database