From e892e6468556138d8de6164c775f6a8fe3c55d07 Mon Sep 17 00:00:00 2001 From: Marcus Kinsella Date: Fri, 6 Nov 2020 09:27:49 -0800 Subject: [PATCH] Convert HGNC ids to their symbol (#1972) There are entries in some var indexes like HGNC:18790. We'd like to convert that to its symbol, NSG1. --- server/converters/schema/gene_symbol.py | 3 +++ server/test/unit/converters/schema/test_gene_symbol.py | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/server/converters/schema/gene_symbol.py b/server/converters/schema/gene_symbol.py index 00dd386c..2d0de5a7 100644 --- a/server/converters/schema/gene_symbol.py +++ b/server/converters/schema/gene_symbol.py @@ -109,6 +109,9 @@ class HGNCSymbolChecker: if record[field] is not np.nan: for symbol in record[field].split("|"): yield format_symbol(symbol)[0] + # Sometimes something like HGNC:1234 appears in datasets, which we + # want to fix as well. + yield record["hgnc_id"] hgnc_records = pd.read_csv(hgnc_dataset_path, sep="\t", header=0, low_memory=False).to_dict("records") diff --git a/server/test/unit/converters/schema/test_gene_symbol.py b/server/test/unit/converters/schema/test_gene_symbol.py index 1e91d0a0..dceca312 100644 --- a/server/test/unit/converters/schema/test_gene_symbol.py +++ b/server/test/unit/converters/schema/test_gene_symbol.py @@ -41,6 +41,11 @@ class TestHGNCSymbolChecker(unittest.TestCase): self.assertEqual(self.hgnc_checker.upgrade_symbol("NOTASYMBOL"), "NOTASYMBOL") self.assertEqual(self.hgnc_checker.upgrade_symbol("notasymbol"), "notasymbol") + # Upgrade HGNC ids unless you can't find it + self.assertEqual(self.hgnc_checker.upgrade_symbol("HGNC:286"), "ADRB2") + self.assertEqual(self.hgnc_checker.upgrade_symbol("HGNC:4812"), "HAP1") + self.assertEqual(self.hgnc_checker.upgrade_symbol("HGNC:123456"), "HGNC:123456") + def test_check_symbol(self): self.assertEqual(self.hgnc_checker.check_symbol("SEPT1"), gene_symbol.SymbolStatus.UPGRADABLE) self.assertEqual(self.hgnc_checker.check_symbol("DIFF6"), gene_symbol.SymbolStatus.AMBIGUOUS)