From 9c88bc4278725ca9faae37a7026c023374b4c96b Mon Sep 17 00:00:00 2001 From: Charles Tapley Hoyt Date: Mon, 30 Oct 2023 16:26:45 +0100 Subject: [PATCH] Add PubMed and PMC contact and update PMC information (#968) Closes #965 Closes #967 Closes #966 --- src/bioregistry/data/bioregistry.json | 40 ++++++++++++++----- .../data/external/miriam/processed.json | 9 ----- src/bioregistry/external/miriam.py | 1 + tests/test_data.py | 6 ++- 4 files changed, 37 insertions(+), 19 deletions(-) diff --git a/src/bioregistry/data/bioregistry.json b/src/bioregistry/data/bioregistry.json index 89fd9f241..a8b9fcc6a 100644 --- a/src/bioregistry/data/bioregistry.json +++ b/src/bioregistry/data/bioregistry.json @@ -79079,6 +79079,18 @@ "prefix": "PMC", "uri_format": "http://europepmc.org/articles/PMC$1" }, + "comment": "Note that the Europe PMC instance redirects canonical local unique identifiers from https://europepmc.org/articles/PMC3084216 to https://europepmc.org/article/PMC/3084216. However, this is an implementation detail and does not reflect the official format of a PMC identifier, which indeed does include `PMC` at the beginning of the local unique identifier", + "contact": { + "email": "beck@ncbi.nlm.nih.gov", + "github": "jeffbeckncbi", + "name": "Jeff Beck", + "orcid": "0000-0002-1798-9797" + }, + "example_extras": [ + "PMC7418728", + "PMC7418728.1", + "PMC7418728.2" + ], "fairsharing": { "abbreviation": "PMC", "description": "PubMed Central (PMC) is the U.S. National Institutes of Health (NIH) digital archive of biomedical and life sciences journal literature.", @@ -79135,15 +79147,6 @@ "namespaceEmbeddedInLui": false, "pattern": "PMC\\d+", "prefix": "pmc", - "providers": [ - { - "code": "ncbi", - "description": "PubMed Central", - "homepage": "https://www.ncbi.nlm.nih.gov/pmc/", - "name": "PubMed Central", - "uri_format": "https://www.ncbi.nlm.nih.gov/pmc/articles/$1/?tool=pubmed" - } - ], "sampleId": "PMC3084216", "uri_format": "http://europepmc.org/articles/$1" }, @@ -79158,6 +79161,7 @@ "uri_format": "http://europepmc.org/articles/$1" }, "name": "PubMed Central", + "pattern": "^PMC\\d+(\\.\\d+)?$", "prefixcommons": { "description": "PubMed Central (PMC) is the U.S. National Institutes of Health (NIH) digital archive of biomedical and life sciences journal literature.", "example": "PMC3084216", @@ -79173,6 +79177,15 @@ ], "uri_format": "http://www.ncbi.nlm.nih.gov/pmc/articles/$1/?tool=pmcentrez" }, + "providers": [ + { + "code": "ncbi.pmc", + "description": "PubMed Central", + "homepage": "https://www.ncbi.nlm.nih.gov/pmc/", + "name": "PubMed Central", + "uri_format": "https://www.ncbi.nlm.nih.gov/pmc/articles/$1" + } + ], "publications": [ { "doi": "10.1093/nar/gkr1184", @@ -79189,6 +79202,9 @@ "year": 2010 } ], + "references": [ + "https://github.com/biopragmatics/bioregistry/issues/965" + ], "synonyms": [ "PMC", "PMCID" @@ -82914,6 +82930,12 @@ "obsolete": false, "prefix": "000302" }, + "contact": { + "email": "beck@ncbi.nlm.nih.gov", + "github": "jeffbeckncbi", + "name": "Jeff Beck", + "orcid": "0000-0002-1798-9797" + }, "edam": { "description": "PubMed unique identifier of an article.", "name": "PubMed", diff --git a/src/bioregistry/data/external/miriam/processed.json b/src/bioregistry/data/external/miriam/processed.json index c17b60c01..e887730e8 100644 --- a/src/bioregistry/data/external/miriam/processed.json +++ b/src/bioregistry/data/external/miriam/processed.json @@ -7967,15 +7967,6 @@ "namespaceEmbeddedInLui": false, "pattern": "PMC\\d+", "prefix": "pmc", - "providers": [ - { - "code": "ncbi", - "description": "PubMed Central", - "homepage": "https://www.ncbi.nlm.nih.gov/pmc/", - "name": "PubMed Central", - "uri_format": "https://www.ncbi.nlm.nih.gov/pmc/articles/$1/?tool=pubmed" - } - ], "sampleId": "PMC3084216", "uri_format": "http://europepmc.org/articles/$1" }, diff --git a/src/bioregistry/external/miriam.py b/src/bioregistry/external/miriam.py index acfbfdcd5..d03861b97 100644 --- a/src/bioregistry/external/miriam.py +++ b/src/bioregistry/external/miriam.py @@ -60,6 +60,7 @@ def get_miriam(force_download: bool = False, force_process: bool = False): ("ega.study", "omicsdi"), # see discussion at https://github.com/biopragmatics/bioregistry/pull/944 ("bioproject", "ebi"), + ("pmc", "ncbi"), } diff --git a/tests/test_data.py b/tests/test_data.py index b6243fa68..5d472c131 100644 --- a/tests/test_data.py +++ b/tests/test_data.py @@ -681,7 +681,11 @@ def test_providers(self): for provider in resource.providers: with self.subTest(prefix=prefix, code=provider.code): self.assertNotEqual(provider.code, prefix) - self.assertNotIn(provider.code, self.metaregistry) + self.assertNotIn( + provider.code, + set(self.metaregistry), + msg="Provider code is duplicate of metaregistry prefix.", + ) self.assertNotIn(provider.code, {"custom", "default"}) self.assertEqual( provider.code.lower(),