cg 83.16.4__tar.gz → 83.17.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cg-83.16.4 → cg-83.17.0}/PKG-INFO +1 -1
- cg-83.17.0/cg/__init__.py +2 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/post_process/post_process.py +8 -8
- {cg-83.16.4 → cg-83.17.0}/cg/cli/post_process/utils.py +12 -12
- {cg-83.16.4 → cg-83.17.0}/cg/server/admin.py +7 -7
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/abstract_classes.py +4 -4
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/data_storage_service/pacbio_store_service.py +3 -3
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/data_transfer_service/dto.py +2 -2
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/data_transfer_service/utils.py +2 -2
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/housekeeper_service/pacbio_houskeeper_service.py +1 -1
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/metrics_parser/metrics_parser.py +1 -1
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/post_processing_service.py +17 -12
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/run_data_generator/pacbio_run_data_generator.py +11 -9
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/run_data_generator/run_data.py +1 -1
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/sequencing_runs_service.py +10 -11
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/run_names/pacbio.py +2 -2
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/run_names/service.py +1 -1
- {cg-83.16.4 → cg-83.17.0}/cg/store/crud/create.py +4 -4
- {cg-83.16.4 → cg-83.17.0}/cg/store/crud/read.py +16 -17
- {cg-83.16.4 → cg-83.17.0}/cg/store/models.py +3 -3
- {cg-83.16.4 → cg-83.17.0}/pyproject.toml +1 -1
- cg-83.16.4/cg/__init__.py +0 -2
- {cg-83.16.4 → cg-83.17.0}/README.md +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/coverage/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/coverage/api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/crunchy/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/crunchy/crunchy.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/crunchy/files.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/crunchy/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/crunchy/sbatch.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/demultiplex_api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/sample_sheet/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/sample_sheet/api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/sample_sheet/index.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/sample_sheet/override_cycles_validator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/sample_sheet/read_sample_sheet.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/sample_sheet/sample_models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/sample_sheet/sample_sheet_creator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/sample_sheet/sample_sheet_models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/sample_sheet/sample_sheet_validator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/sample_sheet/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/sample_sheet/validators.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/demultiplex/sbatch.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/downsample/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/downsample/downsample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/downsample/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/environ.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/gens.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/gt.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/hermes/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/hermes/hermes_api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/hermes/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/housekeeper/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/housekeeper/hk.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/housekeeper/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/invoice/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/invoice/render.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/invoice/templates/KI_pool_invoice.xlsx +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/invoice/templates/KI_sample_invoice.xlsx +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/invoice/templates/KTH_pool_invoice.xlsx +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/invoice/templates/KTH_sample_invoice.xlsx +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/lims/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/lims/api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/lims/batch.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/lims/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/lims/sample_sheet.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/loqus.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/madeline/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/madeline/api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/mip/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/mip/confighandler.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/mutacc_auto.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/orderform/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/orderform/excel_orderform_parser.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/orderform/json_orderform_parser.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/orderform/orderform_parser.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/orderform/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/scout/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/scout/scout_export.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/scout/scoutapi.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/scout/validators.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/slurm/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/slurm/sbatch.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/slurm/slurm_api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/tb/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/tb/api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/tb/dto/create_job_request.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/tb/dto/summary_response.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/tb/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/apps/tb/validators.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/add.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/archive.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/backup.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/clean.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/compress/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/compress/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/compress/fastq.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/compress/helpers.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/delete/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/delete/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/delete/case.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/delete/cases.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/delete/illumina_sequencing_run.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/delete/observations.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/deliver/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/deliver/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/deliver/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/demultiplex/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/demultiplex/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/demultiplex/copy_novaseqx_demultiplex_data.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/demultiplex/demux.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/demultiplex/finish.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/demultiplex/sample_sheet.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/downsample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/generate/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/generate/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/generate/delivery_report/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/generate/delivery_report/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/generate/delivery_report/options.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/generate/delivery_report/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/get.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/post_process/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/sequencing_qc/sequencing_qc.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/set/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/set/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/set/case.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/set/cases.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/store/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/store/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/store/store.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/transfer.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/coverage.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/delivery_report.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/fohm.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/genotype.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/gens.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/gisaid.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/mutacc.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/nipt/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/nipt/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/nipt/ftp.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/nipt/statina.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/observations/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/observations/observations.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/observations/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/scout.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/upload/validate.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/balsamic/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/balsamic/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/balsamic/options.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/balsamic/pon.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/balsamic/umi.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/commands.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/fluffy/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/fluffy/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/jasen/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/jasen/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/microsalt/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/microsalt/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/mip/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/mip/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/mip/options.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/mip_dna/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/mip_dna/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/mip_rna/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/mip_rna/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/mutant/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/mutant/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/nallo/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/nallo/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/nf_analysis.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/raredisease/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/raredisease/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/raw_data/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/raw_data/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/raw_data/raw_data_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/rnafusion/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/rnafusion/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/taxprofiler/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/taxprofiler/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/tomte/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/cli/workflow/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/arnold/api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/arnold/dto/create_case_request.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/arnold/exceptions.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/chanjo2/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/chanjo2/client.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/chanjo2/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/chanjo2/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/freshdesk/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/freshdesk/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/freshdesk/exceptions.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/freshdesk/freshdesk_client.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/freshdesk/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/freshdesk/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/janus/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/janus/api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/janus/dto/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/janus/dto/create_qc_metrics_request.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/clients/janus/exceptions.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/archiving.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/backup.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/cli_options.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/compression.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/delivery.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/demultiplexing.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/devices.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/encryption.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/extraction.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/file_transfer_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/gene_panel.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/housekeeper_tags.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/invoice.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/lims.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/metrics.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/nextflow.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/nf_analysis.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/nipt.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/observations.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/orderforms.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/pacbio.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/paths.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/pdc.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/pedigree.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/priority.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/process.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/report.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/sample_sources.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/scout.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/sequencing.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/slurm.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/subject.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/symbols.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/constants/tb.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/exc.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/io/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/io/api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/io/controller.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/io/csv.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/io/gzip.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/io/json.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/io/png.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/io/txt.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/io/validate_path.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/io/xml.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/io/yaml.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/archive/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/archive/archive.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/archive/ddn/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/archive/ddn/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/archive/ddn/ddn_data_flow_client.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/archive/ddn/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/archive/ddn/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/archive/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/backup/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/backup/backup.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/clean/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/clean/api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/clean/clean_retrieved_spring_files.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/compress/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/compress/compress.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/compress/files.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery/delivery.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/balsamic.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/balsamic_umi.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/data_validators.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/delivery_report_api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/mip_dna.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/nallo.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/raredisease.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/rnafusion.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/taxprofiler.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/delivery-report.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/data_analysis/data_analysis.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/data_analysis/limitations.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/balsamic_qc_metrics.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/mip_dna_qc_metrics.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/nallo_qc_metrics.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/qc_metrics.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/raredisease_qc_metrics.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/rnafusion_qc_metrics.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/tomte_qc_metrics.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/header.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/order.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/sample_prep.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/ticket_system.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/uploaded_files/balsamic_uploaded_files.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/uploaded_files/mip_dna_uploaded_files.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/uploaded_files/nallo_uploaded_files.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/uploaded_files/raredisease_uploaded_files.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/uploaded_files/rnafusion_uploaded_files.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/macros/uploaded_files/uploaded_files.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/partials/footer.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/partials/signature.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/static/css/bootstrap.min.css +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/static/css/custom.css +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/templates/static/images/SWEDAC_logo.png +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/delivery_report/tomte.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/encryption/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/encryption/encryption.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/encryption/sbatch.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/invoice.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/meta.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/observations/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/observations/balsamic_observations_api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/observations/mip_dna_observations_api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/observations/nallo_observations_api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/observations/observations_api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/observations/raredisease_observations_api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/orders/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/qc_metrics/collect_qc_metrics.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/tar/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/tar/tar.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/transfer/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/transfer/external_data.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/transfer/lims.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/transfer/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/balsamic/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/balsamic/balsamic.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/coverage.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/error_handling.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/fohm/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/fohm/fohm.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/gisaid/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/gisaid/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/gisaid/gisaid.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/gisaid/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/gt.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/microsalt/microsalt_upload_api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/mip/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/mip/mip_dna.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/mip/mip_rna.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/mutacc.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/mutant/mutant.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/nallo/nallo.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/nf_analysis.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/nipt/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/nipt/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/nipt/nipt.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/raredisease/raredisease.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/scout/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/scout/balsamic_config_builder.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/scout/balsamic_umi_config_builder.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/scout/hk_tags.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/scout/mip_config_builder.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/scout/nallo_config_builder.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/scout/raredisease_config_builder.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/scout/rnafusion_config_builder.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/scout/scout_config_builder.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/scout/uploadscoutapi.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/tomte/tomte.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/upload/upload_api.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/analysis.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/balsamic.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/balsamic_pon.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/balsamic_umi.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/downsample/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/downsample/downsample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/downsample/sbatch.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/fastq.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/fluffy.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/jasen.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/microsalt/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/microsalt/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/microsalt/metrics_parser/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/microsalt/metrics_parser/metrics_parser.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/microsalt/metrics_parser/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/microsalt/microsalt.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/microsalt/quality_controller/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/microsalt/quality_controller/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/microsalt/quality_controller/quality_controller.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/microsalt/quality_controller/report_generator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/microsalt/quality_controller/result_logger.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/microsalt/quality_controller/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/microsalt/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/mip.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/mip_dna.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/mip_rna.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/mutant/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/mutant/mutant.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/mutant/quality_controller/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/mutant/quality_controller/metrics_parser_utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/mutant/quality_controller/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/mutant/quality_controller/quality_controller.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/mutant/quality_controller/report_generator_utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/mutant/quality_controller/result_logger_utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/mutant/quality_controller/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/nallo.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/nf_analysis.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/prepare_fastq.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/raredisease.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/rnafusion.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/taxprofiler.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/tomte.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/meta/workflow/utils/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/analysis.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/balsamic/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/balsamic/analysis.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/balsamic/config.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/balsamic/metrics.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/cg_config.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/compression_data.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/deliverables/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/deliverables/metric_deliverables.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/delivery/delivery.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/delivery_report/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/delivery_report/metadata.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/delivery_report/report.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/delivery_report/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/delivery_report/validators.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/demultiplex/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/demultiplex/run_parameters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/demultiplex/sbatch.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/downsample/downsample_data.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/email.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/fastq.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/file_data.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/fohm/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/fohm/reports.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/invoice/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/invoice/invoice.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/lims/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/lims/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/mip/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/mip/mip_analysis.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/mip/mip_config.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/mip/mip_metrics_deliverables.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/mip/mip_sample_info.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/nallo/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/nallo/nallo.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/nf_analysis.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/observations/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/observations/input_files.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/orders/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/orders/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/orders/excel_sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/orders/json_sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/orders/orderform_schema.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/orders/sample_base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/orders/validators/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/orders/validators/excel_sample_validators.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/orders/validators/json_sample_validators.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/orders/validators/sample_base_validators.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/qc_metrics.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/raredisease/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/raredisease/raredisease.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/rnafusion/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/rnafusion/rnafusion.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/run_devices/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/run_devices/illumina_run_directory_data.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/run_devices/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/scout/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/scout/scout_load_config.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/scout/validators.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/slurm/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/slurm/sbatch.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/taxprofiler/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/taxprofiler/taxprofiler.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/tomte/tomte.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/workflow/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/workflow/mutant.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/models/workflow/validators.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/resources/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/resources/nallo_bundle_filenames.yaml +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/resources/raredisease_bundle_filenames.yaml +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/resources/rnafusion_bundle_filenames.yaml +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/resources/taxprofiler_bundle_filenames.yaml +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/resources/tomte_bundle_filenames.yaml +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/app.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/app_config.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/auto.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/dto/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/dto/cases/requests.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/dto/delivery_message/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/dto/delivery_message/delivery_message_request.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/dto/delivery_message/delivery_message_response.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/dto/orders/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/dto/orders/order_delivery_update_request.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/dto/orders/order_patch_request.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/dto/orders/orders_request.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/dto/orders/orders_response.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/dto/samples/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/dto/samples/requests.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/dto/samples/samples_response.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/analyses.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/applications.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/cases.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/error_handler.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/index_sequences.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/orders.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/pools.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/samples.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/sequencing_metrics/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/sequencing_metrics/dtos.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/sequencing_metrics/error_handler.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/sequencing_metrics/illumina_sequencing_metrics.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/sequencing_metrics/pacbio_sequencing_metrics.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/sequencing_run/dtos.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/sequencing_run/pacbio_sequencing_run.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/sequencing_run/pacbio_smrt_cell_metrics.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/users.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/endpoints/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/ext.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/invoices/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/invoices/templates/invoices/index.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/invoices/templates/invoices/invoice.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/invoices/templates/invoices/layout.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/invoices/templates/invoices/new.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/invoices/views.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/templates/admin/index.html +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/server/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_service/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_service/analysis_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/analysis_starter.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/abstract_model.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/configurator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/extensions/nallo.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/extensions/pipeline_extension.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/extensions/raredisease.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/extensions/tomte_extension.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/balsamic_config.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/gene_panel.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/managed_variants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/microsalt_config.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/mip_dna_config.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/config_file.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/abstract.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/nallo.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/raredisease.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/rnafusion.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/taxprofiler.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/tomte_params_file_creator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/creator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/nallo_sample_sheet_creator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/protocol.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/raredisease_sample_sheet_creator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/rnafusion_sample_sheet_creator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/taxprofiler_sample_sheet_creator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/tomte_sample_sheet_creator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/implementations/balsamic.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/implementations/microsalt.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/implementations/mip_dna.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/implementations/nextflow.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/models/balsamic.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/models/microsalt.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/models/mip_dna.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/configurator/models/nextflow.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/factories/configurator_factory.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/factories/starter_factory.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/input_fetcher/implementations/bam_fetcher.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/input_fetcher/implementations/fastq_fetcher.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/input_fetcher/input_fetcher.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/submitters/seqera_platform/dtos.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/submitters/seqera_platform/seqera_platform_client.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/submitters/seqera_platform/seqera_platform_submitter.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/submitters/submitter.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/submitters/subprocess/commands.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/submitters/subprocess/submitter.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/tracker/implementations/balsamic.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/tracker/implementations/microsalt.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/tracker/implementations/mip_dna.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/tracker/implementations/nextflow_tracker.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/analysis_starter/tracker/tracker.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/decompression_service/decompressor.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/deliver_files_service/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/deliver_files_service/deliver_files_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/deliver_files_service/error_handling.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/deliver_files_service/exc.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/factory.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_fetcher/abstract.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_fetcher/analysis_raw_data_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_fetcher/analysis_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_fetcher/error_handling.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_fetcher/exc.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_fetcher/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_fetcher/raw_data_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/destination/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/destination/abstract.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/destination/base_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/destination/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/files/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/files/abstract.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/files/case_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/files/concatenation_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/files/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/files/mutant_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/files/sample_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/path_name/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/path_name/abstract.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/path_name/flat_structure.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_formatter/path_name/nested_structure.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_mover/abstract.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_mover/base_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/file_mover/customer_inbox_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/rsync/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/rsync/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/rsync/sbatch_commands.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/rsync/service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/tag_fetcher/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/tag_fetcher/abstract.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/tag_fetcher/error_handling.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/tag_fetcher/exc.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/tag_fetcher/fohm_upload_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/tag_fetcher/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/tag_fetcher/sample_and_case_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/deliver_files/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/delivery_message_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/analysis_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/analysis_scout_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/bam_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/covid_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/delivery_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/fastq_analysis_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/fastq_analysis_scout_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/fastq_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/fastq_scout_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/microsalt_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/order_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/raw_data_analysis_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/raw_data_analysis_scout_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/raw_data_scout_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/rna_delivery_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/scout_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/statina_message.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/messages/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/delivery_message/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/fastq_concatenation_service/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/fastq_concatenation_service/exceptions.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/fastq_concatenation_service/fastq_concatenation_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/fastq_concatenation_service/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/backup/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/backup/backup_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/backup/encrypt_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/backup/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/backup/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/backup/validators.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/cleaning/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/cleaning/clean_runs_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/data_transfer/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/data_transfer/data_transfer_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/data_transfer/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/file_parsing/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/file_parsing/bcl_convert_metrics_parser.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/file_parsing/demux_version_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/file_parsing/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/file_parsing/sequencing_times/collect_sequencing_times.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/file_parsing/sequencing_times/hiseq_2500_sequencing_times_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/file_parsing/sequencing_times/hiseq_x_sequencing_times_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/file_parsing/sequencing_times/novaseq_6000_sequencing_times.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/file_parsing/sequencing_times/novaseq_x_sequencing_times_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/file_parsing/sequencing_times/sequencing_time_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/post_processing/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/post_processing/housekeeper_storage.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/post_processing/post_processing_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/post_processing/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/illumina/post_processing/validation.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/lims_service/service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/order_service/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/order_service/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/order_service/order_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/order_summary_service/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/order_summary_service/dto/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/order_summary_service/dto/order_summary.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/order_summary_service/order_summary_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/order_summary_service/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/storing/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/storing/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/storing/implementations/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/storing/implementations/case_order_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/storing/implementations/fastq_order_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/storing/implementations/metagenome_order_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/storing/implementations/microbial_fastq_order_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/storing/implementations/microbial_order_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/storing/implementations/pacbio_order_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/storing/implementations/pool_order_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/storing/implementations/taxprofiler_order_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/storing/service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/storing/service_registry.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/submitter/service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/submitter/ticket_handler.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/errors/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/errors/case_errors.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/errors/case_sample_errors.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/errors/order_errors.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/errors/sample_errors.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/errors/validation_errors.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/index_sequences.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/model_validator/model_validator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/model_validator/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/models/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/models/case.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/models/case_aliases.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/models/discriminators.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/models/existing_case.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/models/existing_sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/models/order_aliases.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/models/order_with_cases.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/models/order_with_samples.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/models/sample_aliases.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/models/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_type_maps.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/balsamic/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/balsamic/models/case.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/balsamic/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/balsamic/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/balsamic/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/balsamic_umi/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/balsamic_umi/models/case.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/balsamic_umi/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/balsamic_umi/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/balsamic_umi/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/fastq/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/fastq/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/fastq/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/fastq/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/fluffy/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/fluffy/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/fluffy/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/fluffy/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/metagenome/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/metagenome/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/metagenome/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/metagenome/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/microbial_fastq/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/microbial_fastq/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/microbial_fastq/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/microbial_fastq/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/microsalt/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/microsalt/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/microsalt/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/microsalt/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mip_dna/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mip_dna/models/case.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mip_dna/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mip_dna/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mip_dna/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mip_rna/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mip_rna/models/case.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mip_rna/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mip_rna/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mip_rna/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mutant/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mutant/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mutant/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/mutant/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/nallo/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/nallo/models/case.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/nallo/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/nallo/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/nallo/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/order_validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/pacbio_long_read/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/pacbio_long_read/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/pacbio_long_read/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/pacbio_long_read/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/raredisease/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/raredisease/models/case.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/raredisease/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/raredisease/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/raredisease/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/rml/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/rml/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/rml/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/rml/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/rna_fusion/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/rna_fusion/models/case.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/rna_fusion/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/rna_fusion/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/rna_fusion/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/taxprofiler/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/taxprofiler/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/taxprofiler/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/taxprofiler/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/tomte/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/tomte/models/case.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/tomte/models/order.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/tomte/models/sample.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/order_types/tomte/validation_rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/response_mapper.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/case/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/case/rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/case/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/case_sample/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/case_sample/pedigree/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/case_sample/pedigree/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/case_sample/pedigree/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/case_sample/pedigree/validate_pedigree.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/case_sample/rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/case_sample/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/order/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/order/rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/sample/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/sample/rules.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/sample/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/rules/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/orders/validation/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/pdc_service/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/pdc_service/pdc_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/abstract_models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/constants.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/error_handler.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/exc.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/data_transfer_service/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/data_transfer_service/data_transfer_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/housekeeper_service/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/metrics_parser/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/metrics_parser/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/metrics_parser/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/run_file_manager/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/run_file_manager/run_file_manager.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/pacbio/run_validator/pacbio_run_validator.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/run_names/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/run_devices/validators.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/sample_run_metrics_service/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/sample_run_metrics_service/dtos.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/sample_run_metrics_service/sample_run_metrics_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/sample_run_metrics_service/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/sequencing_qc_service/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/sequencing_qc_service/quality_checks/checks.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/sequencing_qc_service/quality_checks/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/sequencing_qc_service/sequencing_qc_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/sequencing_qc_service/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/slurm_service/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/slurm_service/slurm_cli_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/slurm_service/slurm_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/slurm_upload_service/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/slurm_upload_service/slurm_upload_config.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/slurm_upload_service/slurm_upload_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/slurm_upload_service/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/validate_file_transfer_service/validate_file_transfer_service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/web_services/application/models.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/web_services/application/service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/web_services/case/service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/web_services/sample/dto_mappers.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/web_services/sample/service.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/services/web_services/sample/utils.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/api/data_classes.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/base.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/crud/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/crud/delete.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/crud/update.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/database.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/exc.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_analysis_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_application_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_application_limitations_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_application_version_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_bed_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_bed_version_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_case_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_case_sample_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_collaboration_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_customer_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_illumina_flow_cell_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_illumina_metrics_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_illumina_sequencing_run_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_invoice_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_order_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_ordertype_application_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_organism_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_pacbio_smrt_cell_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_panel_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_pool_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_sample_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/filters/status_user_filters.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/store/store.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/calculations.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/checksum/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/checksum/checksum.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/click/EnumChoice.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/click/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/commands.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/date.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/dict.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/email.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/enums.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/files.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/flask/__init__.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/flask/enum.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/mapping.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/time.py +0 -0
- {cg-83.16.4 → cg-83.17.0}/cg/utils/utils.py +0 -0
|
@@ -6,7 +6,7 @@ import rich_click as click
|
|
|
6
6
|
|
|
7
7
|
from cg.cli.post_process.utils import (
|
|
8
8
|
UnprocessedRunInfo,
|
|
9
|
-
|
|
9
|
+
get_post_processing_service_from_run_full_name,
|
|
10
10
|
get_unprocessed_runs_info,
|
|
11
11
|
)
|
|
12
12
|
from cg.cli.utils import CLICK_CONTEXT_SETTINGS
|
|
@@ -25,18 +25,18 @@ def post_process_group():
|
|
|
25
25
|
|
|
26
26
|
@post_process_group.command(name="run")
|
|
27
27
|
@DRY_RUN
|
|
28
|
-
@click.argument("run-name")
|
|
28
|
+
@click.argument("run-full-name")
|
|
29
29
|
@click.pass_obj
|
|
30
|
-
def post_process_run(context: CGConfig,
|
|
30
|
+
def post_process_run(context: CGConfig, run_full_name: str, dry_run: bool) -> None:
|
|
31
31
|
"""Post-process a sequencing run from the PacBio instrument.
|
|
32
32
|
|
|
33
|
-
run-name is the full name of the sequencing unit of run. For example:
|
|
33
|
+
run-full-name is the full name of the sequencing unit of run. For example:
|
|
34
34
|
PacBio: 'r84202_20240522_133539/1_A01'
|
|
35
35
|
"""
|
|
36
|
-
post_processing_service: PostProcessingService =
|
|
37
|
-
context=context,
|
|
36
|
+
post_processing_service: PostProcessingService = get_post_processing_service_from_run_full_name(
|
|
37
|
+
context=context, run_full_name=run_full_name
|
|
38
38
|
)
|
|
39
|
-
post_processing_service.post_process(
|
|
39
|
+
post_processing_service.post_process(run_full_name=run_full_name, dry_run=dry_run)
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
@post_process_group.command(name="all")
|
|
@@ -58,7 +58,7 @@ def post_process_all_runs(context: CGConfig, instrument: str, dry_run: bool) ->
|
|
|
58
58
|
)
|
|
59
59
|
for run in unprocessed_runs:
|
|
60
60
|
try:
|
|
61
|
-
run.post_processing_service.post_process(
|
|
61
|
+
run.post_processing_service.post_process(run_full_name=run.name, dry_run=dry_run)
|
|
62
62
|
except Exception as error:
|
|
63
63
|
LOG.error(f"Could not post-process {run.instrument} run {run.name}: {error}")
|
|
64
64
|
exit_success = False
|
|
@@ -25,17 +25,17 @@ class UnprocessedRunInfo(BaseModel):
|
|
|
25
25
|
model_config = ConfigDict(arbitrary_types_allowed=True)
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
def
|
|
29
|
-
context: CGConfig,
|
|
28
|
+
def get_post_processing_service_from_run_full_name(
|
|
29
|
+
context: CGConfig, run_full_name: str
|
|
30
30
|
) -> PacBioPostProcessingService:
|
|
31
|
-
"""Get the correct post-processing service based on the run name."""
|
|
31
|
+
"""Get the correct post-processing service based on the run full name."""
|
|
32
32
|
try:
|
|
33
33
|
device: str = get_item_by_pattern_in_source(
|
|
34
|
-
source=
|
|
34
|
+
source=run_full_name, pattern_map=PATTERN_TO_DEVICE_MAP
|
|
35
35
|
)
|
|
36
36
|
except CgError as error:
|
|
37
37
|
raise NameError(
|
|
38
|
-
f"Run name {
|
|
38
|
+
f"Run name {run_full_name} does not match with any known sequencing run name pattern"
|
|
39
39
|
) from error
|
|
40
40
|
return getattr(context.post_processing_services, device)
|
|
41
41
|
|
|
@@ -48,7 +48,7 @@ def get_unprocessed_runs_info(context: CGConfig, instrument: str) -> list[Unproc
|
|
|
48
48
|
run_names_service: RunNamesService = getattr(context.run_names_services, instrument_name)
|
|
49
49
|
runs.extend(
|
|
50
50
|
_get_unprocessed_runs_from_run_names(
|
|
51
|
-
|
|
51
|
+
run_full_names=run_names_service.get_run_full_names(),
|
|
52
52
|
post_processing_service=getattr(context.post_processing_services, instrument_name),
|
|
53
53
|
instrument_name=instrument_name,
|
|
54
54
|
)
|
|
@@ -63,18 +63,18 @@ def _instruments_to_check(instrument: str) -> list[str]:
|
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
def _get_unprocessed_runs_from_run_names(
|
|
66
|
-
|
|
66
|
+
run_full_names: list[str], post_processing_service: PostProcessingService, instrument_name
|
|
67
67
|
) -> list[UnprocessedRunInfo]:
|
|
68
68
|
LOG.debug(f"Adding {instrument_name} run names to the post-processing list")
|
|
69
69
|
runs: list[UnprocessedRunInfo] = []
|
|
70
|
-
for
|
|
71
|
-
if post_processing_service.is_run_processed(
|
|
72
|
-
LOG.debug(f"Run {
|
|
70
|
+
for full_name in run_full_names:
|
|
71
|
+
if post_processing_service.is_run_processed(full_name):
|
|
72
|
+
LOG.debug(f"Run {full_name} has already been post-processed. Skipping")
|
|
73
73
|
continue
|
|
74
|
-
if post_processing_service.can_post_processing_start(
|
|
74
|
+
if post_processing_service.can_post_processing_start(full_name):
|
|
75
75
|
runs.append(
|
|
76
76
|
UnprocessedRunInfo(
|
|
77
|
-
name=
|
|
77
|
+
name=full_name,
|
|
78
78
|
post_processing_service=post_processing_service,
|
|
79
79
|
instrument=instrument_name,
|
|
80
80
|
)
|
|
@@ -911,7 +911,7 @@ class PacbioSmrtCellMetricsView(BaseView):
|
|
|
911
911
|
|
|
912
912
|
column_list = (
|
|
913
913
|
"internal_id",
|
|
914
|
-
"sequencing_run.
|
|
914
|
+
"sequencing_run.run_id",
|
|
915
915
|
"movie_name",
|
|
916
916
|
"well",
|
|
917
917
|
"plate",
|
|
@@ -935,9 +935,9 @@ class PacbioSmrtCellMetricsView(BaseView):
|
|
|
935
935
|
"internal_id": view_pacbio_sample_sequencing_metrics_link,
|
|
936
936
|
"model": view_smrt_cell_model,
|
|
937
937
|
}
|
|
938
|
-
column_labels = {"sequencing_run.
|
|
938
|
+
column_labels = {"sequencing_run.run_id": "Run ID"}
|
|
939
939
|
column_default_sort = ("completed_at", True)
|
|
940
|
-
column_searchable_list = ["device.internal_id", "movie_name", "sequencing_run.
|
|
940
|
+
column_searchable_list = ["device.internal_id", "movie_name", "sequencing_run.run_id"]
|
|
941
941
|
column_sortable_list = [
|
|
942
942
|
("internal_id", "device.internal_id"),
|
|
943
943
|
"started_at",
|
|
@@ -967,7 +967,7 @@ class PacbioSmrtCellMetricsView(BaseView):
|
|
|
967
967
|
class PacbioSampleRunMetricsView(BaseView):
|
|
968
968
|
column_filters = [
|
|
969
969
|
"instrument_run.plate",
|
|
970
|
-
"instrument_run.sequencing_run.
|
|
970
|
+
"instrument_run.sequencing_run.run_id",
|
|
971
971
|
]
|
|
972
972
|
column_formatters = {
|
|
973
973
|
"smrt_cell": PacbioSmrtCellMetricsView.view_smrt_cell_link,
|
|
@@ -975,12 +975,12 @@ class PacbioSampleRunMetricsView(BaseView):
|
|
|
975
975
|
}
|
|
976
976
|
column_labels = {
|
|
977
977
|
"instrument_run.plate": "Plate",
|
|
978
|
-
"instrument_run.sequencing_run.
|
|
978
|
+
"instrument_run.sequencing_run.run_id": "Run ID",
|
|
979
979
|
}
|
|
980
980
|
column_list = [
|
|
981
981
|
"smrt_cell",
|
|
982
982
|
"sample",
|
|
983
|
-
"instrument_run.sequencing_run.
|
|
983
|
+
"instrument_run.sequencing_run.run_id",
|
|
984
984
|
"instrument_run.plate",
|
|
985
985
|
"hifi_reads",
|
|
986
986
|
"hifi_yield",
|
|
@@ -990,5 +990,5 @@ class PacbioSampleRunMetricsView(BaseView):
|
|
|
990
990
|
column_searchable_list = [
|
|
991
991
|
"sample.internal_id",
|
|
992
992
|
"instrument_run.device.internal_id",
|
|
993
|
-
"instrument_run.sequencing_run.
|
|
993
|
+
"instrument_run.sequencing_run.run_id",
|
|
994
994
|
]
|
|
@@ -14,7 +14,7 @@ class RunDataGenerator(ABC):
|
|
|
14
14
|
"""Abstract class that holds functionality to create a run data object."""
|
|
15
15
|
|
|
16
16
|
@abstractmethod
|
|
17
|
-
def get_run_data(self,
|
|
17
|
+
def get_run_data(self, run_full_name: str, sequencing_dir: str) -> RunData:
|
|
18
18
|
"""Get the run data for a sequencing run."""
|
|
19
19
|
pass
|
|
20
20
|
|
|
@@ -87,17 +87,17 @@ class PostProcessingService(ABC):
|
|
|
87
87
|
"""Abstract class that encapsulates the logic required for post-processing a sequencing run."""
|
|
88
88
|
|
|
89
89
|
@abstractmethod
|
|
90
|
-
def post_process(self,
|
|
90
|
+
def post_process(self, run_full_name: str, dry_run: bool = False):
|
|
91
91
|
"""Store sequencing metrics in StatusDB and relevant files in Housekeeper."""
|
|
92
92
|
pass
|
|
93
93
|
|
|
94
94
|
@abstractmethod
|
|
95
|
-
def is_run_processed(self,
|
|
95
|
+
def is_run_processed(self, run_full_name: str) -> bool:
|
|
96
96
|
"""Check if a run has been post-processed."""
|
|
97
97
|
pass
|
|
98
98
|
|
|
99
99
|
@abstractmethod
|
|
100
|
-
def can_post_processing_start(self,
|
|
100
|
+
def can_post_processing_start(self, run_full_name: str) -> bool:
|
|
101
101
|
"""Check if a run can be post processed."""
|
|
102
102
|
pass
|
|
103
103
|
|
|
@@ -41,8 +41,8 @@ class PacBioStoreService(PostProcessingStoreService):
|
|
|
41
41
|
try:
|
|
42
42
|
return self.store.create_pacbio_sequencing_run(sequencing_run_dto)
|
|
43
43
|
except PacbioSequencingRunAlreadyExistsError:
|
|
44
|
-
LOG.debug(f"Sequencing run {sequencing_run_dto.
|
|
45
|
-
return self.store.
|
|
44
|
+
LOG.debug(f"Sequencing run {sequencing_run_dto.run_id} already exists")
|
|
45
|
+
return self.store.get_pacbio_sequencing_run_by_run_id(sequencing_run_dto.run_id)
|
|
46
46
|
|
|
47
47
|
def _create_pacbio_smrt_cell_metrics(
|
|
48
48
|
self,
|
|
@@ -108,5 +108,5 @@ class PacBioStoreService(PostProcessingStoreService):
|
|
|
108
108
|
f"Dry run, no entries will be added to database for SMRT cell {run_data.full_path}."
|
|
109
109
|
)
|
|
110
110
|
return
|
|
111
|
-
LOG.debug(f"Data stored in statusDB for run {run_data.
|
|
111
|
+
LOG.debug(f"Data stored in statusDB for run {run_data.run_id}")
|
|
112
112
|
self.store.commit_to_store()
|
|
@@ -12,7 +12,7 @@ class PacBioSMRTCellMetricsDTO(BaseModel):
|
|
|
12
12
|
type: DeviceType
|
|
13
13
|
well: str
|
|
14
14
|
plate: int
|
|
15
|
-
|
|
15
|
+
run_id: str
|
|
16
16
|
movie_name: str
|
|
17
17
|
started_at: datetime
|
|
18
18
|
completed_at: datetime
|
|
@@ -64,7 +64,7 @@ class PacBioSampleSequencingMetricsDTO(BaseModel):
|
|
|
64
64
|
|
|
65
65
|
class PacBioSequencingRunDTO(BaseModel):
|
|
66
66
|
instrument_name: RevioNames
|
|
67
|
-
|
|
67
|
+
run_id: str
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
class PacBioDTOs(PostProcessingDTOs):
|
|
@@ -22,7 +22,7 @@ def get_smrt_cell_metrics_dto(
|
|
|
22
22
|
type=DeviceType.PACBIO,
|
|
23
23
|
well=metrics.dataset_metrics.well,
|
|
24
24
|
plate=metrics.dataset_metrics.plate,
|
|
25
|
-
|
|
25
|
+
run_id=run_data.run_id,
|
|
26
26
|
started_at=metrics.dataset_metrics.run_started_at,
|
|
27
27
|
completed_at=metrics.dataset_metrics.run_completed_at,
|
|
28
28
|
hifi_reads=metrics.read.hifi_reads,
|
|
@@ -81,5 +81,5 @@ def get_sequencing_run_dto(
|
|
|
81
81
|
) -> PacBioSequencingRunDTO:
|
|
82
82
|
return PacBioSequencingRunDTO(
|
|
83
83
|
instrument_name=metrics.dataset_metrics.instrument_name, # type: ignore - pydantic will convert to correct type
|
|
84
|
-
|
|
84
|
+
run_id=run_data.run_id,
|
|
85
85
|
)
|
|
@@ -60,7 +60,7 @@ class PacBioHousekeeperService(PostProcessingHKService):
|
|
|
60
60
|
file_path=bundle_info.file_path,
|
|
61
61
|
tags=bundle_info.tags,
|
|
62
62
|
)
|
|
63
|
-
LOG.debug(f"Files stored in Housekeeper for run {run_data.
|
|
63
|
+
LOG.debug(f"Files stored in Housekeeper for run {run_data.run_id}")
|
|
64
64
|
|
|
65
65
|
@staticmethod
|
|
66
66
|
def _get_bundle_type_for_file(file_path: Path) -> str:
|
|
@@ -64,7 +64,7 @@ class PacBioMetricsParser(PostProcessingMetricsParser):
|
|
|
64
64
|
metrics_files=metrics_files, file_name=PacBioDirsAndFiles.BARCODES_REPORT
|
|
65
65
|
)
|
|
66
66
|
sample_metrics: list[SampleMetrics] = get_parsed_sample_metrics(metrics_files)
|
|
67
|
-
LOG.debug(f"All metrics parsed for run {run_data.
|
|
67
|
+
LOG.debug(f"All metrics parsed for run {run_data.run_id}")
|
|
68
68
|
return PacBioMetrics(
|
|
69
69
|
read=read_metrics,
|
|
70
70
|
control=control_metrics,
|
|
@@ -51,38 +51,43 @@ class PacBioPostProcessingService(PostProcessingService):
|
|
|
51
51
|
),
|
|
52
52
|
to_raise=PostProcessingError,
|
|
53
53
|
)
|
|
54
|
-
def post_process(self,
|
|
55
|
-
LOG.info(f"Starting Pacbio post-processing for run: {
|
|
54
|
+
def post_process(self, run_full_name: str, dry_run: bool = False) -> None:
|
|
55
|
+
LOG.info(f"Starting Pacbio post-processing for run: {run_full_name}")
|
|
56
56
|
run_data: PacBioRunData = self.run_data_generator.get_run_data(
|
|
57
|
-
|
|
57
|
+
run_full_name=run_full_name, sequencing_dir=self.sequencing_dir
|
|
58
58
|
)
|
|
59
59
|
self.run_validator.ensure_post_processing_can_start(run_data)
|
|
60
60
|
self.store_service.store_post_processing_data(run_data=run_data, dry_run=dry_run)
|
|
61
61
|
self.hk_service.store_files_in_housekeeper(run_data=run_data, dry_run=dry_run)
|
|
62
62
|
self._touch_post_processing_complete(run_data=run_data, dry_run=dry_run)
|
|
63
63
|
|
|
64
|
-
def is_run_processed(self,
|
|
64
|
+
def is_run_processed(self, run_full_name: str) -> bool:
|
|
65
65
|
"""Check if a run has been post-processed."""
|
|
66
|
-
processing_complete_file = Path(
|
|
66
|
+
processing_complete_file = Path(
|
|
67
|
+
self.sequencing_dir, run_full_name, POST_PROCESSING_COMPLETED
|
|
68
|
+
)
|
|
67
69
|
return processing_complete_file.exists()
|
|
68
70
|
|
|
69
|
-
def can_post_processing_start(self,
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
def can_post_processing_start(self, run_full_name: str) -> bool:
|
|
72
|
+
"""Makes sure that all SMRT cells in the sequencing run are ready to be post-processed."""
|
|
73
|
+
LOG.debug(f"Checking if Pacbio post-processing can start for run: {run_full_name}")
|
|
74
|
+
parent_directory: Path = Path(self.sequencing_dir, run_full_name).parent
|
|
72
75
|
all_smrt_cells_are_ready: bool = all(
|
|
73
76
|
self.is_smrt_cell_ready_for_post_processing(f"{parent_directory.name}/{smrt_cell.name}")
|
|
74
77
|
for smrt_cell in parent_directory.iterdir()
|
|
75
78
|
)
|
|
76
79
|
return all_smrt_cells_are_ready
|
|
77
80
|
|
|
78
|
-
def is_smrt_cell_ready_for_post_processing(self,
|
|
79
|
-
LOG.debug(f"Checking if Pacbio SMRT-cell {
|
|
81
|
+
def is_smrt_cell_ready_for_post_processing(self, smrt_cell_full_name: str) -> bool:
|
|
82
|
+
LOG.debug(f"Checking if Pacbio SMRT-cell {smrt_cell_full_name} is ready for postprocessing")
|
|
80
83
|
try:
|
|
81
84
|
run_data: PacBioRunData = self.run_data_generator.get_run_data(
|
|
82
|
-
|
|
85
|
+
run_full_name=smrt_cell_full_name, sequencing_dir=self.sequencing_dir
|
|
83
86
|
)
|
|
84
87
|
self.run_validator.validate_run_files(run_data)
|
|
85
88
|
except PostProcessingRunFileManagerError as error:
|
|
86
|
-
LOG.debug(
|
|
89
|
+
LOG.debug(
|
|
90
|
+
f"Run {smrt_cell_full_name} is not ready for post-processing. {error.args[0]}."
|
|
91
|
+
)
|
|
87
92
|
return False
|
|
88
93
|
return True
|
|
@@ -17,24 +17,26 @@ class PacBioRunDataGenerator(RunDataGenerator):
|
|
|
17
17
|
@handle_post_processing_errors(
|
|
18
18
|
to_except=(ValueError,), to_raise=PostProcessingRunDataGeneratorError
|
|
19
19
|
)
|
|
20
|
-
def get_run_data(self,
|
|
20
|
+
def get_run_data(self, run_full_name: str, sequencing_dir: str) -> PacBioRunData:
|
|
21
21
|
"""
|
|
22
22
|
Get the run data for a PacBio SMRT cell run.
|
|
23
|
-
|
|
23
|
+
run_full_name should include the PacBio run including plate well, e.g. 'r84202_20240522_133539/1_A01'
|
|
24
24
|
"""
|
|
25
|
-
self._validate_run_name(
|
|
26
|
-
full_path = Path(sequencing_dir,
|
|
25
|
+
self._validate_run_name(run_full_name)
|
|
26
|
+
full_path = Path(sequencing_dir, run_full_name)
|
|
27
27
|
|
|
28
28
|
return PacBioRunData(
|
|
29
29
|
full_path=full_path,
|
|
30
|
-
|
|
31
|
-
well_name=self._get_well(
|
|
32
|
-
plate=self._get_plate(
|
|
30
|
+
run_id=self._get_run_id_from_run_full_name(run_full_name),
|
|
31
|
+
well_name=self._get_well(run_full_name),
|
|
32
|
+
plate=self._get_plate(run_full_name), # type: ignore Pydantic transforming
|
|
33
33
|
)
|
|
34
34
|
|
|
35
35
|
@staticmethod
|
|
36
|
-
def
|
|
37
|
-
|
|
36
|
+
def _get_run_id_from_run_full_name(
|
|
37
|
+
run_full_name: str,
|
|
38
|
+
) -> str:
|
|
39
|
+
return run_full_name.split("/")[0]
|
|
38
40
|
|
|
39
41
|
@staticmethod
|
|
40
42
|
def _get_plate_well(run_name: str) -> str:
|
|
@@ -14,17 +14,16 @@ class PacbioSequencingRunsService:
|
|
|
14
14
|
self.store = store
|
|
15
15
|
|
|
16
16
|
def get_sequencing_runs_by_name(self, run_name: str) -> PacbioSmrtCellMetricsResponse:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
run_name
|
|
17
|
+
metrics: list[PacbioSmrtCellMetricsDTO] = []
|
|
18
|
+
db_smrt_cell_metrics: list[PacbioSMRTCellMetrics] = (
|
|
19
|
+
self.store.get_pacbio_smrt_cell_metrics_by_run_id(run_name)
|
|
20
20
|
)
|
|
21
|
-
for
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return PacbioSmrtCellMetricsResponse(runs=runs)
|
|
21
|
+
for metric in db_smrt_cell_metrics:
|
|
22
|
+
metric_dict = metric.to_dict()
|
|
23
|
+
metric_dict["internal_id"] = metric.device.internal_id
|
|
24
|
+
metric_dict["run_name"] = metric.run_id
|
|
25
|
+
metrics.append(PacbioSmrtCellMetricsDTO.model_validate(metric_dict))
|
|
26
|
+
return PacbioSmrtCellMetricsResponse(runs=metrics)
|
|
28
27
|
|
|
29
28
|
def get_sequencing_runs(self, page: int = 0, page_size: int = 0) -> PacbioSequencingRunResponse:
|
|
30
29
|
db_runs, total_count = self.store.get_pacbio_sequencing_runs(page=page, page_size=page_size)
|
|
@@ -32,7 +31,7 @@ class PacbioSequencingRunsService:
|
|
|
32
31
|
for db_run in db_runs:
|
|
33
32
|
run = PacbioSequencingRunDTO(
|
|
34
33
|
id=db_run.id,
|
|
35
|
-
run_name=db_run.
|
|
34
|
+
run_name=db_run.run_id,
|
|
36
35
|
comment=db_run.comment,
|
|
37
36
|
processed=db_run.processed,
|
|
38
37
|
)
|
|
@@ -5,9 +5,9 @@ from cg.services.run_devices.run_names.service import RunNamesService
|
|
|
5
5
|
|
|
6
6
|
class PacbioRunNamesService(RunNamesService):
|
|
7
7
|
|
|
8
|
-
def
|
|
8
|
+
def get_run_full_names(self) -> list[str]:
|
|
9
9
|
"""
|
|
10
|
-
Get all the
|
|
10
|
+
Get all the SMRTcell full names from the PacBio sequencing directory in the form
|
|
11
11
|
<sequencing_run>/<SMRTcell>, for example:
|
|
12
12
|
r84202_20240913_121403/1_C01
|
|
13
13
|
"""
|
|
@@ -513,17 +513,17 @@ class CreateMixin(ReadHandler):
|
|
|
513
513
|
"""
|
|
514
514
|
if (
|
|
515
515
|
self._get_query(table=PacbioSequencingRun)
|
|
516
|
-
.filter(PacbioSequencingRun.
|
|
516
|
+
.filter(PacbioSequencingRun.run_id == pacbio_sequencing_run_dto.run_id)
|
|
517
517
|
.first()
|
|
518
518
|
):
|
|
519
519
|
raise PacbioSequencingRunAlreadyExistsError(
|
|
520
|
-
message=f"{pacbio_sequencing_run_dto.
|
|
520
|
+
message=f"{pacbio_sequencing_run_dto.run_id} already exists."
|
|
521
521
|
)
|
|
522
522
|
else:
|
|
523
|
-
LOG.debug(f"Creating Pacbio Sequencing Run for {pacbio_sequencing_run_dto.
|
|
523
|
+
LOG.debug(f"Creating Pacbio Sequencing Run for {pacbio_sequencing_run_dto.run_id}")
|
|
524
524
|
sequencing_run = PacbioSequencingRun(
|
|
525
525
|
instrument_name=pacbio_sequencing_run_dto.instrument_name,
|
|
526
|
-
|
|
526
|
+
run_id=pacbio_sequencing_run_dto.run_id,
|
|
527
527
|
)
|
|
528
528
|
self.add_item_to_store(sequencing_run)
|
|
529
529
|
return sequencing_run
|
|
@@ -1808,21 +1808,20 @@ class ReadHandler(BaseHandler):
|
|
|
1808
1808
|
sequencing_metrics = sequencing_metrics.filter(RunDevice.internal_id.in_(smrt_cell_ids))
|
|
1809
1809
|
return sequencing_metrics.all()
|
|
1810
1810
|
|
|
1811
|
-
def
|
|
1812
|
-
self, run_name: str
|
|
1813
|
-
) -> list[PacbioSMRTCellMetrics]:
|
|
1811
|
+
def get_pacbio_smrt_cell_metrics_by_run_id(self, run_id: str) -> list[PacbioSMRTCellMetrics]:
|
|
1814
1812
|
"""
|
|
1815
|
-
Fetches data from
|
|
1813
|
+
Fetches data from PacbioSMRTCellMetrics filtered on run ID.
|
|
1816
1814
|
Raises:
|
|
1817
|
-
EntryNotFoundError if no
|
|
1815
|
+
EntryNotFoundError if no SMRT cell metrics are found for the run ID
|
|
1818
1816
|
"""
|
|
1819
|
-
|
|
1820
|
-
PacbioSMRTCellMetrics
|
|
1817
|
+
metrics: Query = (
|
|
1818
|
+
self._get_query(table=PacbioSMRTCellMetrics)
|
|
1819
|
+
.join(PacbioSMRTCellMetrics.sequencing_run)
|
|
1820
|
+
.filter(PacbioSequencingRun.run_id == run_id)
|
|
1821
1821
|
)
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
return runs.all()
|
|
1822
|
+
if metrics.count() == 0:
|
|
1823
|
+
raise EntryNotFoundError(f"Could not find any SMRT Cell metrics for run {run_id}")
|
|
1824
|
+
return metrics.all()
|
|
1826
1825
|
|
|
1827
1826
|
def get_pacbio_sequencing_runs(
|
|
1828
1827
|
self, page: int = 0, page_size: int = 0
|
|
@@ -1856,7 +1855,7 @@ class ReadHandler(BaseHandler):
|
|
|
1856
1855
|
|
|
1857
1856
|
def get_pacbio_sequencing_run_by_id(self, id: int):
|
|
1858
1857
|
"""
|
|
1859
|
-
Get Pacbio Sequencing run by id.
|
|
1858
|
+
Get Pacbio Sequencing run by database id.
|
|
1860
1859
|
Raises:
|
|
1861
1860
|
PacbioSequencingRunNotFoundError: If no Pacbio sequencing run is found with the given id.
|
|
1862
1861
|
"""
|
|
@@ -1871,15 +1870,15 @@ class ReadHandler(BaseHandler):
|
|
|
1871
1870
|
f"Pacbio Sequencing run with id {id} was not found in the database."
|
|
1872
1871
|
)
|
|
1873
1872
|
|
|
1874
|
-
def
|
|
1873
|
+
def get_pacbio_sequencing_run_by_run_id(self, run_id: str) -> PacbioSequencingRun:
|
|
1875
1874
|
"""
|
|
1876
|
-
Get Pacbio Sequencing run by run name.
|
|
1877
1875
|
Raises:
|
|
1878
|
-
PacbioSequencingRunNotFoundError: If no Pacbio sequencing run is found with the given
|
|
1876
|
+
PacbioSequencingRunNotFoundError: If no Pacbio sequencing run is found with the given
|
|
1877
|
+
run ID.
|
|
1879
1878
|
"""
|
|
1880
1879
|
try:
|
|
1881
|
-
return self._get_query(table=PacbioSequencingRun).filter_by(
|
|
1880
|
+
return self._get_query(table=PacbioSequencingRun).filter_by(run_id=run_id).one()
|
|
1882
1881
|
except sqlalchemy.orm.exc.NoResultFound:
|
|
1883
1882
|
raise PacbioSequencingRunNotFoundError(
|
|
1884
|
-
f"Pacbio Sequencing run with
|
|
1883
|
+
f"Pacbio Sequencing run with ID {run_id} was not found in the database."
|
|
1885
1884
|
)
|
|
@@ -1113,8 +1113,8 @@ class PacbioSMRTCellMetrics(InstrumentRun):
|
|
|
1113
1113
|
__mapper_args__ = {"polymorphic_identity": DeviceType.PACBIO}
|
|
1114
1114
|
|
|
1115
1115
|
@property
|
|
1116
|
-
def
|
|
1117
|
-
return self.sequencing_run.
|
|
1116
|
+
def run_id(self) -> str:
|
|
1117
|
+
return self.sequencing_run.run_id
|
|
1118
1118
|
|
|
1119
1119
|
def to_dict(self):
|
|
1120
1120
|
return to_dict(self)
|
|
@@ -1185,7 +1185,7 @@ class PacbioSequencingRun(Base):
|
|
|
1185
1185
|
__tablename__ = "pacbio_sequencing_run"
|
|
1186
1186
|
|
|
1187
1187
|
id: Mapped[PrimaryKeyInt]
|
|
1188
|
-
|
|
1188
|
+
run_id: Mapped[Str64] = mapped_column(unique=True)
|
|
1189
1189
|
processed: Mapped[bool] = mapped_column(default=False)
|
|
1190
1190
|
comment: Mapped[Text] = mapped_column(default="")
|
|
1191
1191
|
instrument_name: Mapped[RevioNames] = mapped_column(
|
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cg"
|
|
7
|
-
version = "83.
|
|
7
|
+
version = "83.17.0"
|
|
8
8
|
description = "Clinical Genomics command center"
|
|
9
9
|
readme = {file = "README.md", content-type = "text/markdown"}
|
|
10
10
|
homepage = "https://github.com/Clinical-Genomics/cg"
|
cg-83.16.4/cg/__init__.py
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|