cg 83.2.2__tar.gz → 83.13.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.
Files changed (940) hide show
  1. {cg-83.2.2 → cg-83.13.0}/PKG-INFO +1 -1
  2. cg-83.13.0/cg/__init__.py +2 -0
  3. {cg-83.2.2 → cg-83.13.0}/cg/apps/tb/api.py +1 -1
  4. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/mutacc.py +16 -3
  5. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/scout.py +2 -2
  6. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/utils.py +10 -1
  7. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/balsamic/base.py +29 -4
  8. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/microsalt/base.py +3 -1
  9. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/nallo/base.py +10 -22
  10. cg-83.13.0/cg/cli/workflow/nf_analysis.py +135 -0
  11. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/raredisease/base.py +9 -3
  12. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/rnafusion/base.py +28 -3
  13. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/taxprofiler/base.py +21 -13
  14. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/tomte/base.py +9 -3
  15. {cg-83.2.2 → cg-83.13.0}/cg/constants/devices.py +6 -1
  16. {cg-83.2.2 → cg-83.13.0}/cg/constants/gene_panel.py +2 -1
  17. {cg-83.2.2 → cg-83.13.0}/cg/constants/orderforms.py +1 -1
  18. {cg-83.2.2 → cg-83.13.0}/cg/constants/pacbio.py +1 -0
  19. {cg-83.2.2 → cg-83.13.0}/cg/constants/scout.py +6 -4
  20. {cg-83.2.2 → cg-83.13.0}/cg/exc.py +8 -4
  21. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/scout/nallo_config_builder.py +14 -0
  22. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/nallo.py +5 -95
  23. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/nf_analysis.py +2 -261
  24. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/raredisease.py +3 -112
  25. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/rnafusion.py +2 -34
  26. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/taxprofiler.py +2 -38
  27. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/tomte.py +2 -42
  28. cg-83.13.0/cg/models/nallo/nallo.py +27 -0
  29. cg-83.13.0/cg/models/nf_analysis.py +44 -0
  30. cg-83.13.0/cg/models/raredisease/raredisease.py +11 -0
  31. cg-83.13.0/cg/models/rnafusion/rnafusion.py +19 -0
  32. {cg-83.2.2 → cg-83.13.0}/cg/models/scout/scout_load_config.py +1 -0
  33. cg-83.13.0/cg/models/taxprofiler/taxprofiler.py +14 -0
  34. cg-83.13.0/cg/models/tomte/tomte.py +20 -0
  35. cg-83.13.0/cg/resources/nallo_bundle_filenames.yaml +560 -0
  36. {cg-83.2.2 → cg-83.13.0}/cg/resources/raredisease_bundle_filenames.yaml +1 -1
  37. {cg-83.2.2 → cg-83.13.0}/cg/resources/taxprofiler_bundle_filenames.yaml +20 -0
  38. {cg-83.2.2 → cg-83.13.0}/cg/server/admin.py +46 -20
  39. {cg-83.2.2 → cg-83.13.0}/cg/server/app.py +15 -4
  40. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/sequencing_run/dtos.py +21 -3
  41. cg-83.13.0/cg/server/endpoints/sequencing_run/pacbio_sequencing_run.py +39 -0
  42. cg-83.13.0/cg/server/endpoints/sequencing_run/pacbio_smrt_cell_metrics.py +20 -0
  43. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/configurator.py +1 -1
  44. cg-83.13.0/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/models.py +61 -0
  45. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/nallo.py +3 -1
  46. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/tomte_params_file_creator.py +3 -1
  47. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/tracker/implementations/balsamic.py +4 -1
  48. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/tracker/implementations/microsalt.py +4 -4
  49. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/tracker/implementations/mip_dna.py +4 -1
  50. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/tracker/implementations/nextflow_tracker.py +6 -4
  51. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/tracker/tracker.py +10 -6
  52. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/constants.py +3 -0
  53. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/index_sequences.py +558 -0
  54. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/data_storage_service/pacbio_store_service.py +33 -11
  55. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/data_transfer_service/data_transfer_service.py +8 -2
  56. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/data_transfer_service/dto.py +9 -3
  57. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/data_transfer_service/utils.py +14 -7
  58. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/metrics_parser/models.py +1 -0
  59. cg-83.13.0/cg/services/run_devices/pacbio/sequencing_runs_service.py +51 -0
  60. {cg-83.2.2 → cg-83.13.0}/cg/store/crud/create.py +72 -41
  61. {cg-83.2.2 → cg-83.13.0}/cg/store/crud/read.py +50 -2
  62. {cg-83.2.2 → cg-83.13.0}/cg/store/crud/update.py +11 -0
  63. {cg-83.2.2 → cg-83.13.0}/cg/store/models.py +69 -28
  64. {cg-83.2.2 → cg-83.13.0}/pyproject.toml +1 -1
  65. cg-83.2.2/cg/__init__.py +0 -2
  66. cg-83.2.2/cg/cli/workflow/nf_analysis.py +0 -336
  67. cg-83.2.2/cg/models/nallo/nallo.py +0 -89
  68. cg-83.2.2/cg/models/nf_analysis.py +0 -84
  69. cg-83.2.2/cg/models/raredisease/raredisease.py +0 -73
  70. cg-83.2.2/cg/models/rnafusion/rnafusion.py +0 -45
  71. cg-83.2.2/cg/models/taxprofiler/taxprofiler.py +0 -56
  72. cg-83.2.2/cg/models/tomte/tomte.py +0 -89
  73. cg-83.2.2/cg/resources/nallo_bundle_filenames.yaml +0 -300
  74. cg-83.2.2/cg/server/endpoints/sequencing_run/pacbio_sequencing_run.py +0 -20
  75. cg-83.2.2/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/models.py +0 -22
  76. cg-83.2.2/cg/services/run_devices/pacbio/sequencing_runs_service.py +0 -23
  77. {cg-83.2.2 → cg-83.13.0}/README.md +0 -0
  78. {cg-83.2.2 → cg-83.13.0}/cg/apps/__init__.py +0 -0
  79. {cg-83.2.2 → cg-83.13.0}/cg/apps/coverage/__init__.py +0 -0
  80. {cg-83.2.2 → cg-83.13.0}/cg/apps/coverage/api.py +0 -0
  81. {cg-83.2.2 → cg-83.13.0}/cg/apps/crunchy/__init__.py +0 -0
  82. {cg-83.2.2 → cg-83.13.0}/cg/apps/crunchy/crunchy.py +0 -0
  83. {cg-83.2.2 → cg-83.13.0}/cg/apps/crunchy/files.py +0 -0
  84. {cg-83.2.2 → cg-83.13.0}/cg/apps/crunchy/models.py +0 -0
  85. {cg-83.2.2 → cg-83.13.0}/cg/apps/crunchy/sbatch.py +0 -0
  86. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/__init__.py +0 -0
  87. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/demultiplex_api.py +0 -0
  88. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/__init__.py +0 -0
  89. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/api.py +0 -0
  90. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/index.py +0 -0
  91. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/override_cycles_validator.py +0 -0
  92. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/read_sample_sheet.py +0 -0
  93. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/sample_models.py +0 -0
  94. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/sample_sheet_creator.py +0 -0
  95. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/sample_sheet_models.py +0 -0
  96. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/sample_sheet_validator.py +0 -0
  97. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/utils.py +0 -0
  98. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/validators.py +0 -0
  99. {cg-83.2.2 → cg-83.13.0}/cg/apps/demultiplex/sbatch.py +0 -0
  100. {cg-83.2.2 → cg-83.13.0}/cg/apps/downsample/__init__.py +0 -0
  101. {cg-83.2.2 → cg-83.13.0}/cg/apps/downsample/downsample.py +0 -0
  102. {cg-83.2.2 → cg-83.13.0}/cg/apps/downsample/utils.py +0 -0
  103. {cg-83.2.2 → cg-83.13.0}/cg/apps/environ.py +0 -0
  104. {cg-83.2.2 → cg-83.13.0}/cg/apps/gens.py +0 -0
  105. {cg-83.2.2 → cg-83.13.0}/cg/apps/gt.py +0 -0
  106. {cg-83.2.2 → cg-83.13.0}/cg/apps/hermes/__init__.py +0 -0
  107. {cg-83.2.2 → cg-83.13.0}/cg/apps/hermes/hermes_api.py +0 -0
  108. {cg-83.2.2 → cg-83.13.0}/cg/apps/hermes/models.py +0 -0
  109. {cg-83.2.2 → cg-83.13.0}/cg/apps/housekeeper/__init__.py +0 -0
  110. {cg-83.2.2 → cg-83.13.0}/cg/apps/housekeeper/hk.py +0 -0
  111. {cg-83.2.2 → cg-83.13.0}/cg/apps/housekeeper/models.py +0 -0
  112. {cg-83.2.2 → cg-83.13.0}/cg/apps/invoice/__init__.py +0 -0
  113. {cg-83.2.2 → cg-83.13.0}/cg/apps/invoice/render.py +0 -0
  114. {cg-83.2.2 → cg-83.13.0}/cg/apps/invoice/templates/KI_pool_invoice.xlsx +0 -0
  115. {cg-83.2.2 → cg-83.13.0}/cg/apps/invoice/templates/KI_sample_invoice.xlsx +0 -0
  116. {cg-83.2.2 → cg-83.13.0}/cg/apps/invoice/templates/KTH_pool_invoice.xlsx +0 -0
  117. {cg-83.2.2 → cg-83.13.0}/cg/apps/invoice/templates/KTH_sample_invoice.xlsx +0 -0
  118. {cg-83.2.2 → cg-83.13.0}/cg/apps/lims/__init__.py +0 -0
  119. {cg-83.2.2 → cg-83.13.0}/cg/apps/lims/api.py +0 -0
  120. {cg-83.2.2 → cg-83.13.0}/cg/apps/lims/batch.py +0 -0
  121. {cg-83.2.2 → cg-83.13.0}/cg/apps/lims/order.py +0 -0
  122. {cg-83.2.2 → cg-83.13.0}/cg/apps/lims/sample_sheet.py +0 -0
  123. {cg-83.2.2 → cg-83.13.0}/cg/apps/loqus.py +0 -0
  124. {cg-83.2.2 → cg-83.13.0}/cg/apps/madeline/__init__.py +0 -0
  125. {cg-83.2.2 → cg-83.13.0}/cg/apps/madeline/api.py +0 -0
  126. {cg-83.2.2 → cg-83.13.0}/cg/apps/mip/__init__.py +0 -0
  127. {cg-83.2.2 → cg-83.13.0}/cg/apps/mip/confighandler.py +0 -0
  128. {cg-83.2.2 → cg-83.13.0}/cg/apps/mutacc_auto.py +0 -0
  129. {cg-83.2.2 → cg-83.13.0}/cg/apps/orderform/__init__.py +0 -0
  130. {cg-83.2.2 → cg-83.13.0}/cg/apps/orderform/excel_orderform_parser.py +0 -0
  131. {cg-83.2.2 → cg-83.13.0}/cg/apps/orderform/json_orderform_parser.py +0 -0
  132. {cg-83.2.2 → cg-83.13.0}/cg/apps/orderform/orderform_parser.py +0 -0
  133. {cg-83.2.2 → cg-83.13.0}/cg/apps/orderform/utils.py +0 -0
  134. {cg-83.2.2 → cg-83.13.0}/cg/apps/scout/__init__.py +0 -0
  135. {cg-83.2.2 → cg-83.13.0}/cg/apps/scout/scout_export.py +0 -0
  136. {cg-83.2.2 → cg-83.13.0}/cg/apps/scout/scoutapi.py +0 -0
  137. {cg-83.2.2 → cg-83.13.0}/cg/apps/scout/validators.py +0 -0
  138. {cg-83.2.2 → cg-83.13.0}/cg/apps/slurm/__init__.py +0 -0
  139. {cg-83.2.2 → cg-83.13.0}/cg/apps/slurm/sbatch.py +0 -0
  140. {cg-83.2.2 → cg-83.13.0}/cg/apps/slurm/slurm_api.py +0 -0
  141. {cg-83.2.2 → cg-83.13.0}/cg/apps/tb/__init__.py +0 -0
  142. {cg-83.2.2 → cg-83.13.0}/cg/apps/tb/dto/create_job_request.py +0 -0
  143. {cg-83.2.2 → cg-83.13.0}/cg/apps/tb/dto/summary_response.py +0 -0
  144. {cg-83.2.2 → cg-83.13.0}/cg/apps/tb/models.py +0 -0
  145. {cg-83.2.2 → cg-83.13.0}/cg/apps/tb/validators.py +0 -0
  146. {cg-83.2.2 → cg-83.13.0}/cg/cli/__init__.py +0 -0
  147. {cg-83.2.2 → cg-83.13.0}/cg/cli/add.py +0 -0
  148. {cg-83.2.2 → cg-83.13.0}/cg/cli/archive.py +0 -0
  149. {cg-83.2.2 → cg-83.13.0}/cg/cli/backup.py +0 -0
  150. {cg-83.2.2 → cg-83.13.0}/cg/cli/base.py +0 -0
  151. {cg-83.2.2 → cg-83.13.0}/cg/cli/clean.py +0 -0
  152. {cg-83.2.2 → cg-83.13.0}/cg/cli/compress/__init__.py +0 -0
  153. {cg-83.2.2 → cg-83.13.0}/cg/cli/compress/base.py +0 -0
  154. {cg-83.2.2 → cg-83.13.0}/cg/cli/compress/fastq.py +0 -0
  155. {cg-83.2.2 → cg-83.13.0}/cg/cli/compress/helpers.py +0 -0
  156. {cg-83.2.2 → cg-83.13.0}/cg/cli/delete/__init__.py +0 -0
  157. {cg-83.2.2 → cg-83.13.0}/cg/cli/delete/base.py +0 -0
  158. {cg-83.2.2 → cg-83.13.0}/cg/cli/delete/case.py +0 -0
  159. {cg-83.2.2 → cg-83.13.0}/cg/cli/delete/cases.py +0 -0
  160. {cg-83.2.2 → cg-83.13.0}/cg/cli/delete/illumina_sequencing_run.py +0 -0
  161. {cg-83.2.2 → cg-83.13.0}/cg/cli/delete/observations.py +0 -0
  162. {cg-83.2.2 → cg-83.13.0}/cg/cli/deliver/__init__.py +0 -0
  163. {cg-83.2.2 → cg-83.13.0}/cg/cli/deliver/base.py +0 -0
  164. {cg-83.2.2 → cg-83.13.0}/cg/cli/deliver/utils.py +0 -0
  165. {cg-83.2.2 → cg-83.13.0}/cg/cli/demultiplex/__init__.py +0 -0
  166. {cg-83.2.2 → cg-83.13.0}/cg/cli/demultiplex/base.py +0 -0
  167. {cg-83.2.2 → cg-83.13.0}/cg/cli/demultiplex/copy_novaseqx_demultiplex_data.py +0 -0
  168. {cg-83.2.2 → cg-83.13.0}/cg/cli/demultiplex/demux.py +0 -0
  169. {cg-83.2.2 → cg-83.13.0}/cg/cli/demultiplex/finish.py +0 -0
  170. {cg-83.2.2 → cg-83.13.0}/cg/cli/demultiplex/sample_sheet.py +0 -0
  171. {cg-83.2.2 → cg-83.13.0}/cg/cli/downsample.py +0 -0
  172. {cg-83.2.2 → cg-83.13.0}/cg/cli/generate/__init__.py +0 -0
  173. {cg-83.2.2 → cg-83.13.0}/cg/cli/generate/base.py +0 -0
  174. {cg-83.2.2 → cg-83.13.0}/cg/cli/generate/delivery_report/__init__.py +0 -0
  175. {cg-83.2.2 → cg-83.13.0}/cg/cli/generate/delivery_report/base.py +0 -0
  176. {cg-83.2.2 → cg-83.13.0}/cg/cli/generate/delivery_report/options.py +0 -0
  177. {cg-83.2.2 → cg-83.13.0}/cg/cli/generate/delivery_report/utils.py +0 -0
  178. {cg-83.2.2 → cg-83.13.0}/cg/cli/get.py +0 -0
  179. {cg-83.2.2 → cg-83.13.0}/cg/cli/post_process/__init__.py +0 -0
  180. {cg-83.2.2 → cg-83.13.0}/cg/cli/post_process/post_process.py +0 -0
  181. {cg-83.2.2 → cg-83.13.0}/cg/cli/post_process/utils.py +0 -0
  182. {cg-83.2.2 → cg-83.13.0}/cg/cli/sequencing_qc/sequencing_qc.py +0 -0
  183. {cg-83.2.2 → cg-83.13.0}/cg/cli/set/__init__.py +0 -0
  184. {cg-83.2.2 → cg-83.13.0}/cg/cli/set/base.py +0 -0
  185. {cg-83.2.2 → cg-83.13.0}/cg/cli/set/case.py +0 -0
  186. {cg-83.2.2 → cg-83.13.0}/cg/cli/set/cases.py +0 -0
  187. {cg-83.2.2 → cg-83.13.0}/cg/cli/store/__init__.py +0 -0
  188. {cg-83.2.2 → cg-83.13.0}/cg/cli/store/base.py +0 -0
  189. {cg-83.2.2 → cg-83.13.0}/cg/cli/store/store.py +0 -0
  190. {cg-83.2.2 → cg-83.13.0}/cg/cli/transfer.py +0 -0
  191. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/__init__.py +0 -0
  192. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/base.py +0 -0
  193. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/coverage.py +0 -0
  194. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/delivery_report.py +0 -0
  195. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/fohm.py +0 -0
  196. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/genotype.py +0 -0
  197. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/gens.py +0 -0
  198. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/gisaid.py +0 -0
  199. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/nipt/__init__.py +0 -0
  200. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/nipt/base.py +0 -0
  201. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/nipt/ftp.py +0 -0
  202. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/nipt/statina.py +0 -0
  203. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/observations/__init__.py +0 -0
  204. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/observations/observations.py +0 -0
  205. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/observations/utils.py +0 -0
  206. {cg-83.2.2 → cg-83.13.0}/cg/cli/upload/validate.py +0 -0
  207. {cg-83.2.2 → cg-83.13.0}/cg/cli/utils.py +0 -0
  208. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/__init__.py +0 -0
  209. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/balsamic/__init__.py +0 -0
  210. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/balsamic/options.py +0 -0
  211. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/balsamic/pon.py +0 -0
  212. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/balsamic/umi.py +0 -0
  213. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/base.py +0 -0
  214. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/commands.py +0 -0
  215. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/fluffy/__init__.py +0 -0
  216. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/fluffy/base.py +0 -0
  217. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/jasen/__init__.py +0 -0
  218. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/jasen/base.py +0 -0
  219. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/microsalt/__init__.py +0 -0
  220. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/mip/__init__.py +0 -0
  221. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/mip/base.py +0 -0
  222. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/mip/options.py +0 -0
  223. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/mip_dna/__init__.py +0 -0
  224. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/mip_dna/base.py +0 -0
  225. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/mip_rna/__init__.py +0 -0
  226. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/mip_rna/base.py +0 -0
  227. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/mutant/__init__.py +0 -0
  228. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/mutant/base.py +0 -0
  229. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/nallo/__init__.py +0 -0
  230. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/raredisease/__init__.py +0 -0
  231. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/raw_data/__init__.py +0 -0
  232. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/raw_data/base.py +0 -0
  233. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/raw_data/raw_data_service.py +0 -0
  234. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/rnafusion/__init__.py +0 -0
  235. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/taxprofiler/__init__.py +0 -0
  236. {cg-83.2.2 → cg-83.13.0}/cg/cli/workflow/utils.py +0 -0
  237. {cg-83.2.2 → cg-83.13.0}/cg/clients/__init__.py +0 -0
  238. {cg-83.2.2 → cg-83.13.0}/cg/clients/arnold/api.py +0 -0
  239. {cg-83.2.2 → cg-83.13.0}/cg/clients/arnold/dto/create_case_request.py +0 -0
  240. {cg-83.2.2 → cg-83.13.0}/cg/clients/arnold/exceptions.py +0 -0
  241. {cg-83.2.2 → cg-83.13.0}/cg/clients/chanjo2/__init__.py +0 -0
  242. {cg-83.2.2 → cg-83.13.0}/cg/clients/chanjo2/client.py +0 -0
  243. {cg-83.2.2 → cg-83.13.0}/cg/clients/chanjo2/models.py +0 -0
  244. {cg-83.2.2 → cg-83.13.0}/cg/clients/chanjo2/utils.py +0 -0
  245. {cg-83.2.2 → cg-83.13.0}/cg/clients/freshdesk/__init__.py +0 -0
  246. {cg-83.2.2 → cg-83.13.0}/cg/clients/freshdesk/constants.py +0 -0
  247. {cg-83.2.2 → cg-83.13.0}/cg/clients/freshdesk/exceptions.py +0 -0
  248. {cg-83.2.2 → cg-83.13.0}/cg/clients/freshdesk/freshdesk_client.py +0 -0
  249. {cg-83.2.2 → cg-83.13.0}/cg/clients/freshdesk/models.py +0 -0
  250. {cg-83.2.2 → cg-83.13.0}/cg/clients/freshdesk/utils.py +0 -0
  251. {cg-83.2.2 → cg-83.13.0}/cg/clients/janus/__init__.py +0 -0
  252. {cg-83.2.2 → cg-83.13.0}/cg/clients/janus/api.py +0 -0
  253. {cg-83.2.2 → cg-83.13.0}/cg/clients/janus/dto/__init__.py +0 -0
  254. {cg-83.2.2 → cg-83.13.0}/cg/clients/janus/dto/create_qc_metrics_request.py +0 -0
  255. {cg-83.2.2 → cg-83.13.0}/cg/clients/janus/exceptions.py +0 -0
  256. {cg-83.2.2 → cg-83.13.0}/cg/constants/__init__.py +0 -0
  257. {cg-83.2.2 → cg-83.13.0}/cg/constants/archiving.py +0 -0
  258. {cg-83.2.2 → cg-83.13.0}/cg/constants/backup.py +0 -0
  259. {cg-83.2.2 → cg-83.13.0}/cg/constants/cli_options.py +0 -0
  260. {cg-83.2.2 → cg-83.13.0}/cg/constants/compression.py +0 -0
  261. {cg-83.2.2 → cg-83.13.0}/cg/constants/constants.py +0 -0
  262. {cg-83.2.2 → cg-83.13.0}/cg/constants/delivery.py +0 -0
  263. {cg-83.2.2 → cg-83.13.0}/cg/constants/demultiplexing.py +0 -0
  264. {cg-83.2.2 → cg-83.13.0}/cg/constants/encryption.py +0 -0
  265. {cg-83.2.2 → cg-83.13.0}/cg/constants/extraction.py +0 -0
  266. {cg-83.2.2 → cg-83.13.0}/cg/constants/file_transfer_service.py +0 -0
  267. {cg-83.2.2 → cg-83.13.0}/cg/constants/housekeeper_tags.py +0 -0
  268. {cg-83.2.2 → cg-83.13.0}/cg/constants/invoice.py +0 -0
  269. {cg-83.2.2 → cg-83.13.0}/cg/constants/lims.py +0 -0
  270. {cg-83.2.2 → cg-83.13.0}/cg/constants/metrics.py +0 -0
  271. {cg-83.2.2 → cg-83.13.0}/cg/constants/nextflow.py +0 -0
  272. {cg-83.2.2 → cg-83.13.0}/cg/constants/nf_analysis.py +0 -0
  273. {cg-83.2.2 → cg-83.13.0}/cg/constants/nipt.py +0 -0
  274. {cg-83.2.2 → cg-83.13.0}/cg/constants/observations.py +0 -0
  275. {cg-83.2.2 → cg-83.13.0}/cg/constants/paths.py +0 -0
  276. {cg-83.2.2 → cg-83.13.0}/cg/constants/pdc.py +0 -0
  277. {cg-83.2.2 → cg-83.13.0}/cg/constants/pedigree.py +0 -0
  278. {cg-83.2.2 → cg-83.13.0}/cg/constants/priority.py +0 -0
  279. {cg-83.2.2 → cg-83.13.0}/cg/constants/process.py +0 -0
  280. {cg-83.2.2 → cg-83.13.0}/cg/constants/report.py +0 -0
  281. {cg-83.2.2 → cg-83.13.0}/cg/constants/sample_sources.py +0 -0
  282. {cg-83.2.2 → cg-83.13.0}/cg/constants/sequencing.py +0 -0
  283. {cg-83.2.2 → cg-83.13.0}/cg/constants/slurm.py +0 -0
  284. {cg-83.2.2 → cg-83.13.0}/cg/constants/subject.py +0 -0
  285. {cg-83.2.2 → cg-83.13.0}/cg/constants/symbols.py +0 -0
  286. {cg-83.2.2 → cg-83.13.0}/cg/constants/tb.py +0 -0
  287. {cg-83.2.2 → cg-83.13.0}/cg/io/__init__.py +0 -0
  288. {cg-83.2.2 → cg-83.13.0}/cg/io/api.py +0 -0
  289. {cg-83.2.2 → cg-83.13.0}/cg/io/controller.py +0 -0
  290. {cg-83.2.2 → cg-83.13.0}/cg/io/csv.py +0 -0
  291. {cg-83.2.2 → cg-83.13.0}/cg/io/gzip.py +0 -0
  292. {cg-83.2.2 → cg-83.13.0}/cg/io/json.py +0 -0
  293. {cg-83.2.2 → cg-83.13.0}/cg/io/png.py +0 -0
  294. {cg-83.2.2 → cg-83.13.0}/cg/io/txt.py +0 -0
  295. {cg-83.2.2 → cg-83.13.0}/cg/io/validate_path.py +0 -0
  296. {cg-83.2.2 → cg-83.13.0}/cg/io/xml.py +0 -0
  297. {cg-83.2.2 → cg-83.13.0}/cg/io/yaml.py +0 -0
  298. {cg-83.2.2 → cg-83.13.0}/cg/meta/__init__.py +0 -0
  299. {cg-83.2.2 → cg-83.13.0}/cg/meta/archive/__init__.py +0 -0
  300. {cg-83.2.2 → cg-83.13.0}/cg/meta/archive/archive.py +0 -0
  301. {cg-83.2.2 → cg-83.13.0}/cg/meta/archive/ddn/__init__.py +0 -0
  302. {cg-83.2.2 → cg-83.13.0}/cg/meta/archive/ddn/constants.py +0 -0
  303. {cg-83.2.2 → cg-83.13.0}/cg/meta/archive/ddn/ddn_data_flow_client.py +0 -0
  304. {cg-83.2.2 → cg-83.13.0}/cg/meta/archive/ddn/models.py +0 -0
  305. {cg-83.2.2 → cg-83.13.0}/cg/meta/archive/ddn/utils.py +0 -0
  306. {cg-83.2.2 → cg-83.13.0}/cg/meta/archive/models.py +0 -0
  307. {cg-83.2.2 → cg-83.13.0}/cg/meta/backup/__init__.py +0 -0
  308. {cg-83.2.2 → cg-83.13.0}/cg/meta/backup/backup.py +0 -0
  309. {cg-83.2.2 → cg-83.13.0}/cg/meta/clean/__init__.py +0 -0
  310. {cg-83.2.2 → cg-83.13.0}/cg/meta/clean/api.py +0 -0
  311. {cg-83.2.2 → cg-83.13.0}/cg/meta/clean/clean_retrieved_spring_files.py +0 -0
  312. {cg-83.2.2 → cg-83.13.0}/cg/meta/compress/__init__.py +0 -0
  313. {cg-83.2.2 → cg-83.13.0}/cg/meta/compress/compress.py +0 -0
  314. {cg-83.2.2 → cg-83.13.0}/cg/meta/compress/files.py +0 -0
  315. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery/__init__.py +0 -0
  316. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery/delivery.py +0 -0
  317. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/__init__.py +0 -0
  318. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/balsamic.py +0 -0
  319. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/balsamic_umi.py +0 -0
  320. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/data_validators.py +0 -0
  321. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/delivery_report_api.py +0 -0
  322. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/mip_dna.py +0 -0
  323. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/nallo.py +0 -0
  324. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/raredisease.py +0 -0
  325. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/rnafusion.py +0 -0
  326. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/taxprofiler.py +0 -0
  327. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/delivery-report.html +0 -0
  328. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/data_analysis.html +0 -0
  329. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/limitations.html +0 -0
  330. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/balsamic_qc_metrics.html +0 -0
  331. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/mip_dna_qc_metrics.html +0 -0
  332. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/nallo_qc_metrics.html +0 -0
  333. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/qc_metrics.html +0 -0
  334. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/raredisease_qc_metrics.html +0 -0
  335. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/rnafusion_qc_metrics.html +0 -0
  336. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/tomte_qc_metrics.html +0 -0
  337. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/header.html +0 -0
  338. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/order.html +0 -0
  339. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/sample_prep.html +0 -0
  340. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/ticket_system.html +0 -0
  341. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/uploaded_files/balsamic_uploaded_files.html +0 -0
  342. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/uploaded_files/mip_dna_uploaded_files.html +0 -0
  343. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/uploaded_files/nallo_uploaded_files.html +0 -0
  344. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/uploaded_files/raredisease_uploaded_files.html +0 -0
  345. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/uploaded_files/rnafusion_uploaded_files.html +0 -0
  346. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/uploaded_files/uploaded_files.html +0 -0
  347. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/partials/footer.html +0 -0
  348. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/partials/signature.html +0 -0
  349. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/static/css/bootstrap.min.css +0 -0
  350. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/static/css/custom.css +0 -0
  351. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/templates/static/images/SWEDAC_logo.png +0 -0
  352. {cg-83.2.2 → cg-83.13.0}/cg/meta/delivery_report/tomte.py +0 -0
  353. {cg-83.2.2 → cg-83.13.0}/cg/meta/encryption/__init__.py +0 -0
  354. {cg-83.2.2 → cg-83.13.0}/cg/meta/encryption/encryption.py +0 -0
  355. {cg-83.2.2 → cg-83.13.0}/cg/meta/encryption/sbatch.py +0 -0
  356. {cg-83.2.2 → cg-83.13.0}/cg/meta/invoice.py +0 -0
  357. {cg-83.2.2 → cg-83.13.0}/cg/meta/meta.py +0 -0
  358. {cg-83.2.2 → cg-83.13.0}/cg/meta/observations/__init__.py +0 -0
  359. {cg-83.2.2 → cg-83.13.0}/cg/meta/observations/balsamic_observations_api.py +0 -0
  360. {cg-83.2.2 → cg-83.13.0}/cg/meta/observations/mip_dna_observations_api.py +0 -0
  361. {cg-83.2.2 → cg-83.13.0}/cg/meta/observations/nallo_observations_api.py +0 -0
  362. {cg-83.2.2 → cg-83.13.0}/cg/meta/observations/observations_api.py +0 -0
  363. {cg-83.2.2 → cg-83.13.0}/cg/meta/observations/raredisease_observations_api.py +0 -0
  364. {cg-83.2.2 → cg-83.13.0}/cg/meta/orders/utils.py +0 -0
  365. {cg-83.2.2 → cg-83.13.0}/cg/meta/qc_metrics/collect_qc_metrics.py +0 -0
  366. {cg-83.2.2 → cg-83.13.0}/cg/meta/tar/__init__.py +0 -0
  367. {cg-83.2.2 → cg-83.13.0}/cg/meta/tar/tar.py +0 -0
  368. {cg-83.2.2 → cg-83.13.0}/cg/meta/transfer/__init__.py +0 -0
  369. {cg-83.2.2 → cg-83.13.0}/cg/meta/transfer/external_data.py +0 -0
  370. {cg-83.2.2 → cg-83.13.0}/cg/meta/transfer/lims.py +0 -0
  371. {cg-83.2.2 → cg-83.13.0}/cg/meta/transfer/utils.py +0 -0
  372. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/__init__.py +0 -0
  373. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/balsamic/__init__.py +0 -0
  374. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/balsamic/balsamic.py +0 -0
  375. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/coverage.py +0 -0
  376. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/error_handling.py +0 -0
  377. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/fohm/__init__.py +0 -0
  378. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/fohm/fohm.py +0 -0
  379. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/gisaid/__init__.py +0 -0
  380. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/gisaid/constants.py +0 -0
  381. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/gisaid/gisaid.py +0 -0
  382. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/gisaid/models.py +0 -0
  383. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/gt.py +0 -0
  384. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/microsalt/microsalt_upload_api.py +0 -0
  385. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/mip/__init__.py +0 -0
  386. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/mip/mip_dna.py +0 -0
  387. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/mip/mip_rna.py +0 -0
  388. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/mutacc.py +0 -0
  389. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/mutant/mutant.py +0 -0
  390. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/nallo/nallo.py +0 -0
  391. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/nf_analysis.py +0 -0
  392. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/nipt/__init__.py +0 -0
  393. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/nipt/models.py +0 -0
  394. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/nipt/nipt.py +0 -0
  395. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/raredisease/raredisease.py +0 -0
  396. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/scout/__init__.py +0 -0
  397. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/scout/balsamic_config_builder.py +0 -0
  398. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/scout/balsamic_umi_config_builder.py +0 -0
  399. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/scout/hk_tags.py +0 -0
  400. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/scout/mip_config_builder.py +0 -0
  401. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/scout/raredisease_config_builder.py +0 -0
  402. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/scout/rnafusion_config_builder.py +0 -0
  403. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/scout/scout_config_builder.py +0 -0
  404. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/scout/uploadscoutapi.py +0 -0
  405. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/tomte/tomte.py +0 -0
  406. {cg-83.2.2 → cg-83.13.0}/cg/meta/upload/upload_api.py +0 -0
  407. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/__init__.py +0 -0
  408. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/analysis.py +0 -0
  409. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/balsamic.py +0 -0
  410. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/balsamic_pon.py +0 -0
  411. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/balsamic_umi.py +0 -0
  412. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/downsample/__init__.py +0 -0
  413. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/downsample/downsample.py +0 -0
  414. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/downsample/sbatch.py +0 -0
  415. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/fastq.py +0 -0
  416. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/fluffy.py +0 -0
  417. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/jasen.py +0 -0
  418. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/microsalt/__init__.py +0 -0
  419. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/microsalt/constants.py +0 -0
  420. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/microsalt/metrics_parser/__init__.py +0 -0
  421. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/microsalt/metrics_parser/metrics_parser.py +0 -0
  422. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/microsalt/metrics_parser/models.py +0 -0
  423. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/microsalt/microsalt.py +0 -0
  424. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/microsalt/quality_controller/__init__.py +0 -0
  425. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/microsalt/quality_controller/models.py +0 -0
  426. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/microsalt/quality_controller/quality_controller.py +0 -0
  427. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/microsalt/quality_controller/report_generator.py +0 -0
  428. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/microsalt/quality_controller/result_logger.py +0 -0
  429. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/microsalt/quality_controller/utils.py +0 -0
  430. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/microsalt/utils.py +0 -0
  431. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/mip.py +0 -0
  432. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/mip_dna.py +0 -0
  433. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/mip_rna.py +0 -0
  434. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/mutant/__init__.py +0 -0
  435. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/mutant/mutant.py +0 -0
  436. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/__init__.py +0 -0
  437. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/metrics_parser_utils.py +0 -0
  438. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/models.py +0 -0
  439. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/quality_controller.py +0 -0
  440. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/report_generator_utils.py +0 -0
  441. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/result_logger_utils.py +0 -0
  442. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/utils.py +0 -0
  443. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/nf_handlers.py +0 -0
  444. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/prepare_fastq.py +0 -0
  445. {cg-83.2.2 → cg-83.13.0}/cg/meta/workflow/utils/utils.py +0 -0
  446. {cg-83.2.2 → cg-83.13.0}/cg/models/__init__.py +0 -0
  447. {cg-83.2.2 → cg-83.13.0}/cg/models/analysis.py +0 -0
  448. {cg-83.2.2 → cg-83.13.0}/cg/models/balsamic/__init__.py +0 -0
  449. {cg-83.2.2 → cg-83.13.0}/cg/models/balsamic/analysis.py +0 -0
  450. {cg-83.2.2 → cg-83.13.0}/cg/models/balsamic/config.py +0 -0
  451. {cg-83.2.2 → cg-83.13.0}/cg/models/balsamic/metrics.py +0 -0
  452. {cg-83.2.2 → cg-83.13.0}/cg/models/cg_config.py +0 -0
  453. {cg-83.2.2 → cg-83.13.0}/cg/models/compression_data.py +0 -0
  454. {cg-83.2.2 → cg-83.13.0}/cg/models/deliverables/__init__.py +0 -0
  455. {cg-83.2.2 → cg-83.13.0}/cg/models/deliverables/metric_deliverables.py +0 -0
  456. {cg-83.2.2 → cg-83.13.0}/cg/models/delivery/delivery.py +0 -0
  457. {cg-83.2.2 → cg-83.13.0}/cg/models/delivery_report/__init__.py +0 -0
  458. {cg-83.2.2 → cg-83.13.0}/cg/models/delivery_report/metadata.py +0 -0
  459. {cg-83.2.2 → cg-83.13.0}/cg/models/delivery_report/report.py +0 -0
  460. {cg-83.2.2 → cg-83.13.0}/cg/models/delivery_report/sample.py +0 -0
  461. {cg-83.2.2 → cg-83.13.0}/cg/models/delivery_report/validators.py +0 -0
  462. {cg-83.2.2 → cg-83.13.0}/cg/models/demultiplex/__init__.py +0 -0
  463. {cg-83.2.2 → cg-83.13.0}/cg/models/demultiplex/run_parameters.py +0 -0
  464. {cg-83.2.2 → cg-83.13.0}/cg/models/demultiplex/sbatch.py +0 -0
  465. {cg-83.2.2 → cg-83.13.0}/cg/models/downsample/downsample_data.py +0 -0
  466. {cg-83.2.2 → cg-83.13.0}/cg/models/email.py +0 -0
  467. {cg-83.2.2 → cg-83.13.0}/cg/models/fastq.py +0 -0
  468. {cg-83.2.2 → cg-83.13.0}/cg/models/file_data.py +0 -0
  469. {cg-83.2.2 → cg-83.13.0}/cg/models/fohm/__init__.py +0 -0
  470. {cg-83.2.2 → cg-83.13.0}/cg/models/fohm/reports.py +0 -0
  471. {cg-83.2.2 → cg-83.13.0}/cg/models/invoice/__init__.py +0 -0
  472. {cg-83.2.2 → cg-83.13.0}/cg/models/invoice/invoice.py +0 -0
  473. {cg-83.2.2 → cg-83.13.0}/cg/models/lims/__init__.py +0 -0
  474. {cg-83.2.2 → cg-83.13.0}/cg/models/lims/sample.py +0 -0
  475. {cg-83.2.2 → cg-83.13.0}/cg/models/mip/__init__.py +0 -0
  476. {cg-83.2.2 → cg-83.13.0}/cg/models/mip/mip_analysis.py +0 -0
  477. {cg-83.2.2 → cg-83.13.0}/cg/models/mip/mip_config.py +0 -0
  478. {cg-83.2.2 → cg-83.13.0}/cg/models/mip/mip_metrics_deliverables.py +0 -0
  479. {cg-83.2.2 → cg-83.13.0}/cg/models/mip/mip_sample_info.py +0 -0
  480. {cg-83.2.2 → cg-83.13.0}/cg/models/nallo/__init__.py +0 -0
  481. {cg-83.2.2 → cg-83.13.0}/cg/models/observations/__init__.py +0 -0
  482. {cg-83.2.2 → cg-83.13.0}/cg/models/observations/input_files.py +0 -0
  483. {cg-83.2.2 → cg-83.13.0}/cg/models/orders/__init__.py +0 -0
  484. {cg-83.2.2 → cg-83.13.0}/cg/models/orders/constants.py +0 -0
  485. {cg-83.2.2 → cg-83.13.0}/cg/models/orders/excel_sample.py +0 -0
  486. {cg-83.2.2 → cg-83.13.0}/cg/models/orders/json_sample.py +0 -0
  487. {cg-83.2.2 → cg-83.13.0}/cg/models/orders/orderform_schema.py +0 -0
  488. {cg-83.2.2 → cg-83.13.0}/cg/models/orders/sample_base.py +0 -0
  489. {cg-83.2.2 → cg-83.13.0}/cg/models/orders/validators/__init__.py +0 -0
  490. {cg-83.2.2 → cg-83.13.0}/cg/models/orders/validators/excel_sample_validators.py +0 -0
  491. {cg-83.2.2 → cg-83.13.0}/cg/models/orders/validators/json_sample_validators.py +0 -0
  492. {cg-83.2.2 → cg-83.13.0}/cg/models/orders/validators/sample_base_validators.py +0 -0
  493. {cg-83.2.2 → cg-83.13.0}/cg/models/qc_metrics.py +0 -0
  494. {cg-83.2.2 → cg-83.13.0}/cg/models/raredisease/__init__.py +0 -0
  495. {cg-83.2.2 → cg-83.13.0}/cg/models/rnafusion/__init__.py +0 -0
  496. {cg-83.2.2 → cg-83.13.0}/cg/models/run_devices/__init__.py +0 -0
  497. {cg-83.2.2 → cg-83.13.0}/cg/models/run_devices/illumina_run_directory_data.py +0 -0
  498. {cg-83.2.2 → cg-83.13.0}/cg/models/run_devices/utils.py +0 -0
  499. {cg-83.2.2 → cg-83.13.0}/cg/models/scout/__init__.py +0 -0
  500. {cg-83.2.2 → cg-83.13.0}/cg/models/scout/validators.py +0 -0
  501. {cg-83.2.2 → cg-83.13.0}/cg/models/slurm/__init__.py +0 -0
  502. {cg-83.2.2 → cg-83.13.0}/cg/models/slurm/sbatch.py +0 -0
  503. {cg-83.2.2 → cg-83.13.0}/cg/models/taxprofiler/__init__.py +0 -0
  504. {cg-83.2.2 → cg-83.13.0}/cg/models/workflow/__init__.py +0 -0
  505. {cg-83.2.2 → cg-83.13.0}/cg/models/workflow/mutant.py +0 -0
  506. {cg-83.2.2 → cg-83.13.0}/cg/models/workflow/validators.py +0 -0
  507. {cg-83.2.2 → cg-83.13.0}/cg/resources/__init__.py +0 -0
  508. {cg-83.2.2 → cg-83.13.0}/cg/resources/rnafusion_bundle_filenames.yaml +0 -0
  509. {cg-83.2.2 → cg-83.13.0}/cg/resources/tomte_bundle_filenames.yaml +0 -0
  510. {cg-83.2.2 → cg-83.13.0}/cg/server/__init__.py +0 -0
  511. {cg-83.2.2 → cg-83.13.0}/cg/server/app_config.py +0 -0
  512. {cg-83.2.2 → cg-83.13.0}/cg/server/auto.py +0 -0
  513. {cg-83.2.2 → cg-83.13.0}/cg/server/dto/__init__.py +0 -0
  514. {cg-83.2.2 → cg-83.13.0}/cg/server/dto/cases/requests.py +0 -0
  515. {cg-83.2.2 → cg-83.13.0}/cg/server/dto/delivery_message/__init__.py +0 -0
  516. {cg-83.2.2 → cg-83.13.0}/cg/server/dto/delivery_message/delivery_message_request.py +0 -0
  517. {cg-83.2.2 → cg-83.13.0}/cg/server/dto/delivery_message/delivery_message_response.py +0 -0
  518. {cg-83.2.2 → cg-83.13.0}/cg/server/dto/orders/__init__.py +0 -0
  519. {cg-83.2.2 → cg-83.13.0}/cg/server/dto/orders/order_delivery_update_request.py +0 -0
  520. {cg-83.2.2 → cg-83.13.0}/cg/server/dto/orders/order_patch_request.py +0 -0
  521. {cg-83.2.2 → cg-83.13.0}/cg/server/dto/orders/orders_request.py +0 -0
  522. {cg-83.2.2 → cg-83.13.0}/cg/server/dto/orders/orders_response.py +0 -0
  523. {cg-83.2.2 → cg-83.13.0}/cg/server/dto/samples/__init__.py +0 -0
  524. {cg-83.2.2 → cg-83.13.0}/cg/server/dto/samples/requests.py +0 -0
  525. {cg-83.2.2 → cg-83.13.0}/cg/server/dto/samples/samples_response.py +0 -0
  526. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/__init__.py +0 -0
  527. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/analyses.py +0 -0
  528. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/applications.py +0 -0
  529. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/cases.py +0 -0
  530. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/error_handler.py +0 -0
  531. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/index_sequences.py +0 -0
  532. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/orders.py +0 -0
  533. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/pools.py +0 -0
  534. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/samples.py +0 -0
  535. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/sequencing_metrics/__init__.py +0 -0
  536. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/sequencing_metrics/dtos.py +0 -0
  537. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/sequencing_metrics/error_handler.py +0 -0
  538. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/sequencing_metrics/illumina_sequencing_metrics.py +0 -0
  539. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/sequencing_metrics/pacbio_sequencing_metrics.py +0 -0
  540. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/users.py +0 -0
  541. {cg-83.2.2 → cg-83.13.0}/cg/server/endpoints/utils.py +0 -0
  542. {cg-83.2.2 → cg-83.13.0}/cg/server/ext.py +0 -0
  543. {cg-83.2.2 → cg-83.13.0}/cg/server/invoices/__init__.py +0 -0
  544. {cg-83.2.2 → cg-83.13.0}/cg/server/invoices/templates/invoices/index.html +0 -0
  545. {cg-83.2.2 → cg-83.13.0}/cg/server/invoices/templates/invoices/invoice.html +0 -0
  546. {cg-83.2.2 → cg-83.13.0}/cg/server/invoices/templates/invoices/layout.html +0 -0
  547. {cg-83.2.2 → cg-83.13.0}/cg/server/invoices/templates/invoices/new.html +0 -0
  548. {cg-83.2.2 → cg-83.13.0}/cg/server/invoices/views.py +0 -0
  549. {cg-83.2.2 → cg-83.13.0}/cg/server/templates/admin/index.html +0 -0
  550. {cg-83.2.2 → cg-83.13.0}/cg/server/utils.py +0 -0
  551. {cg-83.2.2 → cg-83.13.0}/cg/services/__init__.py +0 -0
  552. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_service/__init__.py +0 -0
  553. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_service/analysis_service.py +0 -0
  554. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/analysis_starter.py +0 -0
  555. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/abstract_model.py +0 -0
  556. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/extensions/nallo.py +0 -0
  557. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/extensions/pipeline_extension.py +0 -0
  558. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/extensions/raredisease.py +0 -0
  559. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/extensions/tomte_extension.py +0 -0
  560. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/balsamic_config.py +0 -0
  561. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/gene_panel.py +0 -0
  562. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/managed_variants.py +0 -0
  563. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/microsalt_config.py +0 -0
  564. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/mip_dna_config.py +0 -0
  565. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/config_file.py +0 -0
  566. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/abstract.py +0 -0
  567. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/raredisease.py +0 -0
  568. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/rnafusion.py +0 -0
  569. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/taxprofiler.py +0 -0
  570. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/utils.py +0 -0
  571. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/creator.py +0 -0
  572. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/nallo_sample_sheet_creator.py +0 -0
  573. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/protocol.py +0 -0
  574. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/raredisease_sample_sheet_creator.py +0 -0
  575. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/rnafusion_sample_sheet_creator.py +0 -0
  576. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/taxprofiler_sample_sheet_creator.py +0 -0
  577. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/tomte_sample_sheet_creator.py +0 -0
  578. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/utils.py +0 -0
  579. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/implementations/balsamic.py +0 -0
  580. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/implementations/microsalt.py +0 -0
  581. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/implementations/mip_dna.py +0 -0
  582. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/implementations/nextflow.py +0 -0
  583. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/models/balsamic.py +0 -0
  584. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/models/microsalt.py +0 -0
  585. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/models/mip_dna.py +0 -0
  586. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/configurator/models/nextflow.py +0 -0
  587. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/constants.py +0 -0
  588. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/factories/configurator_factory.py +0 -0
  589. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/factories/starter_factory.py +0 -0
  590. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/input_fetcher/implementations/bam_fetcher.py +0 -0
  591. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/input_fetcher/implementations/fastq_fetcher.py +0 -0
  592. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/input_fetcher/input_fetcher.py +0 -0
  593. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/submitters/seqera_platform/dtos.py +0 -0
  594. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/submitters/seqera_platform/seqera_platform_client.py +0 -0
  595. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/submitters/seqera_platform/seqera_platform_submitter.py +0 -0
  596. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/submitters/submitter.py +0 -0
  597. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/submitters/subprocess/commands.py +0 -0
  598. {cg-83.2.2 → cg-83.13.0}/cg/services/analysis_starter/submitters/subprocess/submitter.py +0 -0
  599. {cg-83.2.2 → cg-83.13.0}/cg/services/decompression_service/decompressor.py +0 -0
  600. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/__init__.py +0 -0
  601. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/constants.py +0 -0
  602. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/deliver_files_service/__init__.py +0 -0
  603. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/deliver_files_service/deliver_files_service.py +0 -0
  604. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/deliver_files_service/error_handling.py +0 -0
  605. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/deliver_files_service/exc.py +0 -0
  606. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/factory.py +0 -0
  607. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/abstract.py +0 -0
  608. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/analysis_raw_data_service.py +0 -0
  609. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/analysis_service.py +0 -0
  610. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/error_handling.py +0 -0
  611. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/exc.py +0 -0
  612. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/models.py +0 -0
  613. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/raw_data_service.py +0 -0
  614. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/__init__.py +0 -0
  615. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/destination/__init__.py +0 -0
  616. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/destination/abstract.py +0 -0
  617. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/destination/base_service.py +0 -0
  618. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/destination/models.py +0 -0
  619. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/__init__.py +0 -0
  620. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/abstract.py +0 -0
  621. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/case_service.py +0 -0
  622. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/concatenation_service.py +0 -0
  623. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/models.py +0 -0
  624. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/mutant_service.py +0 -0
  625. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/sample_service.py +0 -0
  626. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/path_name/__init__.py +0 -0
  627. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/path_name/abstract.py +0 -0
  628. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/path_name/flat_structure.py +0 -0
  629. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_formatter/path_name/nested_structure.py +0 -0
  630. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_mover/abstract.py +0 -0
  631. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_mover/base_service.py +0 -0
  632. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/file_mover/customer_inbox_service.py +0 -0
  633. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/rsync/__init__.py +0 -0
  634. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/rsync/models.py +0 -0
  635. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/rsync/sbatch_commands.py +0 -0
  636. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/rsync/service.py +0 -0
  637. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/__init__.py +0 -0
  638. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/abstract.py +0 -0
  639. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/error_handling.py +0 -0
  640. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/exc.py +0 -0
  641. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/fohm_upload_service.py +0 -0
  642. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/models.py +0 -0
  643. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/sample_and_case_service.py +0 -0
  644. {cg-83.2.2 → cg-83.13.0}/cg/services/deliver_files/utils.py +0 -0
  645. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/__init__.py +0 -0
  646. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/delivery_message_service.py +0 -0
  647. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/__init__.py +0 -0
  648. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/analysis_message.py +0 -0
  649. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/analysis_scout_message.py +0 -0
  650. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/bam_message.py +0 -0
  651. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/covid_message.py +0 -0
  652. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/delivery_message.py +0 -0
  653. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/fastq_analysis_message.py +0 -0
  654. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/fastq_analysis_scout_message.py +0 -0
  655. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/fastq_message.py +0 -0
  656. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/fastq_scout_message.py +0 -0
  657. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/microsalt_message.py +0 -0
  658. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/order_message.py +0 -0
  659. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/raw_data_analysis_message.py +0 -0
  660. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/raw_data_analysis_scout_message.py +0 -0
  661. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/raw_data_scout_message.py +0 -0
  662. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/rna_delivery_message.py +0 -0
  663. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/scout_message.py +0 -0
  664. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/statina_message.py +0 -0
  665. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/messages/utils.py +0 -0
  666. {cg-83.2.2 → cg-83.13.0}/cg/services/delivery_message/utils.py +0 -0
  667. {cg-83.2.2 → cg-83.13.0}/cg/services/fastq_concatenation_service/__init__.py +0 -0
  668. {cg-83.2.2 → cg-83.13.0}/cg/services/fastq_concatenation_service/exceptions.py +0 -0
  669. {cg-83.2.2 → cg-83.13.0}/cg/services/fastq_concatenation_service/fastq_concatenation_service.py +0 -0
  670. {cg-83.2.2 → cg-83.13.0}/cg/services/fastq_concatenation_service/utils.py +0 -0
  671. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/__init__.py +0 -0
  672. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/backup/__init__.py +0 -0
  673. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/backup/backup_service.py +0 -0
  674. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/backup/encrypt_service.py +0 -0
  675. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/backup/models.py +0 -0
  676. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/backup/utils.py +0 -0
  677. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/backup/validators.py +0 -0
  678. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/cleaning/__init__.py +0 -0
  679. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/cleaning/clean_runs_service.py +0 -0
  680. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/data_transfer/__init__.py +0 -0
  681. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/data_transfer/data_transfer_service.py +0 -0
  682. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/data_transfer/models.py +0 -0
  683. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/file_parsing/__init__.py +0 -0
  684. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/file_parsing/bcl_convert_metrics_parser.py +0 -0
  685. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/file_parsing/demux_version_service.py +0 -0
  686. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/file_parsing/models.py +0 -0
  687. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/file_parsing/sequencing_times/collect_sequencing_times.py +0 -0
  688. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/file_parsing/sequencing_times/hiseq_2500_sequencing_times_service.py +0 -0
  689. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/file_parsing/sequencing_times/hiseq_x_sequencing_times_service.py +0 -0
  690. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/file_parsing/sequencing_times/novaseq_6000_sequencing_times.py +0 -0
  691. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/file_parsing/sequencing_times/novaseq_x_sequencing_times_service.py +0 -0
  692. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/file_parsing/sequencing_times/sequencing_time_service.py +0 -0
  693. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/post_processing/__init__.py +0 -0
  694. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/post_processing/housekeeper_storage.py +0 -0
  695. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/post_processing/post_processing_service.py +0 -0
  696. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/post_processing/utils.py +0 -0
  697. {cg-83.2.2 → cg-83.13.0}/cg/services/illumina/post_processing/validation.py +0 -0
  698. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/__init__.py +0 -0
  699. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/constants.py +0 -0
  700. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/lims_service/service.py +0 -0
  701. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/order_service/__init__.py +0 -0
  702. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/order_service/models.py +0 -0
  703. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/order_service/order_service.py +0 -0
  704. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/order_summary_service/__init__.py +0 -0
  705. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/order_summary_service/dto/__init__.py +0 -0
  706. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/order_summary_service/dto/order_summary.py +0 -0
  707. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/order_summary_service/order_summary_service.py +0 -0
  708. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/order_summary_service/utils.py +0 -0
  709. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/storing/__init__.py +0 -0
  710. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/storing/constants.py +0 -0
  711. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/storing/implementations/__init__.py +0 -0
  712. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/storing/implementations/case_order_service.py +0 -0
  713. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/storing/implementations/fastq_order_service.py +0 -0
  714. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/storing/implementations/metagenome_order_service.py +0 -0
  715. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/storing/implementations/microbial_fastq_order_service.py +0 -0
  716. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/storing/implementations/microbial_order_service.py +0 -0
  717. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/storing/implementations/pacbio_order_service.py +0 -0
  718. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/storing/implementations/pool_order_service.py +0 -0
  719. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/storing/implementations/taxprofiler_order_service.py +0 -0
  720. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/storing/service.py +0 -0
  721. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/storing/service_registry.py +0 -0
  722. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/submitter/service.py +0 -0
  723. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/submitter/ticket_handler.py +0 -0
  724. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/__init__.py +0 -0
  725. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/errors/__init__.py +0 -0
  726. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/errors/case_errors.py +0 -0
  727. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/errors/case_sample_errors.py +0 -0
  728. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/errors/order_errors.py +0 -0
  729. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/errors/sample_errors.py +0 -0
  730. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/errors/validation_errors.py +0 -0
  731. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/model_validator/model_validator.py +0 -0
  732. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/model_validator/utils.py +0 -0
  733. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/models/__init__.py +0 -0
  734. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/models/case.py +0 -0
  735. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/models/case_aliases.py +0 -0
  736. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/models/discriminators.py +0 -0
  737. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/models/existing_case.py +0 -0
  738. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/models/existing_sample.py +0 -0
  739. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/models/order.py +0 -0
  740. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/models/order_aliases.py +0 -0
  741. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/models/order_with_cases.py +0 -0
  742. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/models/order_with_samples.py +0 -0
  743. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/models/sample.py +0 -0
  744. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/models/sample_aliases.py +0 -0
  745. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/models/utils.py +0 -0
  746. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_type_maps.py +0 -0
  747. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/__init__.py +0 -0
  748. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic/constants.py +0 -0
  749. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic/models/case.py +0 -0
  750. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic/models/order.py +0 -0
  751. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic/models/sample.py +0 -0
  752. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic/validation_rules.py +0 -0
  753. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic_umi/constants.py +0 -0
  754. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic_umi/models/case.py +0 -0
  755. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic_umi/models/order.py +0 -0
  756. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic_umi/models/sample.py +0 -0
  757. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic_umi/validation_rules.py +0 -0
  758. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/fastq/constants.py +0 -0
  759. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/fastq/models/order.py +0 -0
  760. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/fastq/models/sample.py +0 -0
  761. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/fastq/validation_rules.py +0 -0
  762. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/fluffy/constants.py +0 -0
  763. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/fluffy/models/order.py +0 -0
  764. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/fluffy/models/sample.py +0 -0
  765. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/fluffy/validation_rules.py +0 -0
  766. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/metagenome/constants.py +0 -0
  767. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/metagenome/models/order.py +0 -0
  768. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/metagenome/models/sample.py +0 -0
  769. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/metagenome/validation_rules.py +0 -0
  770. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/microbial_fastq/constants.py +0 -0
  771. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/microbial_fastq/models/order.py +0 -0
  772. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/microbial_fastq/models/sample.py +0 -0
  773. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/microbial_fastq/validation_rules.py +0 -0
  774. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/microsalt/constants.py +0 -0
  775. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/microsalt/models/order.py +0 -0
  776. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/microsalt/models/sample.py +0 -0
  777. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/microsalt/validation_rules.py +0 -0
  778. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_dna/constants.py +0 -0
  779. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_dna/models/case.py +0 -0
  780. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_dna/models/order.py +0 -0
  781. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_dna/models/sample.py +0 -0
  782. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_dna/validation_rules.py +0 -0
  783. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_rna/constants.py +0 -0
  784. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_rna/models/case.py +0 -0
  785. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_rna/models/order.py +0 -0
  786. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_rna/models/sample.py +0 -0
  787. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_rna/validation_rules.py +0 -0
  788. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mutant/constants.py +0 -0
  789. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mutant/models/order.py +0 -0
  790. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mutant/models/sample.py +0 -0
  791. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/mutant/validation_rules.py +0 -0
  792. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/nallo/constants.py +0 -0
  793. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/nallo/models/case.py +0 -0
  794. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/nallo/models/order.py +0 -0
  795. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/nallo/models/sample.py +0 -0
  796. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/nallo/validation_rules.py +0 -0
  797. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/order_validation_rules.py +0 -0
  798. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/pacbio_long_read/constants.py +0 -0
  799. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/pacbio_long_read/models/order.py +0 -0
  800. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/pacbio_long_read/models/sample.py +0 -0
  801. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/pacbio_long_read/validation_rules.py +0 -0
  802. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/raredisease/constants.py +0 -0
  803. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/raredisease/models/case.py +0 -0
  804. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/raredisease/models/order.py +0 -0
  805. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/raredisease/models/sample.py +0 -0
  806. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/raredisease/validation_rules.py +0 -0
  807. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/rml/constants.py +0 -0
  808. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/rml/models/order.py +0 -0
  809. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/rml/models/sample.py +0 -0
  810. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/rml/validation_rules.py +0 -0
  811. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/rna_fusion/constants.py +0 -0
  812. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/rna_fusion/models/case.py +0 -0
  813. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/rna_fusion/models/order.py +0 -0
  814. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/rna_fusion/models/sample.py +0 -0
  815. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/rna_fusion/validation_rules.py +0 -0
  816. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/taxprofiler/constants.py +0 -0
  817. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/taxprofiler/models/order.py +0 -0
  818. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/taxprofiler/models/sample.py +0 -0
  819. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/taxprofiler/validation_rules.py +0 -0
  820. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/tomte/constants.py +0 -0
  821. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/tomte/models/case.py +0 -0
  822. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/tomte/models/order.py +0 -0
  823. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/tomte/models/sample.py +0 -0
  824. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/order_types/tomte/validation_rules.py +0 -0
  825. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/response_mapper.py +0 -0
  826. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/__init__.py +0 -0
  827. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/case/__init__.py +0 -0
  828. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/case/rules.py +0 -0
  829. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/case/utils.py +0 -0
  830. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/__init__.py +0 -0
  831. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/pedigree/__init__.py +0 -0
  832. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/pedigree/models.py +0 -0
  833. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/pedigree/utils.py +0 -0
  834. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/pedigree/validate_pedigree.py +0 -0
  835. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/rules.py +0 -0
  836. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/utils.py +0 -0
  837. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/order/__init__.py +0 -0
  838. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/order/rules.py +0 -0
  839. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/sample/__init__.py +0 -0
  840. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/sample/rules.py +0 -0
  841. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/sample/utils.py +0 -0
  842. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/rules/utils.py +0 -0
  843. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/service.py +0 -0
  844. {cg-83.2.2 → cg-83.13.0}/cg/services/orders/validation/utils.py +0 -0
  845. {cg-83.2.2 → cg-83.13.0}/cg/services/pdc_service/__init__.py +0 -0
  846. {cg-83.2.2 → cg-83.13.0}/cg/services/pdc_service/pdc_service.py +0 -0
  847. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/__init__.py +0 -0
  848. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/abstract_classes.py +0 -0
  849. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/abstract_models.py +0 -0
  850. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/constants.py +0 -0
  851. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/error_handler.py +0 -0
  852. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/exc.py +0 -0
  853. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/__init__.py +0 -0
  854. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/data_transfer_service/__init__.py +0 -0
  855. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/housekeeper_service/models.py +0 -0
  856. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/housekeeper_service/pacbio_houskeeper_service.py +0 -0
  857. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/metrics_parser/__init__.py +0 -0
  858. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/metrics_parser/metrics_parser.py +0 -0
  859. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/metrics_parser/utils.py +0 -0
  860. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/post_processing_service.py +0 -0
  861. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/run_data_generator/pacbio_run_data_generator.py +0 -0
  862. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/run_data_generator/run_data.py +0 -0
  863. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/run_file_manager/models.py +0 -0
  864. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/run_file_manager/run_file_manager.py +0 -0
  865. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/pacbio/run_validator/pacbio_run_validator.py +0 -0
  866. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/run_names/__init__.py +0 -0
  867. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/run_names/pacbio.py +0 -0
  868. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/run_names/service.py +0 -0
  869. {cg-83.2.2 → cg-83.13.0}/cg/services/run_devices/validators.py +0 -0
  870. {cg-83.2.2 → cg-83.13.0}/cg/services/sample_run_metrics_service/__init__.py +0 -0
  871. {cg-83.2.2 → cg-83.13.0}/cg/services/sample_run_metrics_service/dtos.py +0 -0
  872. {cg-83.2.2 → cg-83.13.0}/cg/services/sample_run_metrics_service/sample_run_metrics_service.py +0 -0
  873. {cg-83.2.2 → cg-83.13.0}/cg/services/sample_run_metrics_service/utils.py +0 -0
  874. {cg-83.2.2 → cg-83.13.0}/cg/services/sequencing_qc_service/__init__.py +0 -0
  875. {cg-83.2.2 → cg-83.13.0}/cg/services/sequencing_qc_service/quality_checks/checks.py +0 -0
  876. {cg-83.2.2 → cg-83.13.0}/cg/services/sequencing_qc_service/quality_checks/utils.py +0 -0
  877. {cg-83.2.2 → cg-83.13.0}/cg/services/sequencing_qc_service/sequencing_qc_service.py +0 -0
  878. {cg-83.2.2 → cg-83.13.0}/cg/services/sequencing_qc_service/utils.py +0 -0
  879. {cg-83.2.2 → cg-83.13.0}/cg/services/slurm_service/__init__.py +0 -0
  880. {cg-83.2.2 → cg-83.13.0}/cg/services/slurm_service/slurm_cli_service.py +0 -0
  881. {cg-83.2.2 → cg-83.13.0}/cg/services/slurm_service/slurm_service.py +0 -0
  882. {cg-83.2.2 → cg-83.13.0}/cg/services/slurm_upload_service/__init__.py +0 -0
  883. {cg-83.2.2 → cg-83.13.0}/cg/services/slurm_upload_service/slurm_upload_config.py +0 -0
  884. {cg-83.2.2 → cg-83.13.0}/cg/services/slurm_upload_service/slurm_upload_service.py +0 -0
  885. {cg-83.2.2 → cg-83.13.0}/cg/services/slurm_upload_service/utils.py +0 -0
  886. {cg-83.2.2 → cg-83.13.0}/cg/services/validate_file_transfer_service/validate_file_transfer_service.py +0 -0
  887. {cg-83.2.2 → cg-83.13.0}/cg/services/web_services/application/models.py +0 -0
  888. {cg-83.2.2 → cg-83.13.0}/cg/services/web_services/application/service.py +0 -0
  889. {cg-83.2.2 → cg-83.13.0}/cg/services/web_services/case/service.py +0 -0
  890. {cg-83.2.2 → cg-83.13.0}/cg/services/web_services/sample/dto_mappers.py +0 -0
  891. {cg-83.2.2 → cg-83.13.0}/cg/services/web_services/sample/service.py +0 -0
  892. {cg-83.2.2 → cg-83.13.0}/cg/services/web_services/sample/utils.py +0 -0
  893. {cg-83.2.2 → cg-83.13.0}/cg/store/__init__.py +0 -0
  894. {cg-83.2.2 → cg-83.13.0}/cg/store/api/data_classes.py +0 -0
  895. {cg-83.2.2 → cg-83.13.0}/cg/store/base.py +0 -0
  896. {cg-83.2.2 → cg-83.13.0}/cg/store/crud/__init__.py +0 -0
  897. {cg-83.2.2 → cg-83.13.0}/cg/store/crud/delete.py +0 -0
  898. {cg-83.2.2 → cg-83.13.0}/cg/store/database.py +0 -0
  899. {cg-83.2.2 → cg-83.13.0}/cg/store/exc.py +0 -0
  900. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/__init__.py +0 -0
  901. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_analysis_filters.py +0 -0
  902. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_application_filters.py +0 -0
  903. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_application_limitations_filters.py +0 -0
  904. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_application_version_filters.py +0 -0
  905. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_bed_filters.py +0 -0
  906. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_bed_version_filters.py +0 -0
  907. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_case_filters.py +0 -0
  908. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_case_sample_filters.py +0 -0
  909. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_collaboration_filters.py +0 -0
  910. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_customer_filters.py +0 -0
  911. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_illumina_flow_cell_filters.py +0 -0
  912. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_illumina_metrics_filters.py +0 -0
  913. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_illumina_sequencing_run_filters.py +0 -0
  914. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_invoice_filters.py +0 -0
  915. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_order_filters.py +0 -0
  916. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_ordertype_application_filters.py +0 -0
  917. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_organism_filters.py +0 -0
  918. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_pacbio_smrt_cell_filters.py +0 -0
  919. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_panel_filters.py +0 -0
  920. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_pool_filters.py +0 -0
  921. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_sample_filters.py +0 -0
  922. {cg-83.2.2 → cg-83.13.0}/cg/store/filters/status_user_filters.py +0 -0
  923. {cg-83.2.2 → cg-83.13.0}/cg/store/store.py +0 -0
  924. {cg-83.2.2 → cg-83.13.0}/cg/utils/__init__.py +0 -0
  925. {cg-83.2.2 → cg-83.13.0}/cg/utils/calculations.py +0 -0
  926. {cg-83.2.2 → cg-83.13.0}/cg/utils/checksum/__init__.py +0 -0
  927. {cg-83.2.2 → cg-83.13.0}/cg/utils/checksum/checksum.py +0 -0
  928. {cg-83.2.2 → cg-83.13.0}/cg/utils/click/EnumChoice.py +0 -0
  929. {cg-83.2.2 → cg-83.13.0}/cg/utils/click/__init__.py +0 -0
  930. {cg-83.2.2 → cg-83.13.0}/cg/utils/commands.py +0 -0
  931. {cg-83.2.2 → cg-83.13.0}/cg/utils/date.py +0 -0
  932. {cg-83.2.2 → cg-83.13.0}/cg/utils/dict.py +0 -0
  933. {cg-83.2.2 → cg-83.13.0}/cg/utils/email.py +0 -0
  934. {cg-83.2.2 → cg-83.13.0}/cg/utils/enums.py +0 -0
  935. {cg-83.2.2 → cg-83.13.0}/cg/utils/files.py +0 -0
  936. {cg-83.2.2 → cg-83.13.0}/cg/utils/flask/__init__.py +0 -0
  937. {cg-83.2.2 → cg-83.13.0}/cg/utils/flask/enum.py +0 -0
  938. {cg-83.2.2 → cg-83.13.0}/cg/utils/mapping.py +0 -0
  939. {cg-83.2.2 → cg-83.13.0}/cg/utils/time.py +0 -0
  940. {cg-83.2.2 → cg-83.13.0}/cg/utils/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cg
3
- Version: 83.2.2
3
+ Version: 83.13.0
4
4
  Summary: Clinical Genomics command center
5
5
  Requires-Python: >=3.11,<3.13
6
6
  Classifier: Programming Language :: Python
@@ -0,0 +1,2 @@
1
+ __title__ = "cg"
2
+ __version__ = "83.13.0"
@@ -134,7 +134,7 @@ class TrailblazerAPI:
134
134
  self,
135
135
  case_id: str,
136
136
  analysis_type: str,
137
- config_path: str,
137
+ config_path: str | None,
138
138
  out_dir: str,
139
139
  priority: TrailblazerPriority,
140
140
  workflow: Workflow,
@@ -7,7 +7,7 @@ import rich_click as click
7
7
  from cg.apps.mutacc_auto import MutaccAutoAPI
8
8
  from cg.apps.scout.scout_export import ScoutExportCase
9
9
  from cg.apps.scout.scoutapi import ScoutAPI
10
- from cg.cli.upload.utils import get_scout_api
10
+ from cg.cli.upload.utils import get_scout_api_by_genome_build
11
11
  from cg.constants.cli_options import DRY_RUN
12
12
  from cg.meta.upload.mutacc import UploadToMutaccAPI
13
13
  from cg.models.cg_config import CGConfig
@@ -19,17 +19,30 @@ LOG = logging.getLogger(__name__)
19
19
  @click.option("-c", "--case-id", help="internal case id, leave empty to process all")
20
20
  @click.option("-d", "--days-ago", type=int, default=1, help="days since solved")
21
21
  @click.option("-C", "--customers", type=str, multiple=True, help="Filter on customers")
22
+ @click.option(
23
+ "--scout-instance",
24
+ type=click.Choice(["hg19", "hg38"]),
25
+ help="Which scout instance to fetch cases from",
26
+ required=True,
27
+ )
22
28
  @DRY_RUN
23
29
  @click.pass_obj
24
30
  def process_solved(
25
- context: CGConfig, case_id: str | None, days_ago: int, customers: tuple[str], dry_run: bool
31
+ context: CGConfig,
32
+ scout_instance: str,
33
+ case_id: str | None,
34
+ days_ago: int,
35
+ customers: tuple[str],
36
+ dry_run: bool,
26
37
  ):
27
38
  """Process cases with mutacc that has been marked as solved in scout.
28
39
  This prepares them to be uploaded to the mutacc database"""
29
40
 
30
41
  LOG.info("----------------- PROCESS-SOLVED ----------------")
31
42
 
32
- scout_api: ScoutAPI = get_scout_api(cg_config=context, case_id=case_id)
43
+ scout_api: ScoutAPI = get_scout_api_by_genome_build(
44
+ cg_config=context, genome_build=scout_instance
45
+ )
33
46
  mutacc_auto_api: MutaccAutoAPI = context.mutacc_auto_api
34
47
  mutacc_upload_api = UploadToMutaccAPI(scout_api=scout_api, mutacc_auto_api=mutacc_auto_api)
35
48
 
@@ -8,7 +8,7 @@ from housekeeper.store.models import File, Version
8
8
 
9
9
  from cg.apps.housekeeper.hk import HousekeeperAPI
10
10
  from cg.apps.scout.scoutapi import ScoutAPI
11
- from cg.cli.upload.utils import get_scout_api, suggest_cases_to_upload
11
+ from cg.cli.upload.utils import get_scout_api_by_case, suggest_cases_to_upload
12
12
  from cg.constants import Workflow
13
13
  from cg.constants.cli_options import DRY_RUN
14
14
  from cg.constants.constants import FileFormat
@@ -145,7 +145,7 @@ def upload_case_to_scout(context: CGConfig, re_upload: bool, dry_run: bool, case
145
145
  LOG.info("----------------- UPLOAD -----------------------")
146
146
 
147
147
  housekeeper_api: HousekeeperAPI = context.housekeeper_api
148
- scout_api: ScoutAPI = get_scout_api(cg_config=context, case_id=case_id)
148
+ scout_api: ScoutAPI = get_scout_api_by_case(cg_config=context, case_id=case_id)
149
149
 
150
150
  tag_name: str = UploadScoutAPI.get_load_config_tag()
151
151
  version: Version = housekeeper_api.last_version(bundle=case_id)
@@ -24,6 +24,15 @@ def suggest_cases_to_upload(status_db: Store, workflow: Workflow | None = None)
24
24
  click.echo(case_obj)
25
25
 
26
26
 
27
- def get_scout_api(cg_config: CGConfig, case_id: str) -> ScoutAPI:
27
+ def get_scout_api_by_case(cg_config: CGConfig, case_id: str) -> ScoutAPI:
28
28
  workflow = cg_config.status_db.get_case_by_internal_id(case_id).data_analysis
29
29
  return cg_config.scout_api_38 if workflow == Workflow.NALLO else cg_config.scout_api_37
30
+
31
+
32
+ def get_scout_api_by_genome_build(cg_config: CGConfig, genome_build: str) -> ScoutAPI:
33
+ """Return the appropriate ScoutAPI based on the genome build."""
34
+ if genome_build == "hg38":
35
+ return cg_config.scout_api_38
36
+ if genome_build == "hg19":
37
+ return cg_config.scout_api_37
38
+ raise ValueError(f"Unsupported genome build: {genome_build}")
@@ -140,7 +140,12 @@ def store_available(context: click.Context, dry_run: bool) -> None:
140
140
  @ARGUMENT_CASE_ID
141
141
  @click.pass_obj
142
142
  def config_case(cg_config: CGConfig, case_id: str, panel_bed: str | None):
143
- """Configure a Balsamic case so that it is ready to be run."""
143
+ """Configure a Balsamic case so that it is ready to be run.
144
+
145
+ \b
146
+ Creates the case config file:
147
+ - CASE_ID.json
148
+ """
144
149
  factory = ConfiguratorFactory(cg_config)
145
150
  configurator = cast(BalsamicConfigurator, factory.get_configurator(Workflow.BALSAMIC))
146
151
  configurator.configure(case_id=case_id, panel_bed=panel_bed)
@@ -151,7 +156,13 @@ def config_case(cg_config: CGConfig, case_id: str, panel_bed: str | None):
151
156
  @ARGUMENT_CASE_ID
152
157
  @click.pass_obj
153
158
  def run(cg_config: CGConfig, case_id: str, workflow_profile: click.Path | None):
154
- """Run a preconfigured Balsamic case."""
159
+ """
160
+ Run a preconfigured Balsamic case.
161
+
162
+ \b
163
+ Assumes that case config file exist in the case run directory:
164
+ - CASE_ID.json
165
+ """
155
166
  factory = AnalysisStarterFactory(cg_config)
156
167
  analysis_starter: AnalysisStarter = factory.get_analysis_starter_for_workflow(Workflow.BALSAMIC)
157
168
  analysis_starter.run(case_id=case_id, workflow_profile=workflow_profile)
@@ -168,7 +179,14 @@ def start(
168
179
  panel_bed: str | None,
169
180
  workflow_profile: click.Path | None,
170
181
  ):
171
- """Start a Balsamic case. Configures the case if needed."""
182
+ """
183
+ Starts a Balsamic cases.
184
+
185
+ \b
186
+ Configures the case and creates the case config file:
187
+ - CASE_ID.json
188
+ and submits the job to slurm.
189
+ """
172
190
  factory = AnalysisStarterFactory(cg_config)
173
191
  analysis_starter: AnalysisStarter = factory.get_analysis_starter_for_workflow(Workflow.BALSAMIC)
174
192
  analysis_starter.start(case_id=case_id, workflow_profile=workflow_profile, panel_bed=panel_bed)
@@ -177,7 +195,14 @@ def start(
177
195
  @balsamic.command("start-available")
178
196
  @click.pass_obj
179
197
  def start_available(cg_config: CGConfig):
180
- """Starts all available raredisease cases."""
198
+ """
199
+ Starts all available Balsamic cases.
200
+
201
+ \b
202
+ Configures the individual case and creates its case config file:
203
+ - CASE_ID.json
204
+ and submits the job to slurm.
205
+ """
181
206
  LOG.info("Starting Balsamic workflow for all available cases.")
182
207
  factory = AnalysisStarterFactory(cg_config)
183
208
  analysis_starter = factory.get_analysis_starter_for_workflow(Workflow.BALSAMIC)
@@ -41,7 +41,9 @@ microsalt.add_command(resolve_compression)
41
41
  @ARGUMENT_CASE_ID
42
42
  @click.pass_obj
43
43
  def config_case(cg_config: CGConfig, case_id: str) -> None:
44
- """Create a config file for a microSALT case."""
44
+ """
45
+ Configure a microSALT case so that it is ready to be run.
46
+ """
45
47
  factory = ConfiguratorFactory(cg_config)
46
48
  configurator = cast(MicrosaltConfigurator, factory.get_configurator(Workflow.MICROSALT))
47
49
  configurator.configure(case_id=case_id)
@@ -5,7 +5,7 @@ from typing import cast
5
5
 
6
6
  import rich_click as click
7
7
 
8
- from cg.cli.utils import CLICK_CONTEXT_SETTINGS, echo_lines
8
+ from cg.cli.utils import CLICK_CONTEXT_SETTINGS
9
9
  from cg.cli.workflow.commands import ARGUMENT_CASE_ID
10
10
  from cg.cli.workflow.nf_analysis import (
11
11
  OPTION_RESUME,
@@ -16,7 +16,6 @@ from cg.cli.workflow.nf_analysis import (
16
16
  store_available,
17
17
  store_housekeeper,
18
18
  )
19
- from cg.constants.cli_options import DRY_RUN
20
19
  from cg.constants.constants import MetaApis, Workflow
21
20
  from cg.meta.workflow.analysis import AnalysisAPI
22
21
  from cg.meta.workflow.nallo import NalloAnalysisAPI
@@ -44,29 +43,14 @@ nallo.add_command(store_housekeeper)
44
43
  nallo.add_command(metrics_deliver)
45
44
 
46
45
 
47
- @nallo.command("panel")
48
- @DRY_RUN
49
- @ARGUMENT_CASE_ID
50
- @click.pass_obj
51
- def panel(context: CGConfig, case_id: str, dry_run: bool) -> None:
52
- """Write aggregated gene panel file exported from Scout."""
53
-
54
- analysis_api: NalloAnalysisAPI = context.meta_apis["analysis_api"]
55
- analysis_api.status_db.verify_case_exists(case_internal_id=case_id)
56
-
57
- bed_lines: list[str] = analysis_api.get_gene_panel(case_id=case_id)
58
- if dry_run:
59
- echo_lines(lines=bed_lines)
60
- return
61
- analysis_api.write_panel_as_tsv(case_id=case_id, content=bed_lines)
62
-
63
-
64
46
  @nallo.command("config-case")
65
47
  @ARGUMENT_CASE_ID
66
48
  @click.pass_obj
67
49
  def config_case(cg_config: CGConfig, case_id: str):
68
50
  """
69
- Configure a Nallo case so that it is ready to be run. \b
51
+ Configure a Nallo case so that it is ready to be run.
52
+
53
+ \b
70
54
  Creates the following files in the case run directory:
71
55
  - CASE_ID_params_file.yaml
72
56
  - CASE_ID_nextflow_config.json
@@ -84,7 +68,9 @@ def config_case(cg_config: CGConfig, case_id: str):
84
68
  @click.pass_obj
85
69
  def run(cg_config: CGConfig, case_id: str, resume: bool, revision: str | None) -> None:
86
70
  """
87
- Run a preconfigured Nallo case. \b
71
+ Run a preconfigured Nallo case.
72
+
73
+ \b
88
74
  Assumes that the following files exist in the case run directory:
89
75
  - CASE_ID_params_file.yaml
90
76
  - CASE_ID_nextflow_config.json
@@ -101,7 +87,9 @@ def run(cg_config: CGConfig, case_id: str, resume: bool, revision: str | None) -
101
87
  @click.pass_obj
102
88
  def start(cg_config: CGConfig, case_id: str, revision: str | None):
103
89
  """
104
- Start a Nallo case. \b
90
+ Start a Nallo case.
91
+
92
+ \b
105
93
  Configures the case and writes the following files:
106
94
  - CASE_ID_params_file.yaml
107
95
  - CASE_ID_nextflow_config.json
@@ -0,0 +1,135 @@
1
+ """CLI options for Nextflow and NF-Tower."""
2
+
3
+ import logging
4
+
5
+ import rich_click as click
6
+
7
+ from cg.cli.workflow.commands import ARGUMENT_CASE_ID
8
+ from cg.cli.workflow.utils import validate_force_store_option
9
+ from cg.constants.cli_options import COMMENT, DRY_RUN, FORCE
10
+ from cg.constants.constants import MetaApis
11
+ from cg.exc import CgError, HousekeeperStoreError
12
+ from cg.meta.workflow.nf_analysis import NfAnalysisAPI
13
+ from cg.models.cg_config import CGConfig
14
+
15
+ LOG = logging.getLogger(__name__)
16
+
17
+
18
+ OPTION_RESUME = click.option(
19
+ "--resume",
20
+ default=True,
21
+ show_default=True,
22
+ help="Execute the script using the cached results, useful to continue "
23
+ "executions that were stopped by an error",
24
+ )
25
+ OPTION_REVISION = click.option(
26
+ "--revision",
27
+ type=str,
28
+ help="Revision of workflow to run (either a git branch, tag or commit SHA number)",
29
+ )
30
+
31
+
32
+ @click.command("metrics-deliver")
33
+ @ARGUMENT_CASE_ID
34
+ @DRY_RUN
35
+ @click.pass_obj
36
+ def metrics_deliver(context: CGConfig, case_id: str, dry_run: bool) -> None:
37
+ """
38
+ Create and validate a metrics deliverables file for given case id.
39
+ If QC metrics are met it sets the status in Trailblazer to complete.
40
+ If failed, it sets it as failed and adds a comment with information of the failed metrics.
41
+ """
42
+ analysis_api: NfAnalysisAPI = context.meta_apis[MetaApis.ANALYSIS_API]
43
+ try:
44
+ analysis_api.metrics_deliver(case_id=case_id, dry_run=dry_run)
45
+ except CgError as error:
46
+ raise click.Abort() from error
47
+
48
+
49
+ @click.command("report-deliver")
50
+ @ARGUMENT_CASE_ID
51
+ @DRY_RUN
52
+ @FORCE
53
+ @click.pass_obj
54
+ def report_deliver(context: CGConfig, case_id: str, dry_run: bool, force: bool) -> None:
55
+ """
56
+ Create a Housekeeper deliverables file for a given case ID.
57
+
58
+ Raises:
59
+ click.Abort: If an error occurs during the deliverables report generation or validation.
60
+ """
61
+ analysis_api: NfAnalysisAPI = context.meta_apis[MetaApis.ANALYSIS_API]
62
+ try:
63
+ analysis_api.report_deliver(case_id=case_id, dry_run=dry_run, force=force)
64
+ except CgError as error:
65
+ LOG.error(f"Could not create report file: {error}")
66
+ raise click.Abort()
67
+
68
+
69
+ @click.command("store-housekeeper")
70
+ @ARGUMENT_CASE_ID
71
+ @DRY_RUN
72
+ @FORCE
73
+ @click.pass_obj
74
+ def store_housekeeper(context: CGConfig, case_id: str, dry_run: bool, force: bool) -> None:
75
+ """
76
+ Store a finished NF-analysis in Housekeeper.
77
+
78
+ Raises:
79
+ click.Abort: If an error occurs while storing a case bundle in Housekeeper.
80
+ """
81
+ analysis_api: NfAnalysisAPI = context.meta_apis[MetaApis.ANALYSIS_API]
82
+ try:
83
+ analysis_api.store_analysis_housekeeper(case_id=case_id, dry_run=dry_run, force=force)
84
+ except HousekeeperStoreError as error:
85
+ LOG.error(f"Could not store bundle in Housekeeper and StatusDB: {error}!")
86
+ raise click.Abort()
87
+
88
+
89
+ @click.command("store")
90
+ @ARGUMENT_CASE_ID
91
+ @COMMENT
92
+ @DRY_RUN
93
+ @FORCE
94
+ @click.pass_context
95
+ def store(
96
+ context: click.Context, case_id: str, comment: str | None, dry_run: bool, force: bool
97
+ ) -> None:
98
+ """
99
+ Store deliverable files in Housekeeper after meeting QC metrics criteria.
100
+
101
+ Raises:
102
+ click.Abort: If an error occurs during the deliverables file generation, metrics
103
+ validation, or storage processes.
104
+ """
105
+ validate_force_store_option(force=force, comment=comment)
106
+ analysis_api: NfAnalysisAPI = context.obj.meta_apis[MetaApis.ANALYSIS_API]
107
+ try:
108
+ analysis_api.store(case_id=case_id, comment=comment, dry_run=dry_run, force=force)
109
+ except Exception as error:
110
+ LOG.error(repr(error))
111
+ raise click.Abort()
112
+
113
+
114
+ @click.command("store-available")
115
+ @DRY_RUN
116
+ @click.pass_context
117
+ def store_available(context: click.Context, dry_run: bool) -> None:
118
+ """
119
+ Store finished analyses for cases marked as running in StatusDB and completed or QC in Trailblazer.
120
+
121
+ Raises:
122
+ click.Abort: If any error occurs during the storage process.
123
+ """
124
+
125
+ analysis_api: NfAnalysisAPI = context.obj.meta_apis[MetaApis.ANALYSIS_API]
126
+ was_successful: bool = True
127
+ for case in analysis_api.get_cases_to_store():
128
+ LOG.info(f"Storing deliverables for {case.internal_id}")
129
+ try:
130
+ analysis_api.store(case_id=case.internal_id, dry_run=dry_run)
131
+ except Exception as error:
132
+ LOG.error(f"Error storing {case.internal_id}: {repr(error)}")
133
+ was_successful = False
134
+ if not was_successful:
135
+ raise click.Abort()
@@ -49,7 +49,9 @@ raredisease.add_command(store_housekeeper)
49
49
  @click.pass_obj
50
50
  def config_case(cg_config: CGConfig, case_id: str):
51
51
  """
52
- Configure a raredisease case so that it is ready to be run. \b
52
+ Configure a raredisease case so that it is ready to be run.
53
+
54
+ \b
53
55
  Creates the following files in the case run directory:
54
56
  - CASE_ID_params_file.yaml
55
57
  - CASE_ID_nextflow_config.json
@@ -67,7 +69,9 @@ def config_case(cg_config: CGConfig, case_id: str):
67
69
  @click.pass_obj
68
70
  def run(cg_config: CGConfig, case_id: str, resume: bool, revision: str | None):
69
71
  """
70
- Run a preconfigured raredisease case. \b
72
+ Run a preconfigured raredisease case.
73
+
74
+ \b
71
75
  Assumes that the following files exist in the case run directory:
72
76
  - CASE_ID_params_file.yaml
73
77
  - CASE_ID_nextflow_config.json
@@ -86,7 +90,9 @@ def run(cg_config: CGConfig, case_id: str, resume: bool, revision: str | None):
86
90
  @click.pass_obj
87
91
  def start(cg_config: CGConfig, case_id: str, revision: str | None):
88
92
  """
89
- Start a raredisease case. \b
93
+ Start a raredisease case.
94
+
95
+ \b
90
96
  Configures the case and writes the following files:
91
97
  - CASE_ID_params_file.yaml
92
98
  - CASE_ID_nextflow_config.json
@@ -48,7 +48,15 @@ rnafusion.add_command(store_available)
48
48
  @ARGUMENT_CASE_ID
49
49
  @click.pass_obj
50
50
  def config_case(cg_config: CGConfig, case_id: str):
51
- """Configure an RNAFUSION case so that it is ready to be run."""
51
+ """
52
+ Configure an RNAFUSION case so that it is ready to be run.
53
+
54
+ \b
55
+ Creates the following files in the case run directory:
56
+ - CASE_ID_params_file.yaml
57
+ - CASE_ID_nextflow_config.json
58
+ - CASE_ID_samplesheet.csv
59
+ """
52
60
  factory = ConfiguratorFactory(cg_config)
53
61
  configurator = cast(NextflowConfigurator, factory.get_configurator(Workflow.RNAFUSION))
54
62
  configurator.configure(case_id=case_id)
@@ -60,7 +68,15 @@ def config_case(cg_config: CGConfig, case_id: str):
60
68
  @ARGUMENT_CASE_ID
61
69
  @click.pass_obj
62
70
  def run(cg_config: CGConfig, case_id: str, resume: bool, revision: str | None):
63
- """Run a preconfigured RNAFUSION case."""
71
+ """
72
+ Run a preconfigured RNAFUSION case.
73
+
74
+ \b
75
+ Assumes that the following files exist in the case run directory:
76
+ - CASE_ID_params_file.yaml
77
+ - CASE_ID_nextflow_config.json
78
+ - CASE_ID_samplesheet.csv
79
+ """
64
80
  factory = AnalysisStarterFactory(cg_config)
65
81
  analysis_starter: AnalysisStarter = factory.get_analysis_starter_for_workflow(
66
82
  Workflow.RNAFUSION
@@ -73,7 +89,16 @@ def run(cg_config: CGConfig, case_id: str, resume: bool, revision: str | None):
73
89
  @ARGUMENT_CASE_ID
74
90
  @click.pass_obj
75
91
  def start(cg_config: CGConfig, case_id: str, revision: str | None):
76
- """Start an RNAFUSION case. Configures the case if needed."""
92
+ """
93
+ Start an RNAFUSION case. Configures the case if needed.
94
+
95
+ \b
96
+ Configures the case and writes the following files:
97
+ - CASE_ID_params_file.yaml
98
+ - CASE_ID_nextflow_config.json
99
+ - CASE_ID_samplesheet.csv
100
+ and submits the job to the Seqera Platform.
101
+ """
77
102
  LOG.info(f"Starting RNAFUSION workflow for case {case_id}.")
78
103
  factory = AnalysisStarterFactory(cg_config)
79
104
  analysis_starter: AnalysisStarter = factory.get_analysis_starter_for_workflow(
@@ -41,11 +41,14 @@ def taxprofiler(context: click.Context) -> None:
41
41
  @ARGUMENT_CASE_ID
42
42
  @click.pass_obj
43
43
  def start(cg_config: CGConfig, case_id: str, revision: str | None) -> None:
44
- """Start a Taxprofiler case. \n
45
- Configures the case and writes the following files: \n
46
- - CASE_ID_params_file.yaml \n
47
- - CASE_ID_nextflow_config.json \n
48
- - CASE_ID_samplesheet.csv \n
44
+ """
45
+ Start a Taxprofiler case.
46
+
47
+ \b
48
+ Configures the case and writes the following files:
49
+ - CASE_ID_params_file.yaml
50
+ - CASE_ID_nextflow_config.json
51
+ - CASE_ID_samplesheet.csv
49
52
  and submits the job to the Seqera Platform.
50
53
  """
51
54
  factory = AnalysisStarterFactory(cg_config)
@@ -75,10 +78,13 @@ def start_available(cg_config: CGConfig) -> None:
75
78
  @ARGUMENT_CASE_ID
76
79
  @click.pass_obj
77
80
  def run(cg_config: CGConfig, case_id: str, resume: bool, revision: str | None) -> None:
78
- """Run a preconfigured Taxprofiler case. \n
79
- Assumes that the following files are in the case run directory: \n
80
- - CASE_ID_params_file.yaml \n
81
- - CASE_ID_nextflow_config.json \n
81
+ """
82
+ Run a preconfigured Taxprofiler case.
83
+
84
+ \b
85
+ Assumes that the following files are in the case run directory:
86
+ - CASE_ID_params_file.yaml
87
+ - CASE_ID_nextflow_config.json
82
88
  - CASE_ID_samplesheet.csv
83
89
  """
84
90
  factory = AnalysisStarterFactory(cg_config)
@@ -92,10 +98,12 @@ def run(cg_config: CGConfig, case_id: str, resume: bool, revision: str | None) -
92
98
  @ARGUMENT_CASE_ID
93
99
  @click.pass_obj
94
100
  def config_case(cg_config: CGConfig, case_id: str) -> None:
95
- """Configure a Taxprofiler case so that it is ready to be run. \n
96
- Creates the following files in the case run directory:\n
97
- - CASE_ID_params_file.yaml \n
98
- - CASE_ID_nextflow_config.json \n
101
+ """Configure a Taxprofiler case so that it is ready to be run.
102
+
103
+ \b
104
+ Creates the following files in the case run directory:
105
+ - CASE_ID_params_file.yaml
106
+ - CASE_ID_nextflow_config.json
99
107
  - CASE_ID_samplesheet.csv
100
108
  """
101
109
  factory = ConfiguratorFactory(cg_config)
@@ -49,7 +49,9 @@ tomte.add_command(store_available)
49
49
  @click.pass_obj
50
50
  def config_case(cg_config: CGConfig, case_id: str):
51
51
  """
52
- Configure a Tomte case so that it is ready to be run. \b
52
+ Configure a Tomte case so that it is ready to be run.
53
+
54
+ \b
53
55
  Creates the following files in the case run directory:
54
56
  - CASE_ID_params_file.yaml
55
57
  - CASE_ID_nextflow_config.json
@@ -68,7 +70,9 @@ def config_case(cg_config: CGConfig, case_id: str):
68
70
  @click.pass_obj
69
71
  def run(cg_config: CGConfig, case_id: str, resume: bool, revision: str | None) -> None:
70
72
  """
71
- Run a preconfigured Tomte case. \b
73
+ Run a preconfigured Tomte case.
74
+
75
+ \b
72
76
  Assumes that the following files exist in the case run directory:
73
77
  - CASE_ID_params_file.yaml
74
78
  - CASE_ID_nextflow_config.json
@@ -86,7 +90,9 @@ def run(cg_config: CGConfig, case_id: str, resume: bool, revision: str | None) -
86
90
  @click.pass_obj
87
91
  def start(cg_config: CGConfig, case_id: str, revision: str | None):
88
92
  """
89
- Start a Tomte case. \b
93
+ Start a Tomte case.
94
+
95
+ \b
90
96
  Configures the case and writes the following files:
91
97
  - CASE_ID_params_file.yaml
92
98
  - CASE_ID_nextflow_config.json
@@ -1,6 +1,6 @@
1
1
  """Enums for run_devices."""
2
2
 
3
- from enum import Enum, auto
3
+ from enum import Enum, StrEnum, auto
4
4
 
5
5
 
6
6
  class DeviceType(Enum):
@@ -8,3 +8,8 @@ class DeviceType(Enum):
8
8
  BIONANO = auto()
9
9
  OXFORD_NANOPORE = auto()
10
10
  PACBIO = auto()
11
+
12
+
13
+ class RevioNames(StrEnum):
14
+ BETTY = "Betty"
15
+ WILMA = "Wilma"
@@ -20,6 +20,7 @@ class GenePanelMasterList(StrEnum):
20
20
  CH = "CH"
21
21
  CHILDHYPOTONIA = "CHILDHYPOTONIA"
22
22
  CTD = "CTD"
23
+ COMPD = "COMPD"
23
24
  DIAB = "DIAB"
24
25
  ENDO = "ENDO"
25
26
  EP = "EP"
@@ -47,7 +48,7 @@ class GenePanelMasterList(StrEnum):
47
48
  SOVM = "SOVM"
48
49
  STROKE = "STROKE"
49
50
  AID = "AID"
50
- INHERITED_CANCER = "Inherited cancer"
51
+ IHC = "IHC"
51
52
  VEO_IBD = "VEO-IBD"
52
53
  KIDNEY = "Kidney"
53
54
  CAKUT = "CAKUT"
@@ -31,7 +31,7 @@ class Orderform(StrEnum):
31
31
  """Returns the current version of the given order form."""
32
32
  current_order_form_versions = {
33
33
  Orderform.MIP_DNA: "35",
34
- Orderform.RML: "20",
34
+ Orderform.RML: "21",
35
35
  Orderform.MICROSALT: "12",
36
36
  Orderform.NALLO: "1",
37
37
  Orderform.SARS_COV_2: "10",
@@ -64,6 +64,7 @@ class SmrtLinkDatabasesAliases:
64
64
  BIO_SAMPLE_NAME: str = "bioSampleName"
65
65
  CELL_ID: str = "cellId"
66
66
  CELL_INDEX: str = "cellIndex"
67
+ INSTRUMENT_NAME: str = "instrumentName"
67
68
  MOVIE_NAME: str = "metadataContextId"
68
69
  PATH: str = "path"
69
70
  RUN_COMPLETED_AT = "createdAt"
@@ -66,12 +66,12 @@ NALLO_CASE_TAGS = dict(
66
66
  multiqc={"multiqc-html"},
67
67
  peddy_check={"ped-check", "peddy"},
68
68
  peddy_ped={"ped", "peddy"},
69
- peddy_sex={"sex-check", "peddy"},
70
- vcf_snv_research={"vcf-snv-research"},
69
+ somalier_samples={"somalier", "relate-samples"},
71
70
  vcf_snv={"vcf-snv-clinical"},
72
- vcf_sv_research={"vcf-sv-research"},
73
- vcf_sv={"vcf-sv-clinical"},
71
+ vcf_snv_research={"vcf-snv-research"},
74
72
  vcf_str={"vcf-str"},
73
+ vcf_sv={"vcf-sv-clinical"},
74
+ vcf_sv_research={"vcf-sv-research"},
75
75
  )
76
76
 
77
77
  MIP_CASE_TAGS: dict[str, set[str]] = dict(
@@ -138,6 +138,8 @@ RAREDISEASE_SAMPLE_TAGS: dict[str, set[str]] = dict(
138
138
  NALLO_SAMPLE_TAGS: dict[str, set[str]] = dict(
139
139
  alignment_path={AlignmentFileTag.BAM, "haplotags"},
140
140
  assembly_alignment_path={AlignmentFileTag.BAM, "assembly"},
141
+ chromograph_autozyg={"chromograph", "autozyg"},
142
+ chromograph_coverage={"chromograph", "tcov"},
141
143
  d4_file={"coverage", "d4"},
142
144
  hificnv_coverage={"hificnv", "bigwig"},
143
145
  paraphase_alignment_path={AlignmentFileTag.BAM, NalloAnalysisTag.PARAPHASE},
@@ -150,6 +150,14 @@ class IlluminaRunAlreadyBackedUpError(CgError):
150
150
  """Raised when a flow cell is already backed-up."""
151
151
 
152
152
 
153
+ class PacbioSequencingRunAlreadyExistsError(CgError):
154
+ """Raised when a PacBio sequencing run already exists."""
155
+
156
+
157
+ class PacbioSequencingRunNotFoundError(CgError):
158
+ """Raised when a PacBio sequencing run is not found."""
159
+
160
+
153
161
  class HousekeeperFileMissingError(CgError):
154
162
  """
155
163
  Exception raised when a file is missing in Housekeeper.
@@ -216,10 +224,6 @@ class RunParametersError(CgError):
216
224
  """Raised when something is wrong with the run parameters file."""
217
225
 
218
226
 
219
- class NfSampleSheetError(CgError):
220
- """Raised when something is wrong with the sample sheet."""
221
-
222
-
223
227
  class SampleSheetContentError(CgError):
224
228
  """Raised when something is wrong with the sample sheet content."""
225
229