Skip to content

Commit

Permalink
Merge branch 'refs/heads/improve-order-flow-storing-main' into minima…
Browse files Browse the repository at this point in the history
…l-implementation
  • Loading branch information
islean committed Dec 5, 2024
2 parents 35ec084 + c07ea29 commit 409ff61
Show file tree
Hide file tree
Showing 168 changed files with 1,510 additions and 631 deletions.
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 64.5.12
current_version = 64.5.22
commit = True
tag = True
tag_name = v{new_version}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
"""add-nallo-to-analysis-options
Revision ID: 5552c02a4966
Revises: 05ffb5e13d7b
Create Date: 2024-12-02 11:35:31.725343
"""

from enum import StrEnum

from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import mysql
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column

# revision identifiers, used by Alembic.
revision = "5552c02a4966"
down_revision = "05ffb5e13d7b"
branch_labels = None
depends_on = None

base_options = (
"balsamic",
"balsamic-pon",
"balsamic-qc",
"balsamic-umi",
"demultiplex",
"raw-data",
"fluffy",
"microsalt",
"mip-dna",
"mip-rna",
"mutant",
"raredisease",
"rnafusion",
"rsync",
"spring",
"taxprofiler",
"tomte",
"jasen",
)

old_options = sorted(base_options)
new_options = sorted(base_options + ("nallo",))

old_analysis_enum = mysql.ENUM(*old_options)
new_analysis_enum = mysql.ENUM(*new_options)


class Pipeline(StrEnum):
BALSAMIC: str = "balsamic"
BALSAMIC_PON: str = "balsamic-pon"
BALSAMIC_QC: str = "balsamic-qc"
BALSAMIC_UMI: str = "balsamic-umi"
DEMULTIPLEX: str = "demultiplex"
FLUFFY: str = "fluffy"
JASEN: str = "jasen"
MICROSALT: str = "microsalt"
MIP_DNA: str = "mip-dna"
MIP_RNA: str = "mip-rna"
MUTANT: str = "mutant"
NALLO: str = "nallo"
RAREDISEASE: str = "raredisease"
RAW_DATA: str = "raw-data"
RNAFUSION: str = "rnafusion"
RSYNC: str = "rsync"
SPRING: str = "spring"
TAXPROFILER: str = "taxprofiler"
TOMTE: str = "tomte"


class Base(DeclarativeBase):
pass


class Analysis(Base):
__tablename__ = "analysis"
id = sa.Column(sa.types.Integer, primary_key=True)
workflow = sa.Column(sa.types.Enum(*list(Pipeline)))


class Case(Base):
__tablename__ = "case"
id = sa.Column(sa.types.Integer, primary_key=True)
data_analysis = sa.Column(sa.types.Enum(*list(Pipeline)))
internal_id = sa.Column(sa.types.String)


def upgrade():
op.alter_column("case", "data_analysis", type_=new_analysis_enum)
op.alter_column("analysis", "workflow", type_=new_analysis_enum)


def downgrade():
bind = op.get_bind()
session = sa.orm.Session(bind=bind)
for analysis in session.query(Analysis).filter(Analysis.workflow == "nallo"):
print(f"Changing pipeline for Case {Case.internal_id} to raw-data")
analysis.workflow = "raw-data"
for case in session.query(Case).filter(Case.data_analysis == "nallo"):
print(f"Changing data_analysis for Case {case.internal_id} to raw-data")
case.data_analysis = "raw-data"
op.alter_column("case", "data_analysis", type_=old_analysis_enum)
op.alter_column("analysis", "workflow", type_=old_analysis_enum)
session.commit()
2 changes: 1 addition & 1 deletion cg/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
__title__ = "cg"
__version__ = "64.5.12"
__version__ = "64.5.22"
4 changes: 2 additions & 2 deletions cg/apps/demultiplex/demultiplex_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from cg.constants.constants import FileFormat, Workflow
from cg.constants.demultiplexing import DemultiplexingDirsAndFiles
from cg.constants.priority import SlurmQos
from cg.constants.tb import AnalysisTypes
from cg.constants.tb import AnalysisType
from cg.exc import HousekeeperFileMissingError
from cg.io.controller import WriteFile
from cg.models.demultiplex.sbatch import SbatchCommand, SbatchError
Expand Down Expand Up @@ -210,7 +210,7 @@ def add_to_trailblazer(
)
tb_api.add_pending_analysis(
case_id=sequencing_run.id,
analysis_type=AnalysisTypes.OTHER,
analysis_type=AnalysisType.OTHER,
config_path=sequencing_run.trailblazer_config_path.as_posix(),
out_dir=sequencing_run.trailblazer_config_path.parent.as_posix(),
slurm_quality_of_service=self.slurm_quality_of_service,
Expand Down
2 changes: 1 addition & 1 deletion cg/apps/demultiplex/sample_sheet/api.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import logging
from pathlib import Path

import click
import rich_click as click

from cg.apps.demultiplex.sample_sheet.read_sample_sheet import get_samples_from_content
from cg.apps.demultiplex.sample_sheet.sample_models import IlluminaSampleIndexSetting
Expand Down
8 changes: 5 additions & 3 deletions cg/apps/orderform/orderform_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

from pydantic import BaseModel, ConfigDict, constr

from cg.apps.orderform.utils import ORDER_TYPES_WITH_CASES
from cg.constants import DataDelivery
from cg.exc import OrderFormError
from cg.models.orders.order import OrderType
Expand Down Expand Up @@ -142,10 +143,11 @@ def expand_case(case_id: str, case_samples: list[OrderSample]) -> OrderCase:

def generate_orderform(self) -> Orderform:
"""Generate an orderform"""
cases_map: dict[str, list[OrderSample]] = self.group_cases()
case_objs: list[OrderCase] = []
for case_id in cases_map:
case_objs.append(self.expand_case(case_id=case_id, case_samples=cases_map[case_id]))
if self.project_type in ORDER_TYPES_WITH_CASES:
cases_map: dict[str, list[OrderSample]] = self.group_cases()
for case_id in cases_map:
case_objs.append(self.expand_case(case_id=case_id, case_samples=cases_map[case_id]))
return Orderform(
comment=self.order_comment,
samples=self.samples,
Expand Down
11 changes: 11 additions & 0 deletions cg/apps/orderform/utils.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
from cg.models.orders.constants import OrderType
from cg.models.orders.excel_sample import ExcelSample

ORDER_TYPES_WITH_CASES = [
OrderType.BALSAMIC,
OrderType.BALSAMIC_QC,
OrderType.BALSAMIC_UMI,
OrderType.MIP_DNA,
OrderType.MIP_RNA,
OrderType.RNAFUSION,
OrderType.TOMTE,
]


def are_all_samples_metagenome(samples: list[ExcelSample]) -> bool:
"""Check if all samples are metagenome samples"""
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/add.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import logging

import click
import rich_click as click

from cg.cli.utils import CLICK_CONTEXT_SETTINGS, is_case_name_allowed
from cg.constants import DataDelivery, Priority, Workflow
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/archive.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import click
import rich_click as click
from click.core import ParameterSource

from cg.cli.utils import CLICK_CONTEXT_SETTINGS
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/backup.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from pathlib import Path
from typing import Iterable

import click
import rich_click as click
import housekeeper.store.models as hk_models

from cg.apps.housekeeper.hk import HousekeeperAPI
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import sys
from pathlib import Path

import click
import rich_click as click
import coloredlogs
from sqlalchemy.orm import scoped_session

Expand Down
2 changes: 1 addition & 1 deletion cg/cli/clean.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from datetime import datetime, timedelta
from pathlib import Path

import click
import rich_click as click
from housekeeper.store.models import File, Version

from cg.apps.housekeeper.hk import HousekeeperAPI
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/compress/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import logging

import click
import rich_click as click

from cg.cli.compress.fastq import (
clean_fastq,
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/compress/fastq.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import logging
from typing import Iterable

import click
import rich_click as click

from cg.apps.housekeeper.hk import HousekeeperAPI
from cg.cli.compress.helpers import (
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/delete/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import logging

import click
import rich_click as click

from cg.cli.delete.case import delete_case
from cg.cli.delete.cases import delete_cases
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/delete/case.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import datetime
import logging

import click
import rich_click as click

from cg.cli.get import get_case as print_case
from cg.constants.cli_options import DRY_RUN, SKIP_CONFIRMATION
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/delete/cases.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import logging

import click
import rich_click as click

from cg.cli.delete.case import delete_case
from cg.constants.cli_options import DRY_RUN
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/delete/illumina_sequencing_run.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import click
import rich_click as click

from cg.constants.cli_options import DRY_RUN
from cg.services.illumina.post_processing.housekeeper_storage import (
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/delete/observations.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import logging

import click
import rich_click as click
from sqlalchemy.orm import Query

from cg.cli.upload.observations.utils import get_observations_api
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/deliver/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import logging
from pathlib import Path

import click
import rich_click as click

from cg.apps.tb import TrailblazerAPI
from cg.cli.deliver.utils import deliver_raw_data_for_analyses
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/demultiplex/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import logging

import click
import rich_click as click

from cg.cli.utils import CLICK_CONTEXT_SETTINGS
from cg.cli.demultiplex.demux import (
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/demultiplex/demux.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from glob import glob
from pathlib import Path

import click
import rich_click as click
from pydantic import ValidationError

from cg.apps.demultiplex.demultiplex_api import DemultiplexingAPI
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/demultiplex/finish.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import logging
from pathlib import Path

import click
import rich_click as click

from cg.cli.utils import CLICK_CONTEXT_SETTINGS
from cg.constants.cli_options import DRY_RUN, FORCE
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/demultiplex/sample_sheet.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import logging
from pathlib import Path

import click
import rich_click as click
from pydantic import ValidationError

from cg.apps.demultiplex.sample_sheet.api import IlluminaSampleSheetService
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/downsample.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from pathlib import Path
from typing import Tuple

import click
import rich_click as click

from cg.apps.downsample.downsample import DownsampleAPI
from cg.apps.downsample.utils import store_downsampled_sample_bundle
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/generate/base.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""Common CLI file generation functions"""

import click
import rich_click as click

from cg.cli.generate.delivery_report.base import (
generate_available_delivery_reports,
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/generate/delivery_report/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from datetime import datetime
from pathlib import Path

import click
import rich_click as click
from housekeeper.store.models import Version

from cg.cli.generate.delivery_report.options import (
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/generate/delivery_report/options.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""Delivery report specific command options."""

import click
import rich_click as click

from cg.constants import REPORT_SUPPORTED_WORKFLOW

Expand Down
2 changes: 1 addition & 1 deletion cg/cli/generate/delivery_report/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import logging
from datetime import datetime

import click
import rich_click as click

from cg.constants import REPORT_SUPPORTED_DATA_DELIVERY, REPORT_SUPPORTED_WORKFLOW, Workflow
from cg.meta.delivery_report.balsamic import BalsamicDeliveryReportAPI
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/get.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import re
from typing import Iterable

import click
import rich_click as click
from tabulate import tabulate

from cg.cli.utils import CLICK_CONTEXT_SETTINGS
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/post_process/post_process.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import logging

import click
import rich_click as click

from cg.cli.post_process.utils import (
UnprocessedRunInfo,
Expand Down
2 changes: 1 addition & 1 deletion cg/cli/sequencing_qc/sequencing_qc.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import logging
import click
import rich_click as click

from cg.models.cg_config import CGConfig
from cg.services.sequencing_qc_service.sequencing_qc_service import SequencingQCService
Expand Down
Loading

0 comments on commit 409ff61

Please sign in to comment.