1212from ga4gh .va_spec .base .core import Statement , ExperimentalVariantFunctionalImpactStudyResult
1313from sqlalchemy import null , or_ , select
1414from sqlalchemy .exc import MultipleResultsFound , NoResultFound
15- from sqlalchemy .orm import Session
15+ from sqlalchemy .orm import contains_eager , Session
1616
1717from mavedb import deps
1818from mavedb .lib .annotation .exceptions import MappingDataDoesntExistException
@@ -1463,30 +1463,27 @@ async def get_clinical_controls_for_score_set(
14631463
14641464 clinical_controls_query = (
14651465 select (ClinicalControl )
1466- .join (MappedVariant , ClinicalControl .mapped_variants )
1467- .join (Variant )
1468- .where (Variant .score_set_id == item .id )
1466+ .join (ClinicalControl .mapped_variants )
1467+ .join (MappedVariant .variant )
1468+ .options (
1469+ contains_eager (ClinicalControl .mapped_variants )
1470+ .contains_eager (MappedVariant .variant )
1471+ )
1472+ .filter (MappedVariant .current .is_ (True ))
1473+ .filter (Variant .score_set_id == item .id )
14691474 )
14701475
14711476 if db_name is not None :
14721477 save_to_logging_context ({"db_name" : db_name })
1473- clinical_controls_query = clinical_controls_query .where (ClinicalControl .db_name == db_name )
1478+ clinical_controls_query = clinical_controls_query .filter (ClinicalControl .db_name == db_name )
14741479
14751480 if db_version is not None :
14761481 save_to_logging_context ({"db_version" : db_version })
1477- clinical_controls_query = clinical_controls_query .where (ClinicalControl .db_version == db_version )
1478-
1479- clinical_controls_for_item : Sequence [ClinicalControl ] = _db .scalars (clinical_controls_query ).all ()
1480- clinical_controls_with_mapped_variant = []
1481- for control_variant in clinical_controls_for_item :
1482- control_variant .mapped_variants = [
1483- mv for mv in control_variant .mapped_variants if mv .current and mv .variant .score_set_id == item .id
1484- ]
1482+ clinical_controls_query = clinical_controls_query .filter (ClinicalControl .db_version == db_version )
14851483
1486- if control_variant .mapped_variants :
1487- clinical_controls_with_mapped_variant .append (control_variant )
1484+ clinical_controls : Sequence [ClinicalControl ] = _db .scalars (clinical_controls_query ).unique ().all ()
14881485
1489- if not clinical_controls_with_mapped_variant :
1486+ if not clinical_controls :
14901487 logger .info (
14911488 msg = "No clinical control variants matching the provided filters are associated with the requested score set." ,
14921489 extra = logging_context (),
@@ -1496,9 +1493,9 @@ async def get_clinical_controls_for_score_set(
14961493 detail = f"No clinical control variants matching the provided filters associated with score set URN { urn } were found" ,
14971494 )
14981495
1499- save_to_logging_context ({"resource_count" : len (clinical_controls_for_item )})
1496+ save_to_logging_context ({"resource_count" : len (clinical_controls )})
15001497
1501- return clinical_controls_for_item
1498+ return clinical_controls
15021499
15031500
15041501@router .get (
0 commit comments