Skip to content

Commit

Permalink
Patches for scout upload (#3871)
Browse files Browse the repository at this point in the history
### Fixed

 - Changed call from mip_analysis_api to analysis_api: bugfix for mip-rna
 - Remove in place manipulation for tag list: bugfix for balsamic and mip-dna (cases with multiple samples)
  • Loading branch information
rannick authored Oct 22, 2024
1 parent 3a940f3 commit 4905e93
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 12 deletions.
2 changes: 1 addition & 1 deletion cg/cli/upload/scout.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 6 additions & 1 deletion cg/meta/upload/scout/balsamic_config_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
14 changes: 8 additions & 6 deletions cg/meta/upload/scout/scout_config_builder.py
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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__)


Expand Down Expand Up @@ -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)

Expand All @@ -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."""
Expand Down
14 changes: 10 additions & 4 deletions cg/meta/upload/scout/uploadscoutapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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:
Expand Down

0 comments on commit 4905e93

Please sign in to comment.