aboutsummaryrefslogtreecommitdiff
path: root/uploader
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2025-04-14 09:01:52 -0500
committerFrederick Muriuki Muriithi2025-04-14 09:01:52 -0500
commitb9462d85bda9757696ee4c0deefcac11ec16e5eb (patch)
treeeda46fb99d5ef8a709303a95845351fffbbbc492 /uploader
parent520690ddb83b7898ec74bd8c1a26c3e078903d47 (diff)
downloadgn-uploader-b9462d85bda9757696ee4c0deefcac11ec16e5eb.tar.gz
Implement computation for publication differences.
Diffstat (limited to 'uploader')
-rw-r--r--uploader/publications/misc.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/uploader/publications/misc.py b/uploader/publications/misc.py
index d93ecdd..fca6f71 100644
--- a/uploader/publications/misc.py
+++ b/uploader/publications/misc.py
@@ -4,7 +4,22 @@
def publications_differences(
filedata: tuple[dict, ...],
dbdata: tuple[dict, ...],
- pubmedid2pubidmap: dict[str, int]
+ pubmedid2pubidmap: tuple[dict, ...]
) -> tuple[dict, ...]:
"""Compute the differences between file data and db data"""
- return tuple()
+ diff = tuple()
+ for filerow, dbrow in zip(
+ sorted(filedata, key=lambda item: (
+ item["phenotype_id"], item["xref_id"])),
+ sorted(dbdata, key=lambda item: (
+ item["PhenotypeId"], item["xref_id"]))):
+ if filerow["PubMed_ID"] == dbrow["PubMed_ID"]:
+ continue
+
+ newpubmed = filerow["PubMed_ID"]
+ diff = diff + ({
+ **dbrow,
+ "PubMed_ID": newpubmed,
+ "PublicationId": pubmedid2pubidmap.get(newpubmed)},)
+
+ return diff