diff --git a/cg/meta/workflow/microsalt/models.py b/cg/meta/workflow/microsalt/models.py index ade4700459..8e4ab3c665 100644 --- a/cg/meta/workflow/microsalt/models.py +++ b/cg/meta/workflow/microsalt/models.py @@ -44,5 +44,6 @@ class QualityMetrics(BaseModel): class QualityResult(BaseModel): - sample: Sample + sample_id: str + is_negative_control: bool passes_qc: bool diff --git a/cg/meta/workflow/microsalt/quality_checker.py b/cg/meta/workflow/microsalt/quality_checker.py index 088e60a58e..840ac26a12 100644 --- a/cg/meta/workflow/microsalt/quality_checker.py +++ b/cg/meta/workflow/microsalt/quality_checker.py @@ -40,7 +40,6 @@ def quality_control(self, run_dir_path: Path, lims_project: str): self.quality_control_case(sample_results) def quality_control_sample(self, sample_id: str, metrics: SampleMetrics) -> QualityResult: - sample = self.status_db.get_sample_by_internal_id(sample_id) valid_reads: bool = self.is_valid_total_reads(sample_id) valid_mapping: bool = self.is_valid_mapped_rate(metrics) valid_duplication: bool = self.is_valid_duplication_rate(metrics) @@ -57,8 +56,12 @@ def quality_control_sample(self, sample_id: str, metrics: SampleMetrics) -> Qual and valid_10x_coverage ) + sample = self.status_db.get_sample_by_internal_id(sample_id) + is_negative_control: bool = sample.control == ControlEnum.negative + return QualityResult( - sample=sample, + sample_id=sample_id, + is_negative_control=is_negative_control, passed=sample_passes_qc, ) diff --git a/cg/meta/workflow/microsalt/utils.py b/cg/meta/workflow/microsalt/utils.py index fb43a05090..9b0544e047 100644 --- a/cg/meta/workflow/microsalt/utils.py +++ b/cg/meta/workflow/microsalt/utils.py @@ -41,5 +41,5 @@ def parse_quality_metrics(file_path: Path) -> QualityMetrics: def get_negative_control_result(results: list[QualityResult]) -> QualityResult: for result in results: - if result.sample.control == ControlEnum.negative: + if result.is_negative_control: return result