Repository: biopragmatics/bioregistry

Issue:
EC should be the primary prefix for EC, not eccode
Everyone used `EC` until id.org unilaterally decided it was `eccode`, which nobody used. Unfortunately bioregistry inherited this from id.org and did not use the GO registry which reflected actual use

We should reverse this decision, specifically

1. Make `EC` primary
2. Make the preferred casing be `EC` not `ec`
3. Keep `eccode` as a deprecated synonym

Evidence for `EC` being more widespread:

 * https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=%22eccode%3A3.1.1.1%22&btnG=. **0 results**
 * https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=%22EC%3A3.1.1.1%22&btnG= **8k results** albeit most without an explicit `:`

The following databases all use `EC`

* PubChem: https://pubchem.ncbi.nlm.nih.gov/protein/EC:3.1.1.1
* GO
* Alliance of Genome Resources
* Expasy https://enzyme.expasy.org/EC/3.1.1.1 
* KEGG https://www.genome.jp/dbget-bin/www_bget?ec:3.1.1.1
* RHEA https://www.rhea-db.org/rhea/?query=EC:2.2.1.6
* biolink
* any everyone else

(I am not sure I have time to do make tickets for all instances of this but EC is one of the more egregious ones. I could make a mega-ticket if it helps)

Hints from issue comments:
@cthoyt: I have no opinion on this either way. Compared to the dashes discussion, I don’t think there is a ton of community disagreement on this, and there’s a lower impact on anyone who is using Bioregistry code to keep their data standardized. I’d give it a plus 1@bgyori: I think this is a good idea, at least in principle. If we proceed with this, a few tests, benchmarks and documentation sections will also have to be updated where EC/eccode is referenced: https://github.com/search?q=repo%3Abiopragmatics%2Fbioregistry%20eccode&type=code. It also appears in various ways in other repos like https://github.com/search?q=eccode%20repo%3Abiopragmatics%2Fpyobo%20&type=code where the current Bioregistry standard prefix is assumed.@cthoyt: Closed in #1413, see https://bioregistry.io/ec.

@cmungall please feel free to propose as many specific issues as you'd like for other prefix cleanup. This would be nicer and easier to track progress than a mega-issue (though we could also have an "epic" issue to group them if this is helpful for discussion)

Solution patch:
diff --git a/README.md b/README.md
index 52ffbefd7..eb3ca0214 100644
--- a/README.md
+++ b/README.md
@@ -169,8 +169,8 @@ assert 'ncbitaxon' == normalize_prefix('taxonomy')
 assert 'pubchem.compound' == normalize_prefix('pubchem')
 
 # This works for prefixes that are often written many ways, like:
-assert 'eccode' == normalize_prefix('ec-code')
-assert 'eccode' == normalize_prefix('EC_CODE')
+assert 'ec' == normalize_prefix('ec-code')
+assert 'ec' == normalize_prefix('EC_CODE')
 
 # If a prefix is not registered, it gives back `None`
 assert normalize_prefix('not a real key') is None
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md
index 7c95afeb9..c7f775328 100644
--- a/docs/CONTRIBUTING.md
+++ b/docs/CONTRIBUTING.md
@@ -70,8 +70,8 @@ that's required to go with a given prefix.
 Unfortunately, these requirements can not be applied retroactively and can not
 be trivially applied to automatically imported prefixes. In some cases,
 historical prefixes can be modified to follow these requirements. For example,
-Identifiers.org's `ec-code` was renamed to `eccode` while maintaining `ec-code`
-as a synonym.
+Identifiers.org's `ec-code` was renamed to `ec` while maintaining `ec-code` as a
+synonym.
 
 Original discussion about minimum prefix requirements can be found at
 https://github.com/biopragmatics/bioregistry/issues/158.
diff --git a/docs/glossary.md b/docs/glossary.md
index 8f9784483..7a8da7e04 100644
--- a/docs/glossary.md
+++ b/docs/glossary.md
@@ -30,9 +30,8 @@ number (e.g., Gene Ontology), and some are expansive (e.g.,
 [NCI Thesaurus (NCIT)](https://bioregistry.io/efo)).
 
 Some resources are complete by definition (e.g.,
-[Enzyme Classification](https://bioregistry.io/eccode)), some resources are
-complete but subject to change (e.g., HGNC), and some are always incomplete
-(e.g., PDB).
+[Enzyme Classification](https://bioregistry.io/ec)), some resources are complete
+but subject to change (e.g., HGNC), and some are always incomplete (e.g., PDB).
 
 Resources do not always correspond one-to-one with projects, such as how the
 ChEMBL database contains both the
diff --git a/src/bioregistry/app/templates/meta/access.html b/src/bioregistry/app/templates/meta/access.html
index 96a9d9ffe..e73eda6d8 100644
--- a/src/bioregistry/app/templates/meta/access.html
+++ b/src/bioregistry/app/templates/meta/access.html
@@ -76,8 +76,8 @@ assert 'ncbitaxon' == bioregistry.normalize_prefix('taxonomy')
 assert 'pubchem.compound' == bioregistry.normalize_prefix('pubchem')
 
 # This works for prefixes that are often written many ways, like:
-assert 'eccode' == bioregistry.normalize_prefix('ec-code')
-assert 'eccode' == bioregistry.normalize_prefix('EC_CODE')
+assert 'ec' == bioregistry.normalize_prefix('ec-code')
+assert 'ec' == bioregistry.normalize_prefix('EC_CODE')
 
 # If a prefix is not registered, it gives back `None`
 assert bioregistry.normalize_prefix('not a real key') is None</code></pre>
diff --git a/src/bioregistry/data/bioregistry.json b/src/bioregistry/data/bioregistry.json
index b3c302054..38c9a20d0 100644
--- a/src/bioregistry/data/bioregistry.json
+++ b/src/bioregistry/data/bioregistry.json
@@ -11108,7 +11108,7 @@
       ],
       "uri_format": "http://www.brenda-enzymes.org/php/result_flat.php4?ecno=$1"
     },
-    "provides": "eccode",
+    "provides": "ec",
     "publications": [
       {
         "doi": "10.1016/j.jbiotec.2017.04.020",
@@ -17773,7 +17773,7 @@
     "name": "Clinical Genome Resource Panel",
     "uri_format": "https://clinicalgenome.org/affiliation/$1/"
   },
-  "clingene": {
+  "clingen.allele": {
     "biolink": {
       "is_identifiers": false,
       "is_obo": false,
@@ -17810,7 +17810,8 @@
       "https://github.com/biopragmatics/bioregistry/issues/647"
     ],
     "synonyms": [
-      "CAID"
+      "CAID",
+      "clingene"
     ],
     "uri_format": "https://reg.clinicalgenome.org/redmine/projects/registry/genboree_registry/by_caid?caid=$1"
   },
@@ -30922,97 +30923,7 @@
     },
     "pattern": "^E(S|D)i\\d+-\\w$"
   },
-  "ecacc": {
-    "cellosaurus": {
-      "category": "Cell line collections (Providers)",
-      "homepage": "https://www.culturecollections.org.uk/about-us/ecacc/",
-      "name": "European Collection of Cell Cultures",
-      "prefix": "ECACC",
-      "uri_format": "https://www.culturecollections.org.uk/products/celllines/detail.jsp?refId=$1"
-    },
-    "contributor": {
-      "email": "cthoyt@gmail.com",
-      "github": "cthoyt",
-      "name": "Charles Tapley Hoyt",
-      "orcid": "0000-0003-4423-4370"
-    },
-    "description": "The European Collection of Authenticated Cell Cultures (ECACC) is one of four Culture Collections of Public Health England. We supply authenticated and quality controlled cell lines, nucleic acids and induced Pluripotent Stem Cells (iPSCs).",
-    "example": "90062901",
-    "homepage": "https://www.phe-culturecollections.org.uk/collections/ecacc.aspx",
-    "mappings": {
-      "cellosaurus": "ECACC"
-    },
-    "name": "European Collection of Authenticated Cell Culture",
-    "pattern": "^\\d+$",
-    "uri_format": "https://www.phe-culturecollections.org.uk/products/celllines/generalcell/detail.jsp?collection=ecacc_gc&refId=$1"
-  },
-  "ecao": {
-    "aberowl": {
-      "description": "An ontology for the development and anatomy of the different species of the phylum Echinodermata (NCBITaxon:7586).",
-      "download_owl": "http://aber-owl.net/media/ontologies/ECAO/4/ecao.owl",
-      "homepage": "https://github.com/echinoderm-ontology/ecao_ontology",
-      "name": "The Echinoderm Anatomy and Development Ontology",
-      "prefix": "ECAO"
-    },
-    "bioportal": {
-      "contact": {
-        "email": "ettensohn@cmu.edu",
-        "name": "Charles Ettensohn"
-      },
-      "description": "An ontology for the development and anatomy of the different species of the phylum Echinodermata (NCBITaxon:7586).",
-      "homepage": "https://github.com/echinoderm-ontology/ecao_ontology",
-      "name": "The Echinoderm Anatomy and Development Ontology",
-      "prefix": "ECAO"
-    },
-    "example": "0107180",
-    "mappings": {
-      "aberowl": "ECAO",
-      "bioportal": "ECAO",
-      "obofoundry": "ecao",
-      "ols": "ecao",
-      "ontobee": "ECAO"
-    },
-    "obofoundry": {
-      "contact": "ettensohn@cmu.edu",
-      "contact.github": "ettensohn",
-      "contact.label": "Charles Ettensohn",
-      "contact.orcid": "0000-0002-3625-0955",
-      "depends_on": [
-        "cl",
-        "ro",
-        "uberon"
-      ],
-      "deprecated": false,
-      "description": "An ontology for the development and anatomy of the different species of the phylum Echinodermata (NCBITaxon:7586).",
-      "domain": "anatomy and development",
-      "download.obo": "http://purl.obolibrary.org/obo/ecao.obo",
-      "download.owl": "http://purl.obolibrary.org/obo/ecao.owl",
-      "homepage": "https://github.com/echinoderm-ontology/ecao_ontology",
-      "license": "CC BY 3.0",
-      "license.url": "http://creativecommons.org/licenses/by/3.0/",
-      "name": "The Echinoderm Anatomy and Development Ontology",
-      "preferredPrefix": "ECAO",
-      "prefix": "ecao",
-      "repository": "https://github.com/echinoderm-ontology/ecao_ontology"
-    },
-    "ols": {
-      "description": "None",
-      "download_owl": "http://purl.obolibrary.org/obo/ecao.owl",
-      "homepage": "https://github.com/echinoderm-ontology/ecao_ontology",
-      "name": "Echinoderm Anatomy and Development Ontology",
-      "prefix": "ecao",
-      "version": "2024-08-22",
-      "version.iri": "http://purl.obolibrary.org/obo/ecao/releases/2024-08-22/ecao.owl"
-    },
-    "ontobee": {
-      "library": "Library",
-      "name": "The Echinoderm Anatomy and Development Ontology",
-      "prefix": "ECAO"
-    },
-    "pattern": "^\\d{7}$",
-    "uri_format": "http://purl.obolibrary.org/obo/ECAO_$1"
-  },
-  "eccode": {
+  "ec": {
     "bartoc": {
       "description": "By the late 1950's it had become evident that the nomenclature of enzymology, in the absence of any guiding authority, in a period when the number of known enzymes was increasing rapidly, was getting out of hand. The naming of enzymes by individual workers had proved far from satisfactory in practice. In many cases the same enzymes became known by several different names, while conversely the same name was sometimes given to different enzymes. Many of the names conveyed little or no idea of the nature of the reactions catalysed, and similar names were sometimes given to enzymes of quite different types. To meet this situation, various attempts to bring order into the general nomenclature of enzymes, or into that of particular groups of enzymes, were made by individuals or small groups of specialists, but none of the resulting nomenclatures met with general approval. (...) The Enzyme List in the sixth edition (1992) contains 3540 entries, of which 178 record enzymes which are now transferred elsewhere in the list, and 166 have been deleted completely. Thus the number of enzymes actually listed is 3196, an increase of 29% on the 1984 edition.",
       "homepage": "https://www.abbexa.com/enzyme-commission-number",
@@ -31179,6 +31090,7 @@
       "prefix": "106"
     },
     "pattern": "^\\d{1,2}(((\\.\\d{1,3}){1,3})|(\\.\\d+){2}\\.[nB]\\d{1,3}|\\.-\\.-\\.-|\\.\\d{1,3}\\.-\\.-|\\.\\d{1,3}\\.\\d{1,3}\\.-)?$",
+    "preferred_prefix": "EC",
     "prefixcommons": {
       "description": "IntEnz is a freely available resource focused on enzyme nomenclature. IntEnz contains the recommendations of the Nomenclature Committee of the International Union of Biochemistry and Molecular Biology (NC-IUBMB) on the nomenclature and classification of enzyme-catalysed reactions.",
       "example": "17854",
@@ -31227,6 +31139,7 @@
       "ECCODE",
       "EC_CODE",
       "ec-code",
+      "eccode",
       "intenz"
     ],
     "togoid": {
@@ -31280,6 +31193,96 @@
       "uri_format": "http://enzyme.expasy.org/EC/$1"
     }
   },
+  "ecacc": {
+    "cellosaurus": {
+      "category": "Cell line collections (Providers)",
+      "homepage": "https://www.culturecollections.org.uk/about-us/ecacc/",
+      "name": "European Collection of Cell Cultures",
+      "prefix": "ECACC",
+      "uri_format": "https://www.culturecollections.org.uk/products/celllines/detail.jsp?refId=$1"
+    },
+    "contributor": {
+      "email": "cthoyt@gmail.com",
+      "github": "cthoyt",
+      "name": "Charles Tapley Hoyt",
+      "orcid": "0000-0003-4423-4370"
+    },
+    "description": "The European Collection of Authenticated Cell Cultures (ECACC) is one of four Culture Collections of Public Health England. We supply authenticated and quality controlled cell lines, nucleic acids and induced Pluripotent Stem Cells (iPSCs).",
+    "example": "90062901",
+    "homepage": "https://www.phe-culturecollections.org.uk/collections/ecacc.aspx",
+    "mappings": {
+      "cellosaurus": "ECACC"
+    },
+    "name": "European Collection of Authenticated Cell Culture",
+    "pattern": "^\\d+$",
+    "uri_format": "https://www.phe-culturecollections.org.uk/products/celllines/generalcell/detail.jsp?collection=ecacc_gc&refId=$1"
+  },
+  "ecao": {
+    "aberowl": {
+      "description": "An ontology for the development and anatomy of the different species of the phylum Echinodermata (NCBITaxon:7586).",
+      "download_owl": "http://aber-owl.net/media/ontologies/ECAO/4/ecao.owl",
+      "homepage": "https://github.com/echinoderm-ontology/ecao_ontology",
+      "name": "The Echinoderm Anatomy and Development Ontology",
+      "prefix": "ECAO"
+    },
+    "bioportal": {
+      "contact": {
+        "email": "ettensohn@cmu.edu",
+        "name": "Charles Ettensohn"
+      },
+      "description": "An ontology for the development and anatomy of the different species of the phylum Echinodermata (NCBITaxon:7586).",
+      "homepage": "https://github.com/echinoderm-ontology/ecao_ontology",
+      "name": "The Echinoderm Anatomy and Development Ontology",
+      "prefix": "ECAO"
+    },
+    "example": "0107180",
+    "mappings": {
+      "aberowl": "ECAO",
+      "bioportal": "ECAO",
+      "obofoundry": "ecao",
+      "ols": "ecao",
+      "ontobee": "ECAO"
+    },
+    "obofoundry": {
+      "contact": "ettensohn@cmu.edu",
+      "contact.github": "ettensohn",
+      "contact.label": "Charles Ettensohn",
+      "contact.orcid": "0000-0002-3625-0955",
+      "depends_on": [
+        "cl",
+        "ro",
+        "uberon"
+      ],
+      "deprecated": false,
+      "description": "An ontology for the development and anatomy of the different species of the phylum Echinodermata (NCBITaxon:7586).",
+      "domain": "anatomy and development",
+      "download.obo": "http://purl.obolibrary.org/obo/ecao.obo",
+      "download.owl": "http://purl.obolibrary.org/obo/ecao.owl",
+      "homepage": "https://github.com/echinoderm-ontology/ecao_ontology",
+      "license": "CC BY 3.0",
+      "license.url": "http://creativecommons.org/licenses/by/3.0/",
+      "name": "The Echinoderm Anatomy and Development Ontology",
+      "preferredPrefix": "ECAO",
+      "prefix": "ecao",
+      "repository": "https://github.com/echinoderm-ontology/ecao_ontology"
+    },
+    "ols": {
+      "description": "None",
+      "download_owl": "http://purl.obolibrary.org/obo/ecao.owl",
+      "homepage": "https://github.com/echinoderm-ontology/ecao_ontology",
+      "name": "Echinoderm Anatomy and Development Ontology",
+      "prefix": "ecao",
+      "version": "2024-08-22",
+      "version.iri": "http://purl.obolibrary.org/obo/ecao/releases/2024-08-22/ecao.owl"
+    },
+    "ontobee": {
+      "library": "Library",
+      "name": "The Echinoderm Anatomy and Development Ontology",
+      "prefix": "ECAO"
+    },
+    "pattern": "^\\d{7}$",
+    "uri_format": "http://purl.obolibrary.org/obo/ECAO_$1"
+  },
   "ecg": {
     "aberowl": {
       "description": "The Electrocardiography (ECG) Ontology is a Driving Biological Project of the NCBO. The ECG Ontology will contain terms for describing electrocardiograms, their capture method(s) and their waveforms.",
@@ -62045,7 +62048,7 @@
     },
     "name": "KEGG Enzyme",
     "part_of": "kegg",
-    "provides": "eccode"
+    "provides": "ec"
   },
   "kegg.genes": {
     "biocontext": {
@@ -96882,6 +96885,40 @@
     "homepage": "https://wiki.phenoscape.org/wiki/Curation_workflow",
     "name": "Phenoscape Publication"
   },
+  "psskb": {
+    "contact": {
+      "email": "kaysheva1@gmail.com",
+      "name": "Anna L. Kaysheva",
+      "orcid": "0000-0003-4472-2016"
+    },
+    "contributor": {
+      "email": "palayoor.n@northeastern.edu",
+      "github": "nalikapalayoor",
+      "name": "Nalika Palayoor",
+      "orcid": "0009-0008-8406-631X"
+    },
+    "description": "PSSKB allows researchers to model post translational modifications and amino acid substitutions in proteins, providing 3D structural representations. Identifiers represent protein motifs on which PSSKB provides data.",
+    "example": "2VM6_A55_A135",
+    "github_request_issue": 1398,
+    "homepage": "https://psskb.org/",
+    "name": "Protein Structure and Stability Knowledge Base",
+    "pattern": "^[A-Za-z0-9_]+$",
+    "publications": [
+      {
+        "doi": "10.1002/jcc.70046",
+        "pubmed": "39876062",
+        "title": "PSSKB: A Web Application to Study Protein Structures",
+        "year": 2025
+      }
+    ],
+    "reviewer": {
+      "email": "b.gyori@northeastern.edu",
+      "github": "bgyori",
+      "name": "Benjamin M. Gyori",
+      "orcid": "0000-0001-9439-5346"
+    },
+    "uri_format": "https://psskb.org/motif/card/$1"
+  },
   "pubchem.bioassay": {
     "biocontext": {
       "prefix": "PUBCHEM.BIOASSAY"
@@ -100775,6 +100812,12 @@
         "pubmed": "10400928",
         "title": "A high-density integrated genetic linkage and radiation hybrid map of the laboratory rat",
         "year": 1999
+      },
+      {
+        "doi": "10.1093/database/baae132",
+        "pmc": "PMC11753291",
+        "pubmed": "39841812",
+        "title": "Standardized pipelines support and facilitate integration of diverse datasets at the Rat Genome Database"
       }
     ],
     "re3data": {
@@ -103245,7 +103288,7 @@
       ],
       "uri_format": "http://sabiork.h-its.org/index2.jsp?EC=$1"
     },
-    "provides": "eccode",
+    "provides": "ec",
     "publications": [
       {
         "pubmed": "17822389",
@@ -113026,7 +113069,7 @@
     },
     "contributor_extras": [
       {
-        "email": "benjamin_gyori@hms.harvard.edu",
+        "email": "b.gyori@northeastern.edu",
         "github": "bgyori",
         "name": "Benjamin M. Gyori",
         "orcid": "0000-0001-9439-5346"
@@ -113104,7 +113147,8 @@
         "title": "TAIR: a resource for integrated Arabidopsis data",
         "year": 2002
       }
-    ]
+    ],
+    "uri_format": "https://www.arabidopsis.org/locus?accession=$1"
   },
   "tair.protein": {
     "banana": "AASequence",
@@ -113117,6 +113161,14 @@
       "name": "Aisling Doyle",
       "orcid": "0000-0003-3871-858X"
     },
+    "contributor_extras": [
+      {
+        "email": "b.gyori@northeastern.edu",
+        "github": "bgyori",
+        "name": "Benjamin M. Gyori",
+        "orcid": "0000-0001-9439-5346"
+      }
+    ],
     "example": "1009107926",
     "mappings": {
       "biocontext": "TAIR.PROTEIN",
@@ -113158,6 +113210,15 @@
         "12444417"
       ]
     },
+    "providers": [
+      {
+        "code": "legacy",
+        "description": "This was the old URI for TAIR proteins",
+        "homepage": "https://www.arabidopsis.org",
+        "name": "Legacy",
+        "uri_format": "http://arabidopsis.org/servlets/TairObject?accession=AASequence:$1"
+      }
+    ],
     "publications": [
       {
         "doi": "10.1007/s10142-002-0077-z",
@@ -113166,7 +113227,7 @@
         "year": 2002
       }
     ],
-    "uri_format": "http://arabidopsis.org/servlets/TairObject?accession=AASequence:$1"
+    "uri_format": "https://www.arabidopsis.org/protein?key=$1"
   },
   "tao": {
     "aberowl": {
diff --git a/src/bioregistry/data/curated_papers.tsv b/src/bioregistry/data/curated_papers.tsv
index 93eeb4bcb..9f13a8832 100644
--- a/src/bioregistry/data/curated_papers.tsv
+++ b/src/bioregistry/data/curated_papers.tsv
@@ -183,3 +183,5 @@ pubmed	relevant	orcid	date_curated	relevancy_type	pr_added	notes
 39728342	0	0009-0008-8406-631X	2025-01-17	non_resource_paper	1364	
 39729356	0	0009-0008-8406-631X	2025-01-14	not_identifiers_resource	1364	
 39732706	0	0009-0008-8406-631X	2025-01-10	not_identifiers_resource	1351	
+39841812	1	0009-0008-8406-631X	2025-01-10	new_publication	1399	
+39876062	1	0009-0008-8406-631X	2025-02-01	new_prefix	1398	
diff --git a/src/bioregistry/resolve.py b/src/bioregistry/resolve.py
index 01005a58c..f05e1367e 100644
--- a/src/bioregistry/resolve.py
+++ b/src/bioregistry/resolve.py
@@ -948,8 +948,8 @@ def normalize_prefix(prefix: str, *, use_preferred: bool = False) -> str | None:
 
     This works for prefixes that are often written many ways, like:
 
-    >>> assert "eccode" == normalize_prefix("ec-code")
-    >>> assert "eccode" == normalize_prefix("EC_CODE")
+    >>> assert "ec" == normalize_prefix("ec-code")
+    >>> assert "ec" == normalize_prefix("EC_CODE")
 
     Get a "preferred" prefix:
 


Test patch:
diff --git a/tests/test_identifiers_org.py b/tests/test_identifiers_org.py
index 5f887bca9..14c382d24 100644
--- a/tests/test_identifiers_org.py
+++ b/tests/test_identifiers_org.py
@@ -36,7 +36,7 @@ class TestIdentifiersOrg(unittest.TestCase):
         """Test getting identifiers.org prefixes."""
         for prefix, miriam_prefix in [
             ("ncbitaxon", "taxonomy"),
-            ("eccode", "ec-code"),
+            ("ec", "ec-code"),
         ]:
             with self.subTest(prefix=prefix):
                 self.assertEqual(miriam_prefix, bioregistry.get_identifiers_org_prefix(prefix))
diff --git a/tests/test_resolve.py b/tests/test_resolve.py
index d679859f6..2805bb87f 100644
--- a/tests/test_resolve.py
+++ b/tests/test_resolve.py
@@ -20,8 +20,8 @@ class TestResolve(unittest.TestCase):
             ("ncbitaxon", "taxonomy"),
             ("scomp", "SCOMP"),
             ("sfam", "SFAM"),
-            ("eccode", "ec-code"),
-            ("eccode", "EC_CODE"),
+            ("ec", "ec-code"),
+            ("ec", "EC_CODE"),
             ("chembl.compound", "chembl.compound"),
             ("chembl.compound", "chemblcompound"),
             ("chembl", "chembl"),
@@ -41,12 +41,12 @@ class TestResolve(unittest.TestCase):
     def test_validate_true(self):
         """Test that validation returns true."""
         tests = [
-            ("eccode", "1"),
-            ("eccode", "1.1"),
-            ("eccode", "1.1.1"),
-            ("eccode", "1.1.1.1"),
-            ("eccode", "1.1.123.1"),
-            ("eccode", "1.1.1.123"),
+            ("ec", "1"),
+            ("ec", "1.1"),
+            ("ec", "1.1.1"),
+            ("ec", "1.1.1.1"),
+            ("ec", "1.1.123.1"),
+            ("ec", "1.1.1.123"),
             # Namespace in LUI: Standard rule for upper-casing
             ("chebi", "24867"),
             ("chebi", "CHEBI:1234"),