aboutsummaryrefslogtreecommitdiff
path: root/uploader/phenotypes/misc.py
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/phenotypes/misc.py')
-rw-r--r--uploader/phenotypes/misc.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/uploader/phenotypes/misc.py b/uploader/phenotypes/misc.py
index 7003f81..cbe3b7f 100644
--- a/uploader/phenotypes/misc.py
+++ b/uploader/phenotypes/misc.py
@@ -8,4 +8,19 @@ def phenotypes_data_differences(
filedata: tuple[dict, ...], dbdata: tuple[dict, ...]
) -> tuple[dict, ...]:
"""Compute 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"]))):
+ for samplename, value in filerow["data"].items():
+ if value != dbrow["data"].get(samplename, {}).get("value"):
+ diff = diff + ({
+ "PhenotypeId": filerow["phenotype_id"],
+ "xref_id": filerow["xref_id"],
+ "DataId": dbrow["DataId"],
+ "StrainId": dbrow["data"].get(samplename, {}).get("StrainId"),
+ "StrainName": samplename,
+ "value": value
+ },)
+
+ return diff