Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Renamed fields for API's variantdata requests #137

Merged
merged 7 commits into from
Oct 17, 2024
Merged
Next Next commit
Changed dict structure for variantdata api requests
Shettland committed Oct 14, 2024
commit 25d17925981b6bd84440cb734f325fb4e3c622ef
18 changes: 11 additions & 7 deletions core/api/utils/variants.py
Original file line number Diff line number Diff line change
@@ -67,8 +67,8 @@ def get_variant_id(data):
return {"ERROR": core.config.ERROR_CHROMOSOME_NOT_DEFINED_IN_DATABASE}
variant_obj = core.models.Variant.objects.filter(
chromosomeID_id=chr_obj,
pos__iexact=data["Variant"]["pos"],
alt__iexact=data["Variant"]["alt"],
pos__iexact=data["pos"],
alt__iexact=data["alt"],
).last()
if variant_obj is None:
# Create the variant
@@ -78,9 +78,9 @@ def get_variant_id(data):
variant_dict = {}
variant_dict["chromosomeID_id"] = chr_obj.get_chromosome_id()
variant_dict["filterID_id"] = filter_obj.get_filter_id()
variant_dict["pos"] = data["Variant"]["pos"]
variant_dict["alt"] = data["Variant"]["alt"]
variant_dict["ref"] = data["Variant"]["ref"]
variant_dict["pos"] = data["pos"]
variant_dict["alt"] = data["alt"]
variant_dict["ref"] = data["ref"]
variant_serializer = core.api.serializers.CreateVariantSerializer(
data=variant_dict
)
@@ -104,7 +104,7 @@ def get_required_variant_ann_id(data):
if gene_obj is None:
return {"ERROR": core.config.ERROR_GENE_NOT_DEFINED_IN_DATABASE}
v_ann_ids["geneID_id"] = gene_obj.get_gene_id()
effect_obj = create_or_get_effect_obj(data["Effect"])
effect_obj = create_or_get_effect_obj(data["effect"])
if isinstance(effect_obj, dict):
return effect_obj
v_ann_ids["geneID_id"] = gene_obj.get_gene_id()
@@ -122,14 +122,18 @@ def split_variant_data(data, sample_obj, date):
split_data["variant_in_sample"]["variantID_id"] = variant_id
split_data["variant_in_sample"]["analysis_date"] = date

var_keys = ["dp", "ref_dp", "alt_dp", "af"]
data["VariantInSample"] = {x:y for x,y in data.items() if x in var_keys}
split_data["variant_in_sample"].update(data["VariantInSample"])

v_ann_id = get_required_variant_ann_id(data)
if "ERROR" in v_ann_id:
return v_ann_id
split_data["variant_ann"] = v_ann_id
split_data["variant_ann"]["variantID_id"] = variant_id


annot_keys = ["hgvs_c", "hgvs_p", "hgvs_p_1_letter"]
data["VariantAnnotation"] = {x:y for x,y in data.items() if x in annot_keys}
split_data["variant_ann"].update(data["VariantAnnotation"])
return split_data