cg 82.0.6__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-82.0.6 → cg-83.13.0}/PKG-INFO +1 -1
  2. cg-83.13.0/cg/__init__.py +2 -0
  3. {cg-82.0.6 → cg-83.13.0}/cg/apps/housekeeper/hk.py +1 -1
  4. {cg-82.0.6 → cg-83.13.0}/cg/apps/tb/api.py +1 -1
  5. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/mutacc.py +16 -3
  6. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/scout.py +2 -2
  7. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/utils.py +10 -1
  8. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/balsamic/base.py +29 -4
  9. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/microsalt/base.py +3 -1
  10. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/nallo/base.py +10 -22
  11. cg-83.13.0/cg/cli/workflow/nf_analysis.py +135 -0
  12. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/raredisease/base.py +9 -3
  13. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/rnafusion/base.py +28 -3
  14. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/taxprofiler/base.py +21 -13
  15. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/tomte/base.py +17 -19
  16. {cg-82.0.6 → cg-83.13.0}/cg/constants/constants.py +3 -3
  17. {cg-82.0.6 → cg-83.13.0}/cg/constants/devices.py +6 -1
  18. {cg-82.0.6 → cg-83.13.0}/cg/constants/gene_panel.py +2 -1
  19. {cg-82.0.6 → cg-83.13.0}/cg/constants/orderforms.py +1 -1
  20. {cg-82.0.6 → cg-83.13.0}/cg/constants/pacbio.py +1 -0
  21. {cg-82.0.6 → cg-83.13.0}/cg/constants/scout.py +6 -4
  22. {cg-82.0.6 → cg-83.13.0}/cg/exc.py +8 -4
  23. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/nallo.py +1 -1
  24. {cg-82.0.6 → cg-83.13.0}/cg/meta/observations/balsamic_observations_api.py +1 -1
  25. {cg-82.0.6 → cg-83.13.0}/cg/meta/observations/mip_dna_observations_api.py +1 -1
  26. {cg-82.0.6 → cg-83.13.0}/cg/meta/observations/nallo_observations_api.py +1 -1
  27. {cg-82.0.6 → cg-83.13.0}/cg/meta/observations/observations_api.py +1 -1
  28. {cg-82.0.6 → cg-83.13.0}/cg/meta/observations/raredisease_observations_api.py +1 -1
  29. {cg-82.0.6 → cg-83.13.0}/cg/meta/tar/tar.py +5 -2
  30. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/coverage.py +5 -5
  31. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/raredisease/raredisease.py +3 -0
  32. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/scout/nallo_config_builder.py +14 -0
  33. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/nallo.py +22 -95
  34. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/nf_analysis.py +11 -262
  35. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/raredisease.py +3 -112
  36. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/rnafusion.py +2 -34
  37. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/taxprofiler.py +2 -38
  38. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/tomte.py +2 -42
  39. {cg-82.0.6 → cg-83.13.0}/cg/models/deliverables/metric_deliverables.py +1 -1
  40. cg-83.13.0/cg/models/nallo/nallo.py +27 -0
  41. cg-83.13.0/cg/models/nf_analysis.py +44 -0
  42. cg-83.13.0/cg/models/raredisease/raredisease.py +11 -0
  43. cg-83.13.0/cg/models/rnafusion/rnafusion.py +19 -0
  44. {cg-82.0.6 → cg-83.13.0}/cg/models/scout/scout_load_config.py +1 -0
  45. cg-83.13.0/cg/models/taxprofiler/taxprofiler.py +14 -0
  46. cg-83.13.0/cg/models/tomte/tomte.py +20 -0
  47. cg-83.13.0/cg/resources/nallo_bundle_filenames.yaml +560 -0
  48. {cg-82.0.6 → cg-83.13.0}/cg/resources/raredisease_bundle_filenames.yaml +11 -1
  49. {cg-82.0.6 → cg-83.13.0}/cg/resources/taxprofiler_bundle_filenames.yaml +20 -0
  50. {cg-82.0.6 → cg-83.13.0}/cg/server/admin.py +46 -20
  51. {cg-82.0.6 → cg-83.13.0}/cg/server/app.py +15 -4
  52. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/sequencing_run/dtos.py +21 -3
  53. cg-83.13.0/cg/server/endpoints/sequencing_run/pacbio_sequencing_run.py +39 -0
  54. cg-83.13.0/cg/server/endpoints/sequencing_run/pacbio_smrt_cell_metrics.py +20 -0
  55. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/configurator.py +1 -1
  56. cg-83.13.0/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/models.py +61 -0
  57. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/nallo.py +3 -1
  58. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/tomte_params_file_creator.py +3 -1
  59. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/tracker/implementations/balsamic.py +4 -1
  60. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/tracker/implementations/microsalt.py +4 -4
  61. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/tracker/implementations/mip_dna.py +4 -1
  62. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/tracker/implementations/nextflow_tracker.py +6 -4
  63. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/tracker/tracker.py +10 -6
  64. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/backup/backup_service.py +29 -7
  65. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/constants.py +3 -0
  66. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/index_sequences.py +558 -0
  67. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/data_storage_service/pacbio_store_service.py +33 -11
  68. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/data_transfer_service/data_transfer_service.py +8 -2
  69. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/data_transfer_service/dto.py +9 -3
  70. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/data_transfer_service/utils.py +14 -7
  71. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/metrics_parser/models.py +1 -0
  72. cg-83.13.0/cg/services/run_devices/pacbio/sequencing_runs_service.py +51 -0
  73. {cg-82.0.6 → cg-83.13.0}/cg/store/crud/create.py +72 -41
  74. {cg-82.0.6 → cg-83.13.0}/cg/store/crud/read.py +50 -2
  75. {cg-82.0.6 → cg-83.13.0}/cg/store/crud/update.py +11 -0
  76. {cg-82.0.6 → cg-83.13.0}/cg/store/models.py +69 -28
  77. {cg-82.0.6 → cg-83.13.0}/pyproject.toml +1 -1
  78. cg-82.0.6/cg/__init__.py +0 -2
  79. cg-82.0.6/cg/cli/workflow/nf_analysis.py +0 -336
  80. cg-82.0.6/cg/models/nallo/nallo.py +0 -77
  81. cg-82.0.6/cg/models/nf_analysis.py +0 -84
  82. cg-82.0.6/cg/models/raredisease/raredisease.py +0 -73
  83. cg-82.0.6/cg/models/rnafusion/rnafusion.py +0 -45
  84. cg-82.0.6/cg/models/taxprofiler/taxprofiler.py +0 -56
  85. cg-82.0.6/cg/models/tomte/tomte.py +0 -89
  86. cg-82.0.6/cg/resources/nallo_bundle_filenames.yaml +0 -300
  87. cg-82.0.6/cg/server/endpoints/sequencing_run/pacbio_sequencing_run.py +0 -20
  88. cg-82.0.6/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/models.py +0 -22
  89. cg-82.0.6/cg/services/run_devices/pacbio/sequencing_runs_service.py +0 -23
  90. {cg-82.0.6 → cg-83.13.0}/README.md +0 -0
  91. {cg-82.0.6 → cg-83.13.0}/cg/apps/__init__.py +0 -0
  92. {cg-82.0.6 → cg-83.13.0}/cg/apps/coverage/__init__.py +0 -0
  93. {cg-82.0.6 → cg-83.13.0}/cg/apps/coverage/api.py +0 -0
  94. {cg-82.0.6 → cg-83.13.0}/cg/apps/crunchy/__init__.py +0 -0
  95. {cg-82.0.6 → cg-83.13.0}/cg/apps/crunchy/crunchy.py +0 -0
  96. {cg-82.0.6 → cg-83.13.0}/cg/apps/crunchy/files.py +0 -0
  97. {cg-82.0.6 → cg-83.13.0}/cg/apps/crunchy/models.py +0 -0
  98. {cg-82.0.6 → cg-83.13.0}/cg/apps/crunchy/sbatch.py +0 -0
  99. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/__init__.py +0 -0
  100. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/demultiplex_api.py +0 -0
  101. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/__init__.py +0 -0
  102. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/api.py +0 -0
  103. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/index.py +0 -0
  104. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/override_cycles_validator.py +0 -0
  105. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/read_sample_sheet.py +0 -0
  106. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/sample_models.py +0 -0
  107. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/sample_sheet_creator.py +0 -0
  108. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/sample_sheet_models.py +0 -0
  109. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/sample_sheet_validator.py +0 -0
  110. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/utils.py +0 -0
  111. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/sample_sheet/validators.py +0 -0
  112. {cg-82.0.6 → cg-83.13.0}/cg/apps/demultiplex/sbatch.py +0 -0
  113. {cg-82.0.6 → cg-83.13.0}/cg/apps/downsample/__init__.py +0 -0
  114. {cg-82.0.6 → cg-83.13.0}/cg/apps/downsample/downsample.py +0 -0
  115. {cg-82.0.6 → cg-83.13.0}/cg/apps/downsample/utils.py +0 -0
  116. {cg-82.0.6 → cg-83.13.0}/cg/apps/environ.py +0 -0
  117. {cg-82.0.6 → cg-83.13.0}/cg/apps/gens.py +0 -0
  118. {cg-82.0.6 → cg-83.13.0}/cg/apps/gt.py +0 -0
  119. {cg-82.0.6 → cg-83.13.0}/cg/apps/hermes/__init__.py +0 -0
  120. {cg-82.0.6 → cg-83.13.0}/cg/apps/hermes/hermes_api.py +0 -0
  121. {cg-82.0.6 → cg-83.13.0}/cg/apps/hermes/models.py +0 -0
  122. {cg-82.0.6 → cg-83.13.0}/cg/apps/housekeeper/__init__.py +0 -0
  123. {cg-82.0.6 → cg-83.13.0}/cg/apps/housekeeper/models.py +0 -0
  124. {cg-82.0.6 → cg-83.13.0}/cg/apps/invoice/__init__.py +0 -0
  125. {cg-82.0.6 → cg-83.13.0}/cg/apps/invoice/render.py +0 -0
  126. {cg-82.0.6 → cg-83.13.0}/cg/apps/invoice/templates/KI_pool_invoice.xlsx +0 -0
  127. {cg-82.0.6 → cg-83.13.0}/cg/apps/invoice/templates/KI_sample_invoice.xlsx +0 -0
  128. {cg-82.0.6 → cg-83.13.0}/cg/apps/invoice/templates/KTH_pool_invoice.xlsx +0 -0
  129. {cg-82.0.6 → cg-83.13.0}/cg/apps/invoice/templates/KTH_sample_invoice.xlsx +0 -0
  130. {cg-82.0.6 → cg-83.13.0}/cg/apps/lims/__init__.py +0 -0
  131. {cg-82.0.6 → cg-83.13.0}/cg/apps/lims/api.py +0 -0
  132. {cg-82.0.6 → cg-83.13.0}/cg/apps/lims/batch.py +0 -0
  133. {cg-82.0.6 → cg-83.13.0}/cg/apps/lims/order.py +0 -0
  134. {cg-82.0.6 → cg-83.13.0}/cg/apps/lims/sample_sheet.py +0 -0
  135. {cg-82.0.6 → cg-83.13.0}/cg/apps/loqus.py +0 -0
  136. {cg-82.0.6 → cg-83.13.0}/cg/apps/madeline/__init__.py +0 -0
  137. {cg-82.0.6 → cg-83.13.0}/cg/apps/madeline/api.py +0 -0
  138. {cg-82.0.6 → cg-83.13.0}/cg/apps/mip/__init__.py +0 -0
  139. {cg-82.0.6 → cg-83.13.0}/cg/apps/mip/confighandler.py +0 -0
  140. {cg-82.0.6 → cg-83.13.0}/cg/apps/mutacc_auto.py +0 -0
  141. {cg-82.0.6 → cg-83.13.0}/cg/apps/orderform/__init__.py +0 -0
  142. {cg-82.0.6 → cg-83.13.0}/cg/apps/orderform/excel_orderform_parser.py +0 -0
  143. {cg-82.0.6 → cg-83.13.0}/cg/apps/orderform/json_orderform_parser.py +0 -0
  144. {cg-82.0.6 → cg-83.13.0}/cg/apps/orderform/orderform_parser.py +0 -0
  145. {cg-82.0.6 → cg-83.13.0}/cg/apps/orderform/utils.py +0 -0
  146. {cg-82.0.6 → cg-83.13.0}/cg/apps/scout/__init__.py +0 -0
  147. {cg-82.0.6 → cg-83.13.0}/cg/apps/scout/scout_export.py +0 -0
  148. {cg-82.0.6 → cg-83.13.0}/cg/apps/scout/scoutapi.py +0 -0
  149. {cg-82.0.6 → cg-83.13.0}/cg/apps/scout/validators.py +0 -0
  150. {cg-82.0.6 → cg-83.13.0}/cg/apps/slurm/__init__.py +0 -0
  151. {cg-82.0.6 → cg-83.13.0}/cg/apps/slurm/sbatch.py +0 -0
  152. {cg-82.0.6 → cg-83.13.0}/cg/apps/slurm/slurm_api.py +0 -0
  153. {cg-82.0.6 → cg-83.13.0}/cg/apps/tb/__init__.py +0 -0
  154. {cg-82.0.6 → cg-83.13.0}/cg/apps/tb/dto/create_job_request.py +0 -0
  155. {cg-82.0.6 → cg-83.13.0}/cg/apps/tb/dto/summary_response.py +0 -0
  156. {cg-82.0.6 → cg-83.13.0}/cg/apps/tb/models.py +0 -0
  157. {cg-82.0.6 → cg-83.13.0}/cg/apps/tb/validators.py +0 -0
  158. {cg-82.0.6 → cg-83.13.0}/cg/cli/__init__.py +0 -0
  159. {cg-82.0.6 → cg-83.13.0}/cg/cli/add.py +0 -0
  160. {cg-82.0.6 → cg-83.13.0}/cg/cli/archive.py +0 -0
  161. {cg-82.0.6 → cg-83.13.0}/cg/cli/backup.py +0 -0
  162. {cg-82.0.6 → cg-83.13.0}/cg/cli/base.py +0 -0
  163. {cg-82.0.6 → cg-83.13.0}/cg/cli/clean.py +0 -0
  164. {cg-82.0.6 → cg-83.13.0}/cg/cli/compress/__init__.py +0 -0
  165. {cg-82.0.6 → cg-83.13.0}/cg/cli/compress/base.py +0 -0
  166. {cg-82.0.6 → cg-83.13.0}/cg/cli/compress/fastq.py +0 -0
  167. {cg-82.0.6 → cg-83.13.0}/cg/cli/compress/helpers.py +0 -0
  168. {cg-82.0.6 → cg-83.13.0}/cg/cli/delete/__init__.py +0 -0
  169. {cg-82.0.6 → cg-83.13.0}/cg/cli/delete/base.py +0 -0
  170. {cg-82.0.6 → cg-83.13.0}/cg/cli/delete/case.py +0 -0
  171. {cg-82.0.6 → cg-83.13.0}/cg/cli/delete/cases.py +0 -0
  172. {cg-82.0.6 → cg-83.13.0}/cg/cli/delete/illumina_sequencing_run.py +0 -0
  173. {cg-82.0.6 → cg-83.13.0}/cg/cli/delete/observations.py +0 -0
  174. {cg-82.0.6 → cg-83.13.0}/cg/cli/deliver/__init__.py +0 -0
  175. {cg-82.0.6 → cg-83.13.0}/cg/cli/deliver/base.py +0 -0
  176. {cg-82.0.6 → cg-83.13.0}/cg/cli/deliver/utils.py +0 -0
  177. {cg-82.0.6 → cg-83.13.0}/cg/cli/demultiplex/__init__.py +0 -0
  178. {cg-82.0.6 → cg-83.13.0}/cg/cli/demultiplex/base.py +0 -0
  179. {cg-82.0.6 → cg-83.13.0}/cg/cli/demultiplex/copy_novaseqx_demultiplex_data.py +0 -0
  180. {cg-82.0.6 → cg-83.13.0}/cg/cli/demultiplex/demux.py +0 -0
  181. {cg-82.0.6 → cg-83.13.0}/cg/cli/demultiplex/finish.py +0 -0
  182. {cg-82.0.6 → cg-83.13.0}/cg/cli/demultiplex/sample_sheet.py +0 -0
  183. {cg-82.0.6 → cg-83.13.0}/cg/cli/downsample.py +0 -0
  184. {cg-82.0.6 → cg-83.13.0}/cg/cli/generate/__init__.py +0 -0
  185. {cg-82.0.6 → cg-83.13.0}/cg/cli/generate/base.py +0 -0
  186. {cg-82.0.6 → cg-83.13.0}/cg/cli/generate/delivery_report/__init__.py +0 -0
  187. {cg-82.0.6 → cg-83.13.0}/cg/cli/generate/delivery_report/base.py +0 -0
  188. {cg-82.0.6 → cg-83.13.0}/cg/cli/generate/delivery_report/options.py +0 -0
  189. {cg-82.0.6 → cg-83.13.0}/cg/cli/generate/delivery_report/utils.py +0 -0
  190. {cg-82.0.6 → cg-83.13.0}/cg/cli/get.py +0 -0
  191. {cg-82.0.6 → cg-83.13.0}/cg/cli/post_process/__init__.py +0 -0
  192. {cg-82.0.6 → cg-83.13.0}/cg/cli/post_process/post_process.py +0 -0
  193. {cg-82.0.6 → cg-83.13.0}/cg/cli/post_process/utils.py +0 -0
  194. {cg-82.0.6 → cg-83.13.0}/cg/cli/sequencing_qc/sequencing_qc.py +0 -0
  195. {cg-82.0.6 → cg-83.13.0}/cg/cli/set/__init__.py +0 -0
  196. {cg-82.0.6 → cg-83.13.0}/cg/cli/set/base.py +0 -0
  197. {cg-82.0.6 → cg-83.13.0}/cg/cli/set/case.py +0 -0
  198. {cg-82.0.6 → cg-83.13.0}/cg/cli/set/cases.py +0 -0
  199. {cg-82.0.6 → cg-83.13.0}/cg/cli/store/__init__.py +0 -0
  200. {cg-82.0.6 → cg-83.13.0}/cg/cli/store/base.py +0 -0
  201. {cg-82.0.6 → cg-83.13.0}/cg/cli/store/store.py +0 -0
  202. {cg-82.0.6 → cg-83.13.0}/cg/cli/transfer.py +0 -0
  203. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/__init__.py +0 -0
  204. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/base.py +0 -0
  205. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/coverage.py +0 -0
  206. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/delivery_report.py +0 -0
  207. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/fohm.py +0 -0
  208. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/genotype.py +0 -0
  209. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/gens.py +0 -0
  210. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/gisaid.py +0 -0
  211. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/nipt/__init__.py +0 -0
  212. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/nipt/base.py +0 -0
  213. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/nipt/ftp.py +0 -0
  214. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/nipt/statina.py +0 -0
  215. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/observations/__init__.py +0 -0
  216. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/observations/observations.py +0 -0
  217. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/observations/utils.py +0 -0
  218. {cg-82.0.6 → cg-83.13.0}/cg/cli/upload/validate.py +0 -0
  219. {cg-82.0.6 → cg-83.13.0}/cg/cli/utils.py +0 -0
  220. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/__init__.py +0 -0
  221. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/balsamic/__init__.py +0 -0
  222. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/balsamic/options.py +0 -0
  223. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/balsamic/pon.py +0 -0
  224. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/balsamic/umi.py +0 -0
  225. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/base.py +0 -0
  226. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/commands.py +0 -0
  227. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/fluffy/__init__.py +0 -0
  228. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/fluffy/base.py +0 -0
  229. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/jasen/__init__.py +0 -0
  230. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/jasen/base.py +0 -0
  231. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/microsalt/__init__.py +0 -0
  232. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/mip/__init__.py +0 -0
  233. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/mip/base.py +0 -0
  234. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/mip/options.py +0 -0
  235. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/mip_dna/__init__.py +0 -0
  236. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/mip_dna/base.py +0 -0
  237. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/mip_rna/__init__.py +0 -0
  238. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/mip_rna/base.py +0 -0
  239. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/mutant/__init__.py +0 -0
  240. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/mutant/base.py +0 -0
  241. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/nallo/__init__.py +0 -0
  242. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/raredisease/__init__.py +0 -0
  243. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/raw_data/__init__.py +0 -0
  244. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/raw_data/base.py +0 -0
  245. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/raw_data/raw_data_service.py +0 -0
  246. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/rnafusion/__init__.py +0 -0
  247. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/taxprofiler/__init__.py +0 -0
  248. {cg-82.0.6 → cg-83.13.0}/cg/cli/workflow/utils.py +0 -0
  249. {cg-82.0.6 → cg-83.13.0}/cg/clients/__init__.py +0 -0
  250. {cg-82.0.6 → cg-83.13.0}/cg/clients/arnold/api.py +0 -0
  251. {cg-82.0.6 → cg-83.13.0}/cg/clients/arnold/dto/create_case_request.py +0 -0
  252. {cg-82.0.6 → cg-83.13.0}/cg/clients/arnold/exceptions.py +0 -0
  253. {cg-82.0.6 → cg-83.13.0}/cg/clients/chanjo2/__init__.py +0 -0
  254. {cg-82.0.6 → cg-83.13.0}/cg/clients/chanjo2/client.py +0 -0
  255. {cg-82.0.6 → cg-83.13.0}/cg/clients/chanjo2/models.py +0 -0
  256. {cg-82.0.6 → cg-83.13.0}/cg/clients/chanjo2/utils.py +0 -0
  257. {cg-82.0.6 → cg-83.13.0}/cg/clients/freshdesk/__init__.py +0 -0
  258. {cg-82.0.6 → cg-83.13.0}/cg/clients/freshdesk/constants.py +0 -0
  259. {cg-82.0.6 → cg-83.13.0}/cg/clients/freshdesk/exceptions.py +0 -0
  260. {cg-82.0.6 → cg-83.13.0}/cg/clients/freshdesk/freshdesk_client.py +0 -0
  261. {cg-82.0.6 → cg-83.13.0}/cg/clients/freshdesk/models.py +0 -0
  262. {cg-82.0.6 → cg-83.13.0}/cg/clients/freshdesk/utils.py +0 -0
  263. {cg-82.0.6 → cg-83.13.0}/cg/clients/janus/__init__.py +0 -0
  264. {cg-82.0.6 → cg-83.13.0}/cg/clients/janus/api.py +0 -0
  265. {cg-82.0.6 → cg-83.13.0}/cg/clients/janus/dto/__init__.py +0 -0
  266. {cg-82.0.6 → cg-83.13.0}/cg/clients/janus/dto/create_qc_metrics_request.py +0 -0
  267. {cg-82.0.6 → cg-83.13.0}/cg/clients/janus/exceptions.py +0 -0
  268. {cg-82.0.6 → cg-83.13.0}/cg/constants/__init__.py +0 -0
  269. {cg-82.0.6 → cg-83.13.0}/cg/constants/archiving.py +0 -0
  270. {cg-82.0.6 → cg-83.13.0}/cg/constants/backup.py +0 -0
  271. {cg-82.0.6 → cg-83.13.0}/cg/constants/cli_options.py +0 -0
  272. {cg-82.0.6 → cg-83.13.0}/cg/constants/compression.py +0 -0
  273. {cg-82.0.6 → cg-83.13.0}/cg/constants/delivery.py +0 -0
  274. {cg-82.0.6 → cg-83.13.0}/cg/constants/demultiplexing.py +0 -0
  275. {cg-82.0.6 → cg-83.13.0}/cg/constants/encryption.py +0 -0
  276. {cg-82.0.6 → cg-83.13.0}/cg/constants/extraction.py +0 -0
  277. {cg-82.0.6 → cg-83.13.0}/cg/constants/file_transfer_service.py +0 -0
  278. {cg-82.0.6 → cg-83.13.0}/cg/constants/housekeeper_tags.py +0 -0
  279. {cg-82.0.6 → cg-83.13.0}/cg/constants/invoice.py +0 -0
  280. {cg-82.0.6 → cg-83.13.0}/cg/constants/lims.py +0 -0
  281. {cg-82.0.6 → cg-83.13.0}/cg/constants/metrics.py +0 -0
  282. {cg-82.0.6 → cg-83.13.0}/cg/constants/nextflow.py +0 -0
  283. {cg-82.0.6 → cg-83.13.0}/cg/constants/nf_analysis.py +0 -0
  284. {cg-82.0.6 → cg-83.13.0}/cg/constants/nipt.py +0 -0
  285. {cg-82.0.6 → cg-83.13.0}/cg/constants/observations.py +0 -0
  286. {cg-82.0.6 → cg-83.13.0}/cg/constants/paths.py +0 -0
  287. {cg-82.0.6 → cg-83.13.0}/cg/constants/pdc.py +0 -0
  288. {cg-82.0.6 → cg-83.13.0}/cg/constants/pedigree.py +0 -0
  289. {cg-82.0.6 → cg-83.13.0}/cg/constants/priority.py +0 -0
  290. {cg-82.0.6 → cg-83.13.0}/cg/constants/process.py +0 -0
  291. {cg-82.0.6 → cg-83.13.0}/cg/constants/report.py +0 -0
  292. {cg-82.0.6 → cg-83.13.0}/cg/constants/sample_sources.py +0 -0
  293. {cg-82.0.6 → cg-83.13.0}/cg/constants/sequencing.py +0 -0
  294. {cg-82.0.6 → cg-83.13.0}/cg/constants/slurm.py +0 -0
  295. {cg-82.0.6 → cg-83.13.0}/cg/constants/subject.py +0 -0
  296. {cg-82.0.6 → cg-83.13.0}/cg/constants/symbols.py +0 -0
  297. {cg-82.0.6 → cg-83.13.0}/cg/constants/tb.py +0 -0
  298. {cg-82.0.6 → cg-83.13.0}/cg/io/__init__.py +0 -0
  299. {cg-82.0.6 → cg-83.13.0}/cg/io/api.py +0 -0
  300. {cg-82.0.6 → cg-83.13.0}/cg/io/controller.py +0 -0
  301. {cg-82.0.6 → cg-83.13.0}/cg/io/csv.py +0 -0
  302. {cg-82.0.6 → cg-83.13.0}/cg/io/gzip.py +0 -0
  303. {cg-82.0.6 → cg-83.13.0}/cg/io/json.py +0 -0
  304. {cg-82.0.6 → cg-83.13.0}/cg/io/png.py +0 -0
  305. {cg-82.0.6 → cg-83.13.0}/cg/io/txt.py +0 -0
  306. {cg-82.0.6 → cg-83.13.0}/cg/io/validate_path.py +0 -0
  307. {cg-82.0.6 → cg-83.13.0}/cg/io/xml.py +0 -0
  308. {cg-82.0.6 → cg-83.13.0}/cg/io/yaml.py +0 -0
  309. {cg-82.0.6 → cg-83.13.0}/cg/meta/__init__.py +0 -0
  310. {cg-82.0.6 → cg-83.13.0}/cg/meta/archive/__init__.py +0 -0
  311. {cg-82.0.6 → cg-83.13.0}/cg/meta/archive/archive.py +0 -0
  312. {cg-82.0.6 → cg-83.13.0}/cg/meta/archive/ddn/__init__.py +0 -0
  313. {cg-82.0.6 → cg-83.13.0}/cg/meta/archive/ddn/constants.py +0 -0
  314. {cg-82.0.6 → cg-83.13.0}/cg/meta/archive/ddn/ddn_data_flow_client.py +0 -0
  315. {cg-82.0.6 → cg-83.13.0}/cg/meta/archive/ddn/models.py +0 -0
  316. {cg-82.0.6 → cg-83.13.0}/cg/meta/archive/ddn/utils.py +0 -0
  317. {cg-82.0.6 → cg-83.13.0}/cg/meta/archive/models.py +0 -0
  318. {cg-82.0.6 → cg-83.13.0}/cg/meta/backup/__init__.py +0 -0
  319. {cg-82.0.6 → cg-83.13.0}/cg/meta/backup/backup.py +0 -0
  320. {cg-82.0.6 → cg-83.13.0}/cg/meta/clean/__init__.py +0 -0
  321. {cg-82.0.6 → cg-83.13.0}/cg/meta/clean/api.py +0 -0
  322. {cg-82.0.6 → cg-83.13.0}/cg/meta/clean/clean_retrieved_spring_files.py +0 -0
  323. {cg-82.0.6 → cg-83.13.0}/cg/meta/compress/__init__.py +0 -0
  324. {cg-82.0.6 → cg-83.13.0}/cg/meta/compress/compress.py +0 -0
  325. {cg-82.0.6 → cg-83.13.0}/cg/meta/compress/files.py +0 -0
  326. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery/__init__.py +0 -0
  327. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery/delivery.py +0 -0
  328. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/__init__.py +0 -0
  329. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/balsamic.py +0 -0
  330. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/balsamic_umi.py +0 -0
  331. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/data_validators.py +0 -0
  332. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/delivery_report_api.py +0 -0
  333. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/mip_dna.py +0 -0
  334. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/raredisease.py +0 -0
  335. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/rnafusion.py +0 -0
  336. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/taxprofiler.py +0 -0
  337. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/delivery-report.html +0 -0
  338. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/data_analysis.html +0 -0
  339. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/limitations.html +0 -0
  340. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/balsamic_qc_metrics.html +0 -0
  341. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/mip_dna_qc_metrics.html +0 -0
  342. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/nallo_qc_metrics.html +0 -0
  343. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/qc_metrics.html +0 -0
  344. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/raredisease_qc_metrics.html +0 -0
  345. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/rnafusion_qc_metrics.html +0 -0
  346. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/data_analysis/qc_metrics/tomte_qc_metrics.html +0 -0
  347. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/header.html +0 -0
  348. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/order.html +0 -0
  349. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/sample_prep.html +0 -0
  350. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/ticket_system.html +0 -0
  351. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/uploaded_files/balsamic_uploaded_files.html +0 -0
  352. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/uploaded_files/mip_dna_uploaded_files.html +0 -0
  353. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/uploaded_files/nallo_uploaded_files.html +0 -0
  354. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/uploaded_files/raredisease_uploaded_files.html +0 -0
  355. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/uploaded_files/rnafusion_uploaded_files.html +0 -0
  356. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/macros/uploaded_files/uploaded_files.html +0 -0
  357. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/partials/footer.html +0 -0
  358. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/partials/signature.html +0 -0
  359. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/static/css/bootstrap.min.css +0 -0
  360. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/static/css/custom.css +0 -0
  361. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/templates/static/images/SWEDAC_logo.png +0 -0
  362. {cg-82.0.6 → cg-83.13.0}/cg/meta/delivery_report/tomte.py +0 -0
  363. {cg-82.0.6 → cg-83.13.0}/cg/meta/encryption/__init__.py +0 -0
  364. {cg-82.0.6 → cg-83.13.0}/cg/meta/encryption/encryption.py +0 -0
  365. {cg-82.0.6 → cg-83.13.0}/cg/meta/encryption/sbatch.py +0 -0
  366. {cg-82.0.6 → cg-83.13.0}/cg/meta/invoice.py +0 -0
  367. {cg-82.0.6 → cg-83.13.0}/cg/meta/meta.py +0 -0
  368. {cg-82.0.6 → cg-83.13.0}/cg/meta/observations/__init__.py +0 -0
  369. {cg-82.0.6 → cg-83.13.0}/cg/meta/orders/utils.py +0 -0
  370. {cg-82.0.6 → cg-83.13.0}/cg/meta/qc_metrics/collect_qc_metrics.py +0 -0
  371. {cg-82.0.6 → cg-83.13.0}/cg/meta/tar/__init__.py +0 -0
  372. {cg-82.0.6 → cg-83.13.0}/cg/meta/transfer/__init__.py +0 -0
  373. {cg-82.0.6 → cg-83.13.0}/cg/meta/transfer/external_data.py +0 -0
  374. {cg-82.0.6 → cg-83.13.0}/cg/meta/transfer/lims.py +0 -0
  375. {cg-82.0.6 → cg-83.13.0}/cg/meta/transfer/utils.py +0 -0
  376. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/__init__.py +0 -0
  377. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/balsamic/__init__.py +0 -0
  378. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/balsamic/balsamic.py +0 -0
  379. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/error_handling.py +0 -0
  380. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/fohm/__init__.py +0 -0
  381. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/fohm/fohm.py +0 -0
  382. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/gisaid/__init__.py +0 -0
  383. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/gisaid/constants.py +0 -0
  384. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/gisaid/gisaid.py +0 -0
  385. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/gisaid/models.py +0 -0
  386. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/gt.py +0 -0
  387. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/microsalt/microsalt_upload_api.py +0 -0
  388. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/mip/__init__.py +0 -0
  389. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/mip/mip_dna.py +0 -0
  390. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/mip/mip_rna.py +0 -0
  391. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/mutacc.py +0 -0
  392. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/mutant/mutant.py +0 -0
  393. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/nallo/nallo.py +0 -0
  394. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/nf_analysis.py +0 -0
  395. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/nipt/__init__.py +0 -0
  396. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/nipt/models.py +0 -0
  397. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/nipt/nipt.py +0 -0
  398. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/scout/__init__.py +0 -0
  399. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/scout/balsamic_config_builder.py +0 -0
  400. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/scout/balsamic_umi_config_builder.py +0 -0
  401. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/scout/hk_tags.py +0 -0
  402. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/scout/mip_config_builder.py +0 -0
  403. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/scout/raredisease_config_builder.py +0 -0
  404. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/scout/rnafusion_config_builder.py +0 -0
  405. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/scout/scout_config_builder.py +0 -0
  406. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/scout/uploadscoutapi.py +0 -0
  407. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/tomte/tomte.py +0 -0
  408. {cg-82.0.6 → cg-83.13.0}/cg/meta/upload/upload_api.py +0 -0
  409. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/__init__.py +0 -0
  410. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/analysis.py +0 -0
  411. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/balsamic.py +0 -0
  412. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/balsamic_pon.py +0 -0
  413. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/balsamic_umi.py +0 -0
  414. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/downsample/__init__.py +0 -0
  415. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/downsample/downsample.py +0 -0
  416. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/downsample/sbatch.py +0 -0
  417. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/fastq.py +0 -0
  418. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/fluffy.py +0 -0
  419. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/jasen.py +0 -0
  420. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/microsalt/__init__.py +0 -0
  421. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/microsalt/constants.py +0 -0
  422. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/microsalt/metrics_parser/__init__.py +0 -0
  423. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/microsalt/metrics_parser/metrics_parser.py +0 -0
  424. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/microsalt/metrics_parser/models.py +0 -0
  425. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/microsalt/microsalt.py +0 -0
  426. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/microsalt/quality_controller/__init__.py +0 -0
  427. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/microsalt/quality_controller/models.py +0 -0
  428. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/microsalt/quality_controller/quality_controller.py +0 -0
  429. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/microsalt/quality_controller/report_generator.py +0 -0
  430. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/microsalt/quality_controller/result_logger.py +0 -0
  431. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/microsalt/quality_controller/utils.py +0 -0
  432. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/microsalt/utils.py +0 -0
  433. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/mip.py +0 -0
  434. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/mip_dna.py +0 -0
  435. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/mip_rna.py +0 -0
  436. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/mutant/__init__.py +0 -0
  437. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/mutant/mutant.py +0 -0
  438. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/__init__.py +0 -0
  439. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/metrics_parser_utils.py +0 -0
  440. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/models.py +0 -0
  441. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/quality_controller.py +0 -0
  442. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/report_generator_utils.py +0 -0
  443. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/result_logger_utils.py +0 -0
  444. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/mutant/quality_controller/utils.py +0 -0
  445. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/nf_handlers.py +0 -0
  446. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/prepare_fastq.py +0 -0
  447. {cg-82.0.6 → cg-83.13.0}/cg/meta/workflow/utils/utils.py +0 -0
  448. {cg-82.0.6 → cg-83.13.0}/cg/models/__init__.py +0 -0
  449. {cg-82.0.6 → cg-83.13.0}/cg/models/analysis.py +0 -0
  450. {cg-82.0.6 → cg-83.13.0}/cg/models/balsamic/__init__.py +0 -0
  451. {cg-82.0.6 → cg-83.13.0}/cg/models/balsamic/analysis.py +0 -0
  452. {cg-82.0.6 → cg-83.13.0}/cg/models/balsamic/config.py +0 -0
  453. {cg-82.0.6 → cg-83.13.0}/cg/models/balsamic/metrics.py +0 -0
  454. {cg-82.0.6 → cg-83.13.0}/cg/models/cg_config.py +0 -0
  455. {cg-82.0.6 → cg-83.13.0}/cg/models/compression_data.py +0 -0
  456. {cg-82.0.6 → cg-83.13.0}/cg/models/deliverables/__init__.py +0 -0
  457. {cg-82.0.6 → cg-83.13.0}/cg/models/delivery/delivery.py +0 -0
  458. {cg-82.0.6 → cg-83.13.0}/cg/models/delivery_report/__init__.py +0 -0
  459. {cg-82.0.6 → cg-83.13.0}/cg/models/delivery_report/metadata.py +0 -0
  460. {cg-82.0.6 → cg-83.13.0}/cg/models/delivery_report/report.py +0 -0
  461. {cg-82.0.6 → cg-83.13.0}/cg/models/delivery_report/sample.py +0 -0
  462. {cg-82.0.6 → cg-83.13.0}/cg/models/delivery_report/validators.py +0 -0
  463. {cg-82.0.6 → cg-83.13.0}/cg/models/demultiplex/__init__.py +0 -0
  464. {cg-82.0.6 → cg-83.13.0}/cg/models/demultiplex/run_parameters.py +0 -0
  465. {cg-82.0.6 → cg-83.13.0}/cg/models/demultiplex/sbatch.py +0 -0
  466. {cg-82.0.6 → cg-83.13.0}/cg/models/downsample/downsample_data.py +0 -0
  467. {cg-82.0.6 → cg-83.13.0}/cg/models/email.py +0 -0
  468. {cg-82.0.6 → cg-83.13.0}/cg/models/fastq.py +0 -0
  469. {cg-82.0.6 → cg-83.13.0}/cg/models/file_data.py +0 -0
  470. {cg-82.0.6 → cg-83.13.0}/cg/models/fohm/__init__.py +0 -0
  471. {cg-82.0.6 → cg-83.13.0}/cg/models/fohm/reports.py +0 -0
  472. {cg-82.0.6 → cg-83.13.0}/cg/models/invoice/__init__.py +0 -0
  473. {cg-82.0.6 → cg-83.13.0}/cg/models/invoice/invoice.py +0 -0
  474. {cg-82.0.6 → cg-83.13.0}/cg/models/lims/__init__.py +0 -0
  475. {cg-82.0.6 → cg-83.13.0}/cg/models/lims/sample.py +0 -0
  476. {cg-82.0.6 → cg-83.13.0}/cg/models/mip/__init__.py +0 -0
  477. {cg-82.0.6 → cg-83.13.0}/cg/models/mip/mip_analysis.py +0 -0
  478. {cg-82.0.6 → cg-83.13.0}/cg/models/mip/mip_config.py +0 -0
  479. {cg-82.0.6 → cg-83.13.0}/cg/models/mip/mip_metrics_deliverables.py +0 -0
  480. {cg-82.0.6 → cg-83.13.0}/cg/models/mip/mip_sample_info.py +0 -0
  481. {cg-82.0.6 → cg-83.13.0}/cg/models/nallo/__init__.py +0 -0
  482. {cg-82.0.6 → cg-83.13.0}/cg/models/observations/__init__.py +0 -0
  483. {cg-82.0.6 → cg-83.13.0}/cg/models/observations/input_files.py +0 -0
  484. {cg-82.0.6 → cg-83.13.0}/cg/models/orders/__init__.py +0 -0
  485. {cg-82.0.6 → cg-83.13.0}/cg/models/orders/constants.py +0 -0
  486. {cg-82.0.6 → cg-83.13.0}/cg/models/orders/excel_sample.py +0 -0
  487. {cg-82.0.6 → cg-83.13.0}/cg/models/orders/json_sample.py +0 -0
  488. {cg-82.0.6 → cg-83.13.0}/cg/models/orders/orderform_schema.py +0 -0
  489. {cg-82.0.6 → cg-83.13.0}/cg/models/orders/sample_base.py +0 -0
  490. {cg-82.0.6 → cg-83.13.0}/cg/models/orders/validators/__init__.py +0 -0
  491. {cg-82.0.6 → cg-83.13.0}/cg/models/orders/validators/excel_sample_validators.py +0 -0
  492. {cg-82.0.6 → cg-83.13.0}/cg/models/orders/validators/json_sample_validators.py +0 -0
  493. {cg-82.0.6 → cg-83.13.0}/cg/models/orders/validators/sample_base_validators.py +0 -0
  494. {cg-82.0.6 → cg-83.13.0}/cg/models/qc_metrics.py +0 -0
  495. {cg-82.0.6 → cg-83.13.0}/cg/models/raredisease/__init__.py +0 -0
  496. {cg-82.0.6 → cg-83.13.0}/cg/models/rnafusion/__init__.py +0 -0
  497. {cg-82.0.6 → cg-83.13.0}/cg/models/run_devices/__init__.py +0 -0
  498. {cg-82.0.6 → cg-83.13.0}/cg/models/run_devices/illumina_run_directory_data.py +0 -0
  499. {cg-82.0.6 → cg-83.13.0}/cg/models/run_devices/utils.py +0 -0
  500. {cg-82.0.6 → cg-83.13.0}/cg/models/scout/__init__.py +0 -0
  501. {cg-82.0.6 → cg-83.13.0}/cg/models/scout/validators.py +0 -0
  502. {cg-82.0.6 → cg-83.13.0}/cg/models/slurm/__init__.py +0 -0
  503. {cg-82.0.6 → cg-83.13.0}/cg/models/slurm/sbatch.py +0 -0
  504. {cg-82.0.6 → cg-83.13.0}/cg/models/taxprofiler/__init__.py +0 -0
  505. {cg-82.0.6 → cg-83.13.0}/cg/models/workflow/__init__.py +0 -0
  506. {cg-82.0.6 → cg-83.13.0}/cg/models/workflow/mutant.py +0 -0
  507. {cg-82.0.6 → cg-83.13.0}/cg/models/workflow/validators.py +0 -0
  508. {cg-82.0.6 → cg-83.13.0}/cg/resources/__init__.py +0 -0
  509. {cg-82.0.6 → cg-83.13.0}/cg/resources/rnafusion_bundle_filenames.yaml +0 -0
  510. {cg-82.0.6 → cg-83.13.0}/cg/resources/tomte_bundle_filenames.yaml +0 -0
  511. {cg-82.0.6 → cg-83.13.0}/cg/server/__init__.py +0 -0
  512. {cg-82.0.6 → cg-83.13.0}/cg/server/app_config.py +0 -0
  513. {cg-82.0.6 → cg-83.13.0}/cg/server/auto.py +0 -0
  514. {cg-82.0.6 → cg-83.13.0}/cg/server/dto/__init__.py +0 -0
  515. {cg-82.0.6 → cg-83.13.0}/cg/server/dto/cases/requests.py +0 -0
  516. {cg-82.0.6 → cg-83.13.0}/cg/server/dto/delivery_message/__init__.py +0 -0
  517. {cg-82.0.6 → cg-83.13.0}/cg/server/dto/delivery_message/delivery_message_request.py +0 -0
  518. {cg-82.0.6 → cg-83.13.0}/cg/server/dto/delivery_message/delivery_message_response.py +0 -0
  519. {cg-82.0.6 → cg-83.13.0}/cg/server/dto/orders/__init__.py +0 -0
  520. {cg-82.0.6 → cg-83.13.0}/cg/server/dto/orders/order_delivery_update_request.py +0 -0
  521. {cg-82.0.6 → cg-83.13.0}/cg/server/dto/orders/order_patch_request.py +0 -0
  522. {cg-82.0.6 → cg-83.13.0}/cg/server/dto/orders/orders_request.py +0 -0
  523. {cg-82.0.6 → cg-83.13.0}/cg/server/dto/orders/orders_response.py +0 -0
  524. {cg-82.0.6 → cg-83.13.0}/cg/server/dto/samples/__init__.py +0 -0
  525. {cg-82.0.6 → cg-83.13.0}/cg/server/dto/samples/requests.py +0 -0
  526. {cg-82.0.6 → cg-83.13.0}/cg/server/dto/samples/samples_response.py +0 -0
  527. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/__init__.py +0 -0
  528. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/analyses.py +0 -0
  529. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/applications.py +0 -0
  530. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/cases.py +0 -0
  531. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/error_handler.py +0 -0
  532. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/index_sequences.py +0 -0
  533. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/orders.py +0 -0
  534. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/pools.py +0 -0
  535. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/samples.py +0 -0
  536. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/sequencing_metrics/__init__.py +0 -0
  537. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/sequencing_metrics/dtos.py +0 -0
  538. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/sequencing_metrics/error_handler.py +0 -0
  539. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/sequencing_metrics/illumina_sequencing_metrics.py +0 -0
  540. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/sequencing_metrics/pacbio_sequencing_metrics.py +0 -0
  541. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/users.py +0 -0
  542. {cg-82.0.6 → cg-83.13.0}/cg/server/endpoints/utils.py +0 -0
  543. {cg-82.0.6 → cg-83.13.0}/cg/server/ext.py +0 -0
  544. {cg-82.0.6 → cg-83.13.0}/cg/server/invoices/__init__.py +0 -0
  545. {cg-82.0.6 → cg-83.13.0}/cg/server/invoices/templates/invoices/index.html +0 -0
  546. {cg-82.0.6 → cg-83.13.0}/cg/server/invoices/templates/invoices/invoice.html +0 -0
  547. {cg-82.0.6 → cg-83.13.0}/cg/server/invoices/templates/invoices/layout.html +0 -0
  548. {cg-82.0.6 → cg-83.13.0}/cg/server/invoices/templates/invoices/new.html +0 -0
  549. {cg-82.0.6 → cg-83.13.0}/cg/server/invoices/views.py +0 -0
  550. {cg-82.0.6 → cg-83.13.0}/cg/server/templates/admin/index.html +0 -0
  551. {cg-82.0.6 → cg-83.13.0}/cg/server/utils.py +0 -0
  552. {cg-82.0.6 → cg-83.13.0}/cg/services/__init__.py +0 -0
  553. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_service/__init__.py +0 -0
  554. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_service/analysis_service.py +0 -0
  555. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/analysis_starter.py +0 -0
  556. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/abstract_model.py +0 -0
  557. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/extensions/nallo.py +0 -0
  558. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/extensions/pipeline_extension.py +0 -0
  559. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/extensions/raredisease.py +0 -0
  560. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/extensions/tomte_extension.py +0 -0
  561. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/balsamic_config.py +0 -0
  562. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/gene_panel.py +0 -0
  563. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/managed_variants.py +0 -0
  564. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/microsalt_config.py +0 -0
  565. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/mip_dna_config.py +0 -0
  566. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/config_file.py +0 -0
  567. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/abstract.py +0 -0
  568. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/raredisease.py +0 -0
  569. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/rnafusion.py +0 -0
  570. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/taxprofiler.py +0 -0
  571. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/params_file/utils.py +0 -0
  572. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/creator.py +0 -0
  573. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/nallo_sample_sheet_creator.py +0 -0
  574. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/protocol.py +0 -0
  575. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/raredisease_sample_sheet_creator.py +0 -0
  576. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/rnafusion_sample_sheet_creator.py +0 -0
  577. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/taxprofiler_sample_sheet_creator.py +0 -0
  578. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/sample_sheet/tomte_sample_sheet_creator.py +0 -0
  579. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/file_creators/nextflow/utils.py +0 -0
  580. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/implementations/balsamic.py +0 -0
  581. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/implementations/microsalt.py +0 -0
  582. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/implementations/mip_dna.py +0 -0
  583. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/implementations/nextflow.py +0 -0
  584. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/models/balsamic.py +0 -0
  585. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/models/microsalt.py +0 -0
  586. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/models/mip_dna.py +0 -0
  587. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/configurator/models/nextflow.py +0 -0
  588. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/constants.py +0 -0
  589. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/factories/configurator_factory.py +0 -0
  590. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/factories/starter_factory.py +0 -0
  591. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/input_fetcher/implementations/bam_fetcher.py +0 -0
  592. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/input_fetcher/implementations/fastq_fetcher.py +0 -0
  593. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/input_fetcher/input_fetcher.py +0 -0
  594. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/submitters/seqera_platform/dtos.py +0 -0
  595. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/submitters/seqera_platform/seqera_platform_client.py +0 -0
  596. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/submitters/seqera_platform/seqera_platform_submitter.py +0 -0
  597. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/submitters/submitter.py +0 -0
  598. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/submitters/subprocess/commands.py +0 -0
  599. {cg-82.0.6 → cg-83.13.0}/cg/services/analysis_starter/submitters/subprocess/submitter.py +0 -0
  600. {cg-82.0.6 → cg-83.13.0}/cg/services/decompression_service/decompressor.py +0 -0
  601. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/__init__.py +0 -0
  602. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/constants.py +0 -0
  603. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/deliver_files_service/__init__.py +0 -0
  604. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/deliver_files_service/deliver_files_service.py +0 -0
  605. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/deliver_files_service/error_handling.py +0 -0
  606. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/deliver_files_service/exc.py +0 -0
  607. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/factory.py +0 -0
  608. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/abstract.py +0 -0
  609. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/analysis_raw_data_service.py +0 -0
  610. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/analysis_service.py +0 -0
  611. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/error_handling.py +0 -0
  612. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/exc.py +0 -0
  613. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/models.py +0 -0
  614. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_fetcher/raw_data_service.py +0 -0
  615. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/__init__.py +0 -0
  616. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/destination/__init__.py +0 -0
  617. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/destination/abstract.py +0 -0
  618. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/destination/base_service.py +0 -0
  619. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/destination/models.py +0 -0
  620. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/__init__.py +0 -0
  621. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/abstract.py +0 -0
  622. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/case_service.py +0 -0
  623. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/concatenation_service.py +0 -0
  624. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/models.py +0 -0
  625. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/mutant_service.py +0 -0
  626. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/files/sample_service.py +0 -0
  627. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/path_name/__init__.py +0 -0
  628. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/path_name/abstract.py +0 -0
  629. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/path_name/flat_structure.py +0 -0
  630. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_formatter/path_name/nested_structure.py +0 -0
  631. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_mover/abstract.py +0 -0
  632. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_mover/base_service.py +0 -0
  633. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/file_mover/customer_inbox_service.py +0 -0
  634. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/rsync/__init__.py +0 -0
  635. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/rsync/models.py +0 -0
  636. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/rsync/sbatch_commands.py +0 -0
  637. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/rsync/service.py +0 -0
  638. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/__init__.py +0 -0
  639. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/abstract.py +0 -0
  640. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/error_handling.py +0 -0
  641. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/exc.py +0 -0
  642. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/fohm_upload_service.py +0 -0
  643. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/models.py +0 -0
  644. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/tag_fetcher/sample_and_case_service.py +0 -0
  645. {cg-82.0.6 → cg-83.13.0}/cg/services/deliver_files/utils.py +0 -0
  646. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/__init__.py +0 -0
  647. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/delivery_message_service.py +0 -0
  648. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/__init__.py +0 -0
  649. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/analysis_message.py +0 -0
  650. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/analysis_scout_message.py +0 -0
  651. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/bam_message.py +0 -0
  652. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/covid_message.py +0 -0
  653. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/delivery_message.py +0 -0
  654. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/fastq_analysis_message.py +0 -0
  655. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/fastq_analysis_scout_message.py +0 -0
  656. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/fastq_message.py +0 -0
  657. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/fastq_scout_message.py +0 -0
  658. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/microsalt_message.py +0 -0
  659. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/order_message.py +0 -0
  660. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/raw_data_analysis_message.py +0 -0
  661. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/raw_data_analysis_scout_message.py +0 -0
  662. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/raw_data_scout_message.py +0 -0
  663. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/rna_delivery_message.py +0 -0
  664. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/scout_message.py +0 -0
  665. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/statina_message.py +0 -0
  666. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/messages/utils.py +0 -0
  667. {cg-82.0.6 → cg-83.13.0}/cg/services/delivery_message/utils.py +0 -0
  668. {cg-82.0.6 → cg-83.13.0}/cg/services/fastq_concatenation_service/__init__.py +0 -0
  669. {cg-82.0.6 → cg-83.13.0}/cg/services/fastq_concatenation_service/exceptions.py +0 -0
  670. {cg-82.0.6 → cg-83.13.0}/cg/services/fastq_concatenation_service/fastq_concatenation_service.py +0 -0
  671. {cg-82.0.6 → cg-83.13.0}/cg/services/fastq_concatenation_service/utils.py +0 -0
  672. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/__init__.py +0 -0
  673. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/backup/__init__.py +0 -0
  674. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/backup/encrypt_service.py +0 -0
  675. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/backup/models.py +0 -0
  676. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/backup/utils.py +0 -0
  677. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/backup/validators.py +0 -0
  678. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/cleaning/__init__.py +0 -0
  679. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/cleaning/clean_runs_service.py +0 -0
  680. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/data_transfer/__init__.py +0 -0
  681. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/data_transfer/data_transfer_service.py +0 -0
  682. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/data_transfer/models.py +0 -0
  683. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/file_parsing/__init__.py +0 -0
  684. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/file_parsing/bcl_convert_metrics_parser.py +0 -0
  685. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/file_parsing/demux_version_service.py +0 -0
  686. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/file_parsing/models.py +0 -0
  687. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/file_parsing/sequencing_times/collect_sequencing_times.py +0 -0
  688. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/file_parsing/sequencing_times/hiseq_2500_sequencing_times_service.py +0 -0
  689. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/file_parsing/sequencing_times/hiseq_x_sequencing_times_service.py +0 -0
  690. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/file_parsing/sequencing_times/novaseq_6000_sequencing_times.py +0 -0
  691. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/file_parsing/sequencing_times/novaseq_x_sequencing_times_service.py +0 -0
  692. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/file_parsing/sequencing_times/sequencing_time_service.py +0 -0
  693. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/post_processing/__init__.py +0 -0
  694. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/post_processing/housekeeper_storage.py +0 -0
  695. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/post_processing/post_processing_service.py +0 -0
  696. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/post_processing/utils.py +0 -0
  697. {cg-82.0.6 → cg-83.13.0}/cg/services/illumina/post_processing/validation.py +0 -0
  698. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/__init__.py +0 -0
  699. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/constants.py +0 -0
  700. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/lims_service/service.py +0 -0
  701. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/order_service/__init__.py +0 -0
  702. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/order_service/models.py +0 -0
  703. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/order_service/order_service.py +0 -0
  704. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/order_summary_service/__init__.py +0 -0
  705. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/order_summary_service/dto/__init__.py +0 -0
  706. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/order_summary_service/dto/order_summary.py +0 -0
  707. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/order_summary_service/order_summary_service.py +0 -0
  708. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/order_summary_service/utils.py +0 -0
  709. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/storing/__init__.py +0 -0
  710. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/storing/constants.py +0 -0
  711. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/storing/implementations/__init__.py +0 -0
  712. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/storing/implementations/case_order_service.py +0 -0
  713. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/storing/implementations/fastq_order_service.py +0 -0
  714. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/storing/implementations/metagenome_order_service.py +0 -0
  715. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/storing/implementations/microbial_fastq_order_service.py +0 -0
  716. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/storing/implementations/microbial_order_service.py +0 -0
  717. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/storing/implementations/pacbio_order_service.py +0 -0
  718. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/storing/implementations/pool_order_service.py +0 -0
  719. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/storing/implementations/taxprofiler_order_service.py +0 -0
  720. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/storing/service.py +0 -0
  721. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/storing/service_registry.py +0 -0
  722. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/submitter/service.py +0 -0
  723. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/submitter/ticket_handler.py +0 -0
  724. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/__init__.py +0 -0
  725. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/errors/__init__.py +0 -0
  726. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/errors/case_errors.py +0 -0
  727. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/errors/case_sample_errors.py +0 -0
  728. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/errors/order_errors.py +0 -0
  729. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/errors/sample_errors.py +0 -0
  730. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/errors/validation_errors.py +0 -0
  731. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/model_validator/model_validator.py +0 -0
  732. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/model_validator/utils.py +0 -0
  733. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/models/__init__.py +0 -0
  734. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/models/case.py +0 -0
  735. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/models/case_aliases.py +0 -0
  736. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/models/discriminators.py +0 -0
  737. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/models/existing_case.py +0 -0
  738. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/models/existing_sample.py +0 -0
  739. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/models/order.py +0 -0
  740. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/models/order_aliases.py +0 -0
  741. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/models/order_with_cases.py +0 -0
  742. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/models/order_with_samples.py +0 -0
  743. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/models/sample.py +0 -0
  744. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/models/sample_aliases.py +0 -0
  745. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/models/utils.py +0 -0
  746. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_type_maps.py +0 -0
  747. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/__init__.py +0 -0
  748. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic/constants.py +0 -0
  749. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic/models/case.py +0 -0
  750. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic/models/order.py +0 -0
  751. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic/models/sample.py +0 -0
  752. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic/validation_rules.py +0 -0
  753. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic_umi/constants.py +0 -0
  754. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic_umi/models/case.py +0 -0
  755. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic_umi/models/order.py +0 -0
  756. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic_umi/models/sample.py +0 -0
  757. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/balsamic_umi/validation_rules.py +0 -0
  758. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/fastq/constants.py +0 -0
  759. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/fastq/models/order.py +0 -0
  760. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/fastq/models/sample.py +0 -0
  761. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/fastq/validation_rules.py +0 -0
  762. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/fluffy/constants.py +0 -0
  763. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/fluffy/models/order.py +0 -0
  764. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/fluffy/models/sample.py +0 -0
  765. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/fluffy/validation_rules.py +0 -0
  766. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/metagenome/constants.py +0 -0
  767. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/metagenome/models/order.py +0 -0
  768. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/metagenome/models/sample.py +0 -0
  769. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/metagenome/validation_rules.py +0 -0
  770. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/microbial_fastq/constants.py +0 -0
  771. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/microbial_fastq/models/order.py +0 -0
  772. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/microbial_fastq/models/sample.py +0 -0
  773. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/microbial_fastq/validation_rules.py +0 -0
  774. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/microsalt/constants.py +0 -0
  775. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/microsalt/models/order.py +0 -0
  776. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/microsalt/models/sample.py +0 -0
  777. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/microsalt/validation_rules.py +0 -0
  778. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_dna/constants.py +0 -0
  779. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_dna/models/case.py +0 -0
  780. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_dna/models/order.py +0 -0
  781. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_dna/models/sample.py +0 -0
  782. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_dna/validation_rules.py +0 -0
  783. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_rna/constants.py +0 -0
  784. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_rna/models/case.py +0 -0
  785. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_rna/models/order.py +0 -0
  786. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_rna/models/sample.py +0 -0
  787. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mip_rna/validation_rules.py +0 -0
  788. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mutant/constants.py +0 -0
  789. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mutant/models/order.py +0 -0
  790. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mutant/models/sample.py +0 -0
  791. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/mutant/validation_rules.py +0 -0
  792. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/nallo/constants.py +0 -0
  793. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/nallo/models/case.py +0 -0
  794. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/nallo/models/order.py +0 -0
  795. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/nallo/models/sample.py +0 -0
  796. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/nallo/validation_rules.py +0 -0
  797. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/order_validation_rules.py +0 -0
  798. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/pacbio_long_read/constants.py +0 -0
  799. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/pacbio_long_read/models/order.py +0 -0
  800. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/pacbio_long_read/models/sample.py +0 -0
  801. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/pacbio_long_read/validation_rules.py +0 -0
  802. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/raredisease/constants.py +0 -0
  803. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/raredisease/models/case.py +0 -0
  804. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/raredisease/models/order.py +0 -0
  805. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/raredisease/models/sample.py +0 -0
  806. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/raredisease/validation_rules.py +0 -0
  807. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/rml/constants.py +0 -0
  808. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/rml/models/order.py +0 -0
  809. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/rml/models/sample.py +0 -0
  810. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/rml/validation_rules.py +0 -0
  811. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/rna_fusion/constants.py +0 -0
  812. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/rna_fusion/models/case.py +0 -0
  813. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/rna_fusion/models/order.py +0 -0
  814. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/rna_fusion/models/sample.py +0 -0
  815. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/rna_fusion/validation_rules.py +0 -0
  816. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/taxprofiler/constants.py +0 -0
  817. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/taxprofiler/models/order.py +0 -0
  818. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/taxprofiler/models/sample.py +0 -0
  819. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/taxprofiler/validation_rules.py +0 -0
  820. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/tomte/constants.py +0 -0
  821. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/tomte/models/case.py +0 -0
  822. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/tomte/models/order.py +0 -0
  823. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/tomte/models/sample.py +0 -0
  824. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/order_types/tomte/validation_rules.py +0 -0
  825. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/response_mapper.py +0 -0
  826. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/__init__.py +0 -0
  827. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/case/__init__.py +0 -0
  828. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/case/rules.py +0 -0
  829. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/case/utils.py +0 -0
  830. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/__init__.py +0 -0
  831. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/pedigree/__init__.py +0 -0
  832. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/pedigree/models.py +0 -0
  833. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/pedigree/utils.py +0 -0
  834. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/pedigree/validate_pedigree.py +0 -0
  835. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/rules.py +0 -0
  836. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/case_sample/utils.py +0 -0
  837. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/order/__init__.py +0 -0
  838. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/order/rules.py +0 -0
  839. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/sample/__init__.py +0 -0
  840. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/sample/rules.py +0 -0
  841. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/sample/utils.py +0 -0
  842. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/rules/utils.py +0 -0
  843. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/service.py +0 -0
  844. {cg-82.0.6 → cg-83.13.0}/cg/services/orders/validation/utils.py +0 -0
  845. {cg-82.0.6 → cg-83.13.0}/cg/services/pdc_service/__init__.py +0 -0
  846. {cg-82.0.6 → cg-83.13.0}/cg/services/pdc_service/pdc_service.py +0 -0
  847. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/__init__.py +0 -0
  848. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/abstract_classes.py +0 -0
  849. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/abstract_models.py +0 -0
  850. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/constants.py +0 -0
  851. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/error_handler.py +0 -0
  852. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/exc.py +0 -0
  853. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/__init__.py +0 -0
  854. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/data_transfer_service/__init__.py +0 -0
  855. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/housekeeper_service/models.py +0 -0
  856. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/housekeeper_service/pacbio_houskeeper_service.py +0 -0
  857. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/metrics_parser/__init__.py +0 -0
  858. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/metrics_parser/metrics_parser.py +0 -0
  859. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/metrics_parser/utils.py +0 -0
  860. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/post_processing_service.py +0 -0
  861. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/run_data_generator/pacbio_run_data_generator.py +0 -0
  862. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/run_data_generator/run_data.py +0 -0
  863. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/run_file_manager/models.py +0 -0
  864. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/run_file_manager/run_file_manager.py +0 -0
  865. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/pacbio/run_validator/pacbio_run_validator.py +0 -0
  866. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/run_names/__init__.py +0 -0
  867. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/run_names/pacbio.py +0 -0
  868. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/run_names/service.py +0 -0
  869. {cg-82.0.6 → cg-83.13.0}/cg/services/run_devices/validators.py +0 -0
  870. {cg-82.0.6 → cg-83.13.0}/cg/services/sample_run_metrics_service/__init__.py +0 -0
  871. {cg-82.0.6 → cg-83.13.0}/cg/services/sample_run_metrics_service/dtos.py +0 -0
  872. {cg-82.0.6 → cg-83.13.0}/cg/services/sample_run_metrics_service/sample_run_metrics_service.py +0 -0
  873. {cg-82.0.6 → cg-83.13.0}/cg/services/sample_run_metrics_service/utils.py +0 -0
  874. {cg-82.0.6 → cg-83.13.0}/cg/services/sequencing_qc_service/__init__.py +0 -0
  875. {cg-82.0.6 → cg-83.13.0}/cg/services/sequencing_qc_service/quality_checks/checks.py +0 -0
  876. {cg-82.0.6 → cg-83.13.0}/cg/services/sequencing_qc_service/quality_checks/utils.py +0 -0
  877. {cg-82.0.6 → cg-83.13.0}/cg/services/sequencing_qc_service/sequencing_qc_service.py +0 -0
  878. {cg-82.0.6 → cg-83.13.0}/cg/services/sequencing_qc_service/utils.py +0 -0
  879. {cg-82.0.6 → cg-83.13.0}/cg/services/slurm_service/__init__.py +0 -0
  880. {cg-82.0.6 → cg-83.13.0}/cg/services/slurm_service/slurm_cli_service.py +0 -0
  881. {cg-82.0.6 → cg-83.13.0}/cg/services/slurm_service/slurm_service.py +0 -0
  882. {cg-82.0.6 → cg-83.13.0}/cg/services/slurm_upload_service/__init__.py +0 -0
  883. {cg-82.0.6 → cg-83.13.0}/cg/services/slurm_upload_service/slurm_upload_config.py +0 -0
  884. {cg-82.0.6 → cg-83.13.0}/cg/services/slurm_upload_service/slurm_upload_service.py +0 -0
  885. {cg-82.0.6 → cg-83.13.0}/cg/services/slurm_upload_service/utils.py +0 -0
  886. {cg-82.0.6 → cg-83.13.0}/cg/services/validate_file_transfer_service/validate_file_transfer_service.py +0 -0
  887. {cg-82.0.6 → cg-83.13.0}/cg/services/web_services/application/models.py +0 -0
  888. {cg-82.0.6 → cg-83.13.0}/cg/services/web_services/application/service.py +0 -0
  889. {cg-82.0.6 → cg-83.13.0}/cg/services/web_services/case/service.py +0 -0
  890. {cg-82.0.6 → cg-83.13.0}/cg/services/web_services/sample/dto_mappers.py +0 -0
  891. {cg-82.0.6 → cg-83.13.0}/cg/services/web_services/sample/service.py +0 -0
  892. {cg-82.0.6 → cg-83.13.0}/cg/services/web_services/sample/utils.py +0 -0
  893. {cg-82.0.6 → cg-83.13.0}/cg/store/__init__.py +0 -0
  894. {cg-82.0.6 → cg-83.13.0}/cg/store/api/data_classes.py +0 -0
  895. {cg-82.0.6 → cg-83.13.0}/cg/store/base.py +0 -0
  896. {cg-82.0.6 → cg-83.13.0}/cg/store/crud/__init__.py +0 -0
  897. {cg-82.0.6 → cg-83.13.0}/cg/store/crud/delete.py +0 -0
  898. {cg-82.0.6 → cg-83.13.0}/cg/store/database.py +0 -0
  899. {cg-82.0.6 → cg-83.13.0}/cg/store/exc.py +0 -0
  900. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/__init__.py +0 -0
  901. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_analysis_filters.py +0 -0
  902. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_application_filters.py +0 -0
  903. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_application_limitations_filters.py +0 -0
  904. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_application_version_filters.py +0 -0
  905. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_bed_filters.py +0 -0
  906. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_bed_version_filters.py +0 -0
  907. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_case_filters.py +0 -0
  908. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_case_sample_filters.py +0 -0
  909. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_collaboration_filters.py +0 -0
  910. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_customer_filters.py +0 -0
  911. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_illumina_flow_cell_filters.py +0 -0
  912. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_illumina_metrics_filters.py +0 -0
  913. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_illumina_sequencing_run_filters.py +0 -0
  914. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_invoice_filters.py +0 -0
  915. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_order_filters.py +0 -0
  916. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_ordertype_application_filters.py +0 -0
  917. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_organism_filters.py +0 -0
  918. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_pacbio_smrt_cell_filters.py +0 -0
  919. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_panel_filters.py +0 -0
  920. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_pool_filters.py +0 -0
  921. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_sample_filters.py +0 -0
  922. {cg-82.0.6 → cg-83.13.0}/cg/store/filters/status_user_filters.py +0 -0
  923. {cg-82.0.6 → cg-83.13.0}/cg/store/store.py +0 -0
  924. {cg-82.0.6 → cg-83.13.0}/cg/utils/__init__.py +0 -0
  925. {cg-82.0.6 → cg-83.13.0}/cg/utils/calculations.py +0 -0
  926. {cg-82.0.6 → cg-83.13.0}/cg/utils/checksum/__init__.py +0 -0
  927. {cg-82.0.6 → cg-83.13.0}/cg/utils/checksum/checksum.py +0 -0
  928. {cg-82.0.6 → cg-83.13.0}/cg/utils/click/EnumChoice.py +0 -0
  929. {cg-82.0.6 → cg-83.13.0}/cg/utils/click/__init__.py +0 -0
  930. {cg-82.0.6 → cg-83.13.0}/cg/utils/commands.py +0 -0
  931. {cg-82.0.6 → cg-83.13.0}/cg/utils/date.py +0 -0
  932. {cg-82.0.6 → cg-83.13.0}/cg/utils/dict.py +0 -0
  933. {cg-82.0.6 → cg-83.13.0}/cg/utils/email.py +0 -0
  934. {cg-82.0.6 → cg-83.13.0}/cg/utils/enums.py +0 -0
  935. {cg-82.0.6 → cg-83.13.0}/cg/utils/files.py +0 -0
  936. {cg-82.0.6 → cg-83.13.0}/cg/utils/flask/__init__.py +0 -0
  937. {cg-82.0.6 → cg-83.13.0}/cg/utils/flask/enum.py +0 -0
  938. {cg-82.0.6 → cg-83.13.0}/cg/utils/mapping.py +0 -0
  939. {cg-82.0.6 → cg-83.13.0}/cg/utils/time.py +0 -0
  940. {cg-82.0.6 → 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: 82.0.6
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"
@@ -120,7 +120,7 @@ class HousekeeperAPI:
120
120
  *,
121
121
  bundle: str = None,
122
122
  tags: set[str] = None,
123
- version: int = None,
123
+ version: int | None = None,
124
124
  path: str = None,
125
125
  ) -> Query:
126
126
  """Fetch files."""
@@ -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)
@@ -10,12 +10,8 @@ from cg.cli.workflow.commands import ARGUMENT_CASE_ID, resolve_compression
10
10
  from cg.cli.workflow.nf_analysis import (
11
11
  OPTION_RESUME,
12
12
  OPTION_REVISION,
13
- config_case,
14
13
  metrics_deliver,
15
14
  report_deliver,
16
- run,
17
- start,
18
- start_available,
19
15
  store,
20
16
  store_available,
21
17
  store_housekeeper,
@@ -41,10 +37,6 @@ def tomte(context: click.Context) -> None:
41
37
 
42
38
 
43
39
  tomte.add_command(resolve_compression)
44
- tomte.add_command(config_case)
45
- tomte.add_command(run)
46
- tomte.add_command(start)
47
- tomte.add_command(start_available)
48
40
  tomte.add_command(metrics_deliver)
49
41
  tomte.add_command(report_deliver)
50
42
  tomte.add_command(store_housekeeper)
@@ -52,12 +44,14 @@ tomte.add_command(store)
52
44
  tomte.add_command(store_available)
53
45
 
54
46
 
55
- @tomte.command("dev-config-case")
47
+ @tomte.command("config-case")
56
48
  @ARGUMENT_CASE_ID
57
49
  @click.pass_obj
58
- def dev_config_case(cg_config: CGConfig, case_id: str):
50
+ def config_case(cg_config: CGConfig, case_id: str):
59
51
  """
60
- 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
61
55
  Creates the following files in the case run directory:
62
56
  - CASE_ID_params_file.yaml
63
57
  - CASE_ID_nextflow_config.json
@@ -69,14 +63,16 @@ def dev_config_case(cg_config: CGConfig, case_id: str):
69
63
  configurator.configure(case_id=case_id)
70
64
 
71
65
 
72
- @tomte.command("dev-run")
66
+ @tomte.command("run")
73
67
  @OPTION_REVISION
74
68
  @OPTION_RESUME
75
69
  @ARGUMENT_CASE_ID
76
70
  @click.pass_obj
77
- def dev_run(cg_config: CGConfig, case_id: str, resume: bool, revision: str | None) -> None:
71
+ def run(cg_config: CGConfig, case_id: str, resume: bool, revision: str | None) -> None:
78
72
  """
79
- Run a preconfigured Tomte case. \b
73
+ Run a preconfigured Tomte case.
74
+
75
+ \b
80
76
  Assumes that the following files exist in the case run directory:
81
77
  - CASE_ID_params_file.yaml
82
78
  - CASE_ID_nextflow_config.json
@@ -88,13 +84,15 @@ def dev_run(cg_config: CGConfig, case_id: str, resume: bool, revision: str | Non
88
84
  analysis_starter.run(case_id=case_id, resume=resume, revision=revision)
89
85
 
90
86
 
91
- @tomte.command("dev-start")
87
+ @tomte.command("start")
92
88
  @OPTION_REVISION
93
89
  @ARGUMENT_CASE_ID
94
90
  @click.pass_obj
95
- def dev_start(cg_config: CGConfig, case_id: str, revision: str | None):
91
+ def start(cg_config: CGConfig, case_id: str, revision: str | None):
96
92
  """
97
- Start a Tomte case. \b
93
+ Start a Tomte case.
94
+
95
+ \b
98
96
  Configures the case and writes the following files:
99
97
  - CASE_ID_params_file.yaml
100
98
  - CASE_ID_nextflow_config.json
@@ -107,9 +105,9 @@ def dev_start(cg_config: CGConfig, case_id: str, revision: str | None):
107
105
  analysis_starter.start(case_id=case_id, revision=revision)
108
106
 
109
107
 
110
- @tomte.command("dev-start-available")
108
+ @tomte.command("start-available")
111
109
  @click.pass_obj
112
- def dev_start_available(cg_config: CGConfig):
110
+ def start_available(cg_config: CGConfig):
113
111
  """Starts all available Tomte cases."""
114
112
  LOG.info("Starting Tomte workflow for all available cases.")
115
113
  factory = AnalysisStarterFactory(cg_config)
@@ -100,9 +100,9 @@ class CancerAnalysisType(StrEnum):
100
100
 
101
101
 
102
102
  class SexOptions(StrEnum):
103
- MALE: str = "male"
104
- FEMALE: str = "female"
105
- UNKNOWN: str = "unknown"
103
+ MALE = "male"
104
+ FEMALE = "female"
105
+ UNKNOWN = "unknown"
106
106
 
107
107
 
108
108
  SARS_COV_REGEX = "^[0-9]{2}CS[0-9]{6}$"
@@ -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"