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 c5ad9eadd..0c3df32d4 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 @@
Python Package Usage
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
diff --git a/src/bioregistry/data/bioregistry.json b/src/bioregistry/data/bioregistry.json
index cae908fd8..f746b6860 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",
@@ -30922,97 +30922,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 +31089,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 +31138,7 @@
"ECCODE",
"EC_CODE",
"ec-code",
+ "eccode",
"intenz"
],
"togoid": {
@@ -31280,6 +31192,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.",
@@ -62020,7 +62022,7 @@
},
"name": "KEGG Enzyme",
"part_of": "kegg",
- "provides": "eccode"
+ "provides": "ec"
},
"kegg.genes": {
"biocontext": {
@@ -103220,7 +103222,7 @@
],
"uri_format": "http://sabiork.h-its.org/index2.jsp?EC=$1"
},
- "provides": "eccode",
+ "provides": "ec",
"publications": [
{
"pubmed": "17822389",
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:
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 @@ def test_get_prefix(self):
"""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 @@ def test_resolve(self):
("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 @@ def test_get(self):
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"),