From cc3dae6088d9dd844de636d5aecd198c425457f6 Mon Sep 17 00:00:00 2001 From: Sebastian Allard Date: Fri, 12 Jan 2024 14:56:03 +0100 Subject: [PATCH] Add qc for non microbial samples in microsalt (#2825)(patch) --- cg/meta/upload/microsalt/microsalt_upload_api.py | 2 +- cg/meta/workflow/microsalt/quality_controller/models.py | 4 +--- .../microsalt/quality_controller/quality_controller.py | 4 ++++ cg/meta/workflow/microsalt/quality_controller/utils.py | 5 +++++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cg/meta/upload/microsalt/microsalt_upload_api.py b/cg/meta/upload/microsalt/microsalt_upload_api.py index b4f31a48ec..69fb30739e 100644 --- a/cg/meta/upload/microsalt/microsalt_upload_api.py +++ b/cg/meta/upload/microsalt/microsalt_upload_api.py @@ -17,7 +17,7 @@ def __init__(self, config: CGConfig): super().__init__(config=config, analysis_api=self.analysis_api) def upload(self, ctx: click.Context, case: Case, restart: bool) -> None: - """Uploads MIP-DNA analysis data and files.""" + """Uploads MicroSALT analysis data and files.""" analysis: Analysis = case.analyses[0] self.update_upload_started_at(analysis) diff --git a/cg/meta/workflow/microsalt/quality_controller/models.py b/cg/meta/workflow/microsalt/quality_controller/models.py index f9579579c0..17100b82e6 100644 --- a/cg/meta/workflow/microsalt/quality_controller/models.py +++ b/cg/meta/workflow/microsalt/quality_controller/models.py @@ -1,13 +1,11 @@ from pydantic import BaseModel -from cg.constants.constants import MicrosaltAppTags - class SampleQualityResult(BaseModel): sample_id: str passes_qc: bool is_control: bool - application_tag: MicrosaltAppTags + application_tag: str passes_reads_qc: bool passes_mapping_qc: bool = True passes_duplication_qc: bool = True diff --git a/cg/meta/workflow/microsalt/quality_controller/quality_controller.py b/cg/meta/workflow/microsalt/quality_controller/quality_controller.py index 8a00abb1e7..6f9a830fab 100644 --- a/cg/meta/workflow/microsalt/quality_controller/quality_controller.py +++ b/cg/meta/workflow/microsalt/quality_controller/quality_controller.py @@ -15,6 +15,7 @@ get_percent_reads_guaranteed, get_report_path, get_sample_target_reads, + has_non_microbial_apptag, is_sample_negative_control, has_valid_10x_coverage, has_valid_average_coverage, @@ -83,6 +84,9 @@ def quality_control_sample(self, sample_id: str, metrics: SampleMetrics) -> Samp and valid_10x_coverage ) + if has_non_microbial_apptag(sample): + sample_passes_qc = True + sample_quality = SampleQualityResult( sample_id=sample_id, passes_qc=sample_passes_qc, diff --git a/cg/meta/workflow/microsalt/quality_controller/utils.py b/cg/meta/workflow/microsalt/quality_controller/utils.py index f1b4bdb525..3b6883e7bf 100644 --- a/cg/meta/workflow/microsalt/quality_controller/utils.py +++ b/cg/meta/workflow/microsalt/quality_controller/utils.py @@ -65,6 +65,11 @@ def has_valid_10x_coverage(metrics: SampleMetrics) -> bool: return is_valid_10x_coverage(coverage_10x) if coverage_10x else False +def has_non_microbial_apptag(sample: Sample) -> bool: + app_tag: str = get_application_tag(sample) + return app_tag not in list(MicrosaltAppTags) + + def get_negative_control_result(results: list[SampleQualityResult]) -> SampleQualityResult | None: for result in results: if result.is_control: