cg 83.17.1__py3-none-any.whl → 83.18.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
cg/__init__.py CHANGED
@@ -1,2 +1,2 @@
1
1
  __title__ = "cg"
2
- __version__ = "83.17.1"
2
+ __version__ = "83.18.1"
@@ -27,6 +27,12 @@ class CoverageMetrics(BaseModel):
27
27
  mean_coverage: float
28
28
 
29
29
 
30
+ class CoverageMetricsChanjo1(CoverageMetrics):
31
+ """Chanjo1 sample coverage metrics model."""
32
+
33
+ pass
34
+
35
+
30
36
  class CoveragePostResponse(RootModel):
31
37
  """Coverage sample data model returned from the POST request."""
32
38
 
@@ -24,6 +24,7 @@ RAREDISEASE_METRIC_CONDITIONS_WES: dict[str, dict[str, Any]] = {
24
24
  "GC_DROPOUT": {"norm": "lt", "threshold": 10},
25
25
  RAREDISEASE_PREDICTED_SEX_METRIC: {"norm": "eq", "threshold": None},
26
26
  "gender": {"norm": "eq", "threshold": None},
27
+ "FREEMIX": {"norm": "lt", "threshold": 0.02},
27
28
  }
28
29
 
29
30
  RAREDISEASE_METRIC_CONDITIONS_WGS: dict[str, dict[str, Any]] = {
@@ -35,6 +36,7 @@ RAREDISEASE_METRIC_CONDITIONS_WGS: dict[str, dict[str, Any]] = {
35
36
  "GC_DROPOUT": {"norm": "lt", "threshold": 5},
36
37
  RAREDISEASE_PREDICTED_SEX_METRIC: {"norm": "eq", "threshold": None},
37
38
  "gender": {"norm": "eq", "threshold": None},
39
+ "FREEMIX": {"norm": "lt", "threshold": 0.02},
38
40
  }
39
41
 
40
42
  RAREDISEASE_PARENT_PEDDY_METRIC_CONDITION: dict[str, dict[str, Any]] = {
@@ -60,5 +62,3 @@ NALLO_COVERAGE_INTERVAL_TYPE: str = "genes"
60
62
  NALLO_COVERAGE_THRESHOLD: int = 10
61
63
 
62
64
  RAREDISEASE_COVERAGE_FILE_TAGS: list[str] = ["coverage", "d4"]
63
- RAREDISEASE_COVERAGE_INTERVAL_TYPE: str = "genes"
64
- RAREDISEASE_COVERAGE_THRESHOLD: int = 10
@@ -781,7 +781,7 @@ class AnalysisAPI(MetaAPI):
781
781
  def get_sample_coverage(
782
782
  self, case_id: str, sample_id: str, gene_ids: list[int]
783
783
  ) -> CoverageMetrics | None:
784
- """Return sample coverage data from Chanjo2."""
784
+ """Return sample coverage data from Chanjo or Chanjo2."""
785
785
  raise NotImplementedError
786
786
 
787
787
  def get_scout_upload_case_tags(self):
@@ -7,18 +7,11 @@ from typing import Any
7
7
 
8
8
  from housekeeper.store.models import File
9
9
 
10
- from cg.clients.chanjo2.models import (
11
- CoverageMetrics,
12
- CoveragePostRequest,
13
- CoveragePostResponse,
14
- CoverageSample,
15
- )
10
+ from cg.clients.chanjo2.models import CoverageMetricsChanjo1
16
11
  from cg.constants import Workflow
17
12
  from cg.constants.constants import GenomeVersion
18
13
  from cg.constants.nf_analysis import (
19
14
  RAREDISEASE_COVERAGE_FILE_TAGS,
20
- RAREDISEASE_COVERAGE_INTERVAL_TYPE,
21
- RAREDISEASE_COVERAGE_THRESHOLD,
22
15
  RAREDISEASE_METRIC_CONDITIONS_WES,
23
16
  RAREDISEASE_METRIC_CONDITIONS_WGS,
24
17
  RAREDISEASE_PARENT_PEDDY_METRIC_CONDITION,
@@ -154,25 +147,17 @@ class RarediseaseAnalysisAPI(NfAnalysisAPI):
154
147
 
155
148
  def get_sample_coverage(
156
149
  self, case_id: str, sample_id: str, gene_ids: list[int]
157
- ) -> CoverageMetrics | None:
158
- """Return sample coverage metrics from Chanjo2."""
159
- genome_version: GenomeVersion = self.get_genome_build(case_id)
160
- coverage_file_path: str | None = self.get_sample_coverage_file_path(
161
- bundle_name=case_id, sample_id=sample_id
150
+ ) -> CoverageMetricsChanjo1 | None:
151
+ sample_coverage: dict = self.chanjo_api.sample_coverage(
152
+ sample_id=sample_id, panel_genes=gene_ids
162
153
  )
163
- try:
164
- post_request = CoveragePostRequest(
165
- build=self.translate_genome_reference(genome_version),
166
- coverage_threshold=RAREDISEASE_COVERAGE_THRESHOLD,
167
- hgnc_gene_ids=gene_ids,
168
- interval_type=RAREDISEASE_COVERAGE_INTERVAL_TYPE,
169
- samples=[CoverageSample(coverage_file_path=coverage_file_path, name=sample_id)],
154
+ if sample_coverage:
155
+ return CoverageMetricsChanjo1(
156
+ coverage_completeness_percent=sample_coverage.get("mean_completeness"),
157
+ mean_coverage=sample_coverage.get("mean_coverage"),
170
158
  )
171
- post_response: CoveragePostResponse = self.chanjo2_api.get_coverage(post_request)
172
- return post_response.get_sample_coverage_metrics(sample_id)
173
- except Exception as error:
174
- LOG.error(f"Error getting coverage for sample '{sample_id}', error: {error}")
175
- return None
159
+ LOG.warning(f"Could not calculate sample coverage for: {sample_id}")
160
+ return None
176
161
 
177
162
  def get_scout_upload_case_tags(self) -> dict:
178
163
  """Return Raredisease Scout upload case tags."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cg
3
- Version: 83.17.1
3
+ Version: 83.18.1
4
4
  Summary: Clinical Genomics command center
5
5
  Requires-Python: >=3.11,<3.13
6
6
  Classifier: Programming Language :: Python
@@ -1,4 +1,4 @@
1
- cg/__init__.py,sha256=Zve1eNmtgbcknDgSp0wAaJYTe-LWKuPFhrQEKOFwKkM,41
1
+ cg/__init__.py,sha256=6XcxVhrnpF1Wj7FSSXTP8ztarrCDzDLtp37Z7OoqYrI,41
2
2
  cg/apps/__init__.py,sha256=pYf0vxo4iYQqURzFRYzqpOCdV8Cm9MWx0GHvJOz0EMg,315
3
3
  cg/apps/coverage/__init__.py,sha256=dJtsmNf8tODE2-VEomMIoYA7ugLYZAk_upsfOQCZeF8,27
4
4
  cg/apps/coverage/api.py,sha256=e_ozC3QeNKoEfpjjMaL-XjeBLtz-JySWccrtw0E9mLM,2940
@@ -176,7 +176,7 @@ cg/clients/arnold/dto/create_case_request.py,sha256=tXD7EZSgHL6bOHhph65dgYoGKIut
176
176
  cg/clients/arnold/exceptions.py,sha256=w9J9TLie5tcgqzaO0L3lrF3OlowtjzkeGR4R7quXzko,384
177
177
  cg/clients/chanjo2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
178
  cg/clients/chanjo2/client.py,sha256=je48Wx3nvyerYKwezZFBjuLHD3C7XaXDQSBeaTOtBlU,1197
179
- cg/clients/chanjo2/models.py,sha256=9Rw7fZKcqjSIXL48DaxHiugTwAJnbxKwJPWEKQZjWTk,1328
179
+ cg/clients/chanjo2/models.py,sha256=W5Zgb94pplbM2x5QkoHDJXovWLRmh4vbOlsc08ZjzbE,1436
180
180
  cg/clients/chanjo2/utils.py,sha256=q6pJEjV90JVTK2ad3OKtLM_vBMpY8PzC-iFG9xg4Y5o,948
181
181
  cg/clients/freshdesk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
182
  cg/clients/freshdesk/constants.py,sha256=SwGJsLggJe5QrrnPVSURe1JSaIwMwKIT09e_1Lhmta4,244
@@ -207,7 +207,7 @@ cg/constants/invoice.py,sha256=Tdd3PY_Z7wz4eSfKaTapSFlkmk_FWM1bwWMOj5D5F5Y,95
207
207
  cg/constants/lims.py,sha256=vhATu1UtIXdfPZWEu8pne3uq4ZhCAdPNJcjSotD8AE8,6559
208
208
  cg/constants/metrics.py,sha256=jBLp8buIG_3fKFraerFvpfSJ6s-0H42jI1qysjjAXFc,847
209
209
  cg/constants/nextflow.py,sha256=o5VxtsyZNJaA1bh_AyKQQ0Iov6grZIeik_hhE8zO268,197
210
- cg/constants/nf_analysis.py,sha256=r3bfzzIAL3fU3dxMSwIUmN_jYLhcF70L0NXymGLTj5M,2541
210
+ cg/constants/nf_analysis.py,sha256=x9hCQvamgolqC8Pd76d9sBrP36jWbfpZEcxv4-Rigic,2550
211
211
  cg/constants/nipt.py,sha256=KGy7Y08jIUmT9FKKdjGzfRwvklAkOHRLKXqDOQx4aPc,19
212
212
  cg/constants/observations.py,sha256=Sjxo3R7DCkcMkSWNSeg2Sznkjr3werFRRsSREjd6CCU,3887
213
213
  cg/constants/orderforms.py,sha256=pLD_ufw11aE-Fn4x87el3F_KRITi2lbrgpBYU7eJgpM,2362
@@ -348,7 +348,7 @@ cg/meta/upload/scout/uploadscoutapi.py,sha256=FJfr-rvTG7chU3y8Z-jmdQISUx_QQ3OsxF
348
348
  cg/meta/upload/tomte/tomte.py,sha256=QYuW-YlOxXQLs1i15iotswe5CNHi4--aSbMQyxealcw,1662
349
349
  cg/meta/upload/upload_api.py,sha256=hi25r35L7bEJMicH8qc4poAd2TNvP5SJwpS_3lf9eo4,3926
350
350
  cg/meta/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
351
- cg/meta/workflow/analysis.py,sha256=oj-hOhp8mlH-KVvB6B6Krsm961K4_avAl6TZ6mWPYlQ,34727
351
+ cg/meta/workflow/analysis.py,sha256=Pwy62B8Ot6aIG7zEQHsqqUZbmOHqF1AO4WHNV6pL0W0,34737
352
352
  cg/meta/workflow/balsamic.py,sha256=TB2nLyq8r-CtCBgOD4Kz3WDJi6lgDs78nagItLyVHjo,31149
353
353
  cg/meta/workflow/balsamic_pon.py,sha256=gMo9eKxxEtUR61cQtIWcxFRqSgo0IeBSPe9k8XnF_pc,2700
354
354
  cg/meta/workflow/balsamic_umi.py,sha256=W1onPhiqfvVhs8d4M0-EbiVvLys2TBp2fihQ7HrV-Uw,757
@@ -386,7 +386,7 @@ cg/meta/workflow/mutant/quality_controller/utils.py,sha256=8zbn210O5RIKRIsaZUkVv
386
386
  cg/meta/workflow/nallo.py,sha256=V0yBQLIlRvWS-gtOfJ6OgxGXTTEjx5Yp-KObyBMCNjs,10035
387
387
  cg/meta/workflow/nf_analysis.py,sha256=eXl_1AxwwdzVC_k3ujiONH5q1FCw9wacGoVpVKx2_PI,20466
388
388
  cg/meta/workflow/prepare_fastq.py,sha256=HbkrsuqlZgb_7kQPf_j_Mqowh6nEms9jl7043ybxK4U,6149
389
- cg/meta/workflow/raredisease.py,sha256=-bENb0f1f9bptMsP_PBy4niMmkxDnIxCOF32OBgDxts,8898
389
+ cg/meta/workflow/raredisease.py,sha256=yKrPKMfrowUPRYhWaHBJF4EFPbNB6mL3JkkRejZlhAI,8222
390
390
  cg/meta/workflow/rnafusion.py,sha256=Mcmn_HTAHpH-M6Pl_bOG2oSfIgZe11GqtTKrk6lFpPU,3646
391
391
  cg/meta/workflow/taxprofiler.py,sha256=pphhUfe-CguO1PIwR3orRoaNnVWi_8V23MkYORHcAh0,3045
392
392
  cg/meta/workflow/tomte.py,sha256=-WtxossQMfQjYR9CBdxS1V_gTix3gAVqjDR5tIBTHcE,2345
@@ -922,7 +922,7 @@ cg/utils/flask/enum.py,sha256=xwNVtFPkSzoloJctLHu7obRyxcng1GJrhkeYkqwf9tw,1052
922
922
  cg/utils/mapping.py,sha256=oZpZW2kgsbtAP2FZ7RtRPELiEE1zZk_nAGisHGtCOUo,491
923
923
  cg/utils/time.py,sha256=_VOglhrFEZ5cwHK1U1g36SdwzB7UvV-Nvlt4ymuZUho,1501
924
924
  cg/utils/utils.py,sha256=RciI_UhWcnG_pMZrmQZ1ZYb-O1N0DweTYMmhE0SIRgQ,1410
925
- cg-83.17.1.dist-info/METADATA,sha256=yUBHF44GMYrBmo4-AXyWg0g0q3SaDDpmkN5VKiQOm3k,4940
926
- cg-83.17.1.dist-info/WHEEL,sha256=3ny-bZhpXrU6vSQ1UPG34FoxZBp3lVcvK0LkgUz6VLk,88
927
- cg-83.17.1.dist-info/entry_points.txt,sha256=q5f47YQQGltzK_xnIq1mDopRXXEItr85Xe1BCtG-Wts,39
928
- cg-83.17.1.dist-info/RECORD,,
925
+ cg-83.18.1.dist-info/METADATA,sha256=0wIHoWInpcMdWHPBW9WebN8SwMmVOSt-6fyGEOnVg-8,4940
926
+ cg-83.18.1.dist-info/WHEEL,sha256=3ny-bZhpXrU6vSQ1UPG34FoxZBp3lVcvK0LkgUz6VLk,88
927
+ cg-83.18.1.dist-info/entry_points.txt,sha256=q5f47YQQGltzK_xnIq1mDopRXXEItr85Xe1BCtG-Wts,39
928
+ cg-83.18.1.dist-info/RECORD,,
File without changes