diff --git a/cg/cli/upload/scout.py b/cg/cli/upload/scout.py index 117254abc6..a8a4064609 100644 --- a/cg/cli/upload/scout.py +++ b/cg/cli/upload/scout.py @@ -167,7 +167,7 @@ def upload_case_to_scout(context: CGConfig, re_upload: bool, dry_run: bool, case @click.pass_obj def validate_case_samples_are_rna(context: CGConfig, case_id: str) -> None: scout_upload_api: UploadScoutAPI = context.meta_apis["upload_api"].scout_upload_api - are_all_samples_rna: bool = scout_upload_api.mip_analysis_api.are_case_samples_rna(case_id) + are_all_samples_rna: bool = scout_upload_api.analysis_api.are_case_samples_rna(case_id) if not are_all_samples_rna: LOG.error(f"{case_id} has non-RNA samples - aborting.") raise click.Abort diff --git a/cg/meta/upload/scout/balsamic_config_builder.py b/cg/meta/upload/scout/balsamic_config_builder.py index c6d6da4d7b..61f8a34b3a 100644 --- a/cg/meta/upload/scout/balsamic_config_builder.py +++ b/cg/meta/upload/scout/balsamic_config_builder.py @@ -5,7 +5,12 @@ from cg.apps.lims import LimsAPI from cg.constants.constants import SampleType from cg.constants.housekeeper_tags import HK_DELIVERY_REPORT_TAG -from cg.constants.scout import BALSAMIC_CASE_TAGS, BALSAMIC_SAMPLE_TAGS, GenomeBuild, UploadTrack +from cg.constants.scout import ( + BALSAMIC_CASE_TAGS, + BALSAMIC_SAMPLE_TAGS, + GenomeBuild, + UploadTrack, +) from cg.constants.subject import PhenotypeStatus from cg.meta.upload.scout.hk_tags import CaseTags, SampleTags from cg.meta.upload.scout.scout_config_builder import ScoutConfigBuilder diff --git a/cg/meta/upload/scout/scout_config_builder.py b/cg/meta/upload/scout/scout_config_builder.py index 5cf73c785f..21092273a2 100644 --- a/cg/meta/upload/scout/scout_config_builder.py +++ b/cg/meta/upload/scout/scout_config_builder.py @@ -1,8 +1,10 @@ """Functions that handle files in the context of Scout uploading.""" import logging -from typing import Any import re +from pathlib import Path +from typing import Any + from housekeeper.store.models import File, Version from cg.apps.housekeeper.hk import HousekeeperAPI @@ -12,14 +14,12 @@ from cg.meta.upload.scout.hk_tags import CaseTags, SampleTags from cg.models.scout.scout_load_config import ( ScoutIndividual, + ScoutLoadConfig, ScoutMipIndividual, ScoutRarediseaseIndividual, - ScoutLoadConfig, ) from cg.store.models import Analysis, Case, CaseSample, Sample -from pathlib import Path - LOG = logging.getLogger(__name__) @@ -219,6 +219,7 @@ def include_sample_alignment_file(self, config_sample: ScoutIndividual) -> None: config_sample.alignment_path = self.get_sample_file( hk_tags=self.sample_tags.alignment_file, sample_id=sample_id ) + if not config_sample.alignment_path: self.include_sample_alignment_bam(config_sample) @@ -231,8 +232,9 @@ def include_sample_alignment_bam(self, config_sample: ScoutIndividual) -> None: def get_sample_file(self, hk_tags: set[str], sample_id: str) -> str | None: """Return a file that is specific for an individual from Housekeeper.""" if hk_tags: # skip if no tag found - hk_tags.add(sample_id) - return self.get_file_from_hk(hk_tags) + tags: set = hk_tags.copy() + tags.add(sample_id) + return self.get_file_from_hk(hk_tags=tags) def get_file_from_hk(self, hk_tags: set[str], latest: bool | None = False) -> str | None: """Return the Housekeeper file path as a string.""" diff --git a/cg/meta/upload/scout/uploadscoutapi.py b/cg/meta/upload/scout/uploadscoutapi.py index 39e6b53685..57d3dc46c1 100644 --- a/cg/meta/upload/scout/uploadscoutapi.py +++ b/cg/meta/upload/scout/uploadscoutapi.py @@ -11,8 +11,12 @@ from cg.apps.madeline.api import MadelineAPI from cg.apps.scout.scoutapi import ScoutAPI from cg.constants import HK_MULTIQC_HTML_TAG, Workflow -from cg.constants.constants import FileFormat, PrepCategory, GenomeVersion -from cg.constants.housekeeper_tags import AlignmentFileTag, AnalysisTag, HK_DELIVERY_REPORT_TAG +from cg.constants.constants import FileFormat, GenomeVersion, PrepCategory +from cg.constants.housekeeper_tags import ( + HK_DELIVERY_REPORT_TAG, + AlignmentFileTag, + AnalysisTag, +) from cg.constants.scout import ScoutCustomCaseReportTags from cg.exc import CgDataError, HousekeeperBundleVersionMissingError from cg.io.controller import WriteFile @@ -23,7 +27,10 @@ from cg.meta.upload.scout.rnafusion_config_builder import RnafusionConfigBuilder from cg.meta.upload.scout.scout_config_builder import ScoutConfigBuilder from cg.meta.workflow.analysis import AnalysisAPI -from cg.meta.workflow.utils.genome_build_helpers import get_genome_build, genome_to_scout_format +from cg.meta.workflow.utils.genome_build_helpers import ( + genome_to_scout_format, + get_genome_build, +) from cg.models.scout.scout_load_config import ScoutLoadConfig from cg.store.models import Analysis, Case, Customer, Sample from cg.store.store import Store @@ -769,7 +776,6 @@ def _get_application_prep_category( def get_related_uploaded_dna_cases(self, rna_case_id: str) -> set[str]: """Returns all uploaded DNA cases related to the specified RNA case.""" unique_dna_case_ids: set[str] = self.get_unique_dna_cases_related_to_rna_case(rna_case_id) - uploaded_dna_cases: set[str] = set() for dna_case_id in unique_dna_case_ids: if self.status_db.get_case_by_internal_id(dna_case_id).is_uploaded: