99from arq import ArqRedis
1010from arq .jobs import Job , JobStatus
1111from cdot .hgvs .dataproviders import RESTDataProvider
12- from sqlalchemy import cast , delete , null , select
12+ from sqlalchemy import cast , delete , func , null , select
1313from sqlalchemy .dialects .postgresql import JSONB
1414from sqlalchemy .orm import Session
1515
@@ -504,6 +504,7 @@ async def map_variants_for_score_set(
504504 mapping_api_version = mapping_results ["dcd_mapping_version" ],
505505 error_message = mapped_score .get ("error_message" , null ()),
506506 current = True ,
507+ hgvs_assay_level = get_hgvs_from_post_mapped (mapped_score .get ("post_mapped" )),
507508 )
508509 db .add (mapped_variant )
509510
@@ -874,43 +875,50 @@ async def submit_score_set_mappings_to_car(ctx: dict, correlation_id: str, score
874875
875876 try :
876877 variant_post_mapped_objects = db .execute (
877- select (MappedVariant .id , MappedVariant .post_mapped )
878+ select (MappedVariant .id , MappedVariant .hgvs_assay_level )
878879 .join (Variant )
879880 .join (ScoreSet )
880881 .where (ScoreSet .urn == score_set .urn )
881- .where (MappedVariant .post_mapped .is_not (None ))
882+ .where (MappedVariant .hgvs_assay_level .is_not (None ))
882883 .where (MappedVariant .current .is_ (True ))
883884 ).all ()
885+ variants_without_assay_level_hgvs = db .execute (
886+ select (func .count (MappedVariant .id ))
887+ .join (Variant )
888+ .join (ScoreSet )
889+ .where (ScoreSet .urn == score_set .urn )
890+ .where (MappedVariant .hgvs_assay_level .is_ (None ))
891+ ).scalar_one ()
892+
893+ logging_context ["variants_with_assay_level_hgvs" ] = len (variant_post_mapped_objects )
894+ logging_context ["variants_without_assay_level_hgvs" ] = variants_without_assay_level_hgvs
884895
885896 if not variant_post_mapped_objects :
886897 logger .warning (
887- msg = "No current mapped variants with post mapped metadata were found for this score set. Skipping CAR submission." ,
898+ msg = "No current mapped variants with assay level HGVS were found for this score set. Skipping CAR submission." ,
888899 extra = logging_context ,
889900 )
890901 return {"success" : True , "retried" : False , "enqueued_job" : None }
891902
892- variant_post_mapped_hgvs : dict [str , list [int ]] = {}
893- for mapped_variant_id , post_mapped in variant_post_mapped_objects :
894- hgvs_for_post_mapped = get_hgvs_from_post_mapped (post_mapped )
895-
896- if not hgvs_for_post_mapped :
897- logger .warning (
898- msg = f"Could not construct a valid HGVS string for mapped variant { mapped_variant_id } . Skipping submission of this variant." ,
899- extra = logging_context ,
900- )
901- continue
903+ if variants_without_assay_level_hgvs > 0 :
904+ logger .warning (
905+ msg = "Some mapped variants for this score set are missing assay level HGVS strings. These variants will be skipped during CAR submission." ,
906+ extra = logging_context ,
907+ )
902908
903- if hgvs_for_post_mapped in variant_post_mapped_hgvs :
904- variant_post_mapped_hgvs [hgvs_for_post_mapped ].append (mapped_variant_id )
909+ variant_post_mapped_hgvs : dict [str , list [int ]] = {}
910+ for mapped_variant_id , assay_level_hgvs in variant_post_mapped_objects :
911+ if assay_level_hgvs in variant_post_mapped_hgvs :
912+ variant_post_mapped_hgvs [assay_level_hgvs ].append (mapped_variant_id )
905913 else :
906- variant_post_mapped_hgvs [hgvs_for_post_mapped ] = [mapped_variant_id ]
914+ variant_post_mapped_hgvs [assay_level_hgvs ] = [mapped_variant_id ]
907915
908916 except Exception as e :
909917 send_slack_error (e )
910918 send_slack_message (text = text % score_set .urn )
911919 logging_context = {** logging_context , ** format_raised_exception_info_as_dict (e )}
912920 logger .error (
913- msg = "LDH mapped resource submission encountered an unexpected error while attempting to construct post mapped HGVS strings. This job will not be retried." ,
921+ msg = "CAR mapped resource submission encountered an unexpected error while attempting to build a submission resource of assay level HGVS strings. This job will not be retried." ,
914922 extra = logging_context ,
915923 )
916924
@@ -931,7 +939,7 @@ async def submit_score_set_mappings_to_car(ctx: dict, correlation_id: str, score
931939 send_slack_message (text = text % score_set .urn )
932940 logging_context = {** logging_context , ** format_raised_exception_info_as_dict (e )}
933941 logger .error (
934- msg = "LDH mapped resource submission encountered an unexpected error while attempting to authenticate to the LDH . This job will not be retried." ,
942+ msg = "CAR mapped resource submission encountered an unexpected error while attempting to authenticate to the CAR . This job will not be retried." ,
935943 extra = logging_context ,
936944 )
937945
0 commit comments