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: 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 )