From 85c25b83e78af00899d707fdc6384f9b0f469dfd Mon Sep 17 00:00:00 2001 From: Sally Grindstaff Date: Mon, 14 Oct 2024 15:00:22 -0700 Subject: [PATCH 1/2] Check if score set has variants before mapping, return error if no variants --- src/dcd_mapping/main.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/dcd_mapping/main.py b/src/dcd_mapping/main.py index a51fb82..f0048bc 100644 --- a/src/dcd_mapping/main.py +++ b/src/dcd_mapping/main.py @@ -321,6 +321,20 @@ async def map_scoreset_urn( _logger.critical(msg) click.echo(f"Error: {msg}") raise e + + if not records: + _emit_info("Score set contains no variants to map", silent, logging.ERROR) + final_output = write_scoreset_mapping_to_json( + urn, + ScoresetMapping( + metadata=metadata, + error_message="Score set contains no variants to map", + ), + output_path, + ) + _emit_info(f"Score set mapping output saved to: {final_output}.", silent) + return + await map_scoreset( metadata, records, output_path, vrs_version, prefer_genomic, silent ) From 2813d843619ad47fe90819cb29a598fb925933e3 Mon Sep 17 00:00:00 2001 From: Sally Grindstaff Date: Fri, 18 Oct 2024 11:23:26 -0700 Subject: [PATCH 2/2] Do not map score sets without variants in API function --- src/api/routers/map.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/api/routers/map.py b/src/api/routers/map.py index 8577263..7c173c3 100644 --- a/src/api/routers/map.py +++ b/src/api/routers/map.py @@ -49,6 +49,14 @@ async def map_scoreset(urn: str) -> ScoresetMapping: msg = f"Unable to acquire resource from MaveDB: {e}" raise HTTPException(status_code=500, detail=msg) from e + if not records: + return JSONResponse( + content=ScoresetMapping( + metadata=metadata, + error_message="Score set contains no variants to map", + ).model_dump(exclude_none=True) + ) + try: alignment_result = align(metadata, True) except BlatNotFoundError as e: