pav3 3.0.0.dev20__tar.gz → 3.0.0.dev21__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 (98) hide show
  1. {pav3-3.0.0.dev20/src/pav3.egg-info → pav3-3.0.0.dev21}/PKG-INFO +1 -1
  2. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/__init__.py +1 -1
  3. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/align/features.py +19 -13
  4. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/align/lift.py +4 -4
  5. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/align/score.py +2 -1
  6. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/workflow/rules/align.smk +1 -1
  7. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/dev/sm.py +4 -1
  8. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21/src/pav3.egg-info}/PKG-INFO +1 -1
  9. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/LICENSE +0 -0
  10. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/README.md +0 -0
  11. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/pyproject.toml +0 -0
  12. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/setup.cfg +0 -0
  13. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/__main__.py +0 -0
  14. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/align/__init__.py +0 -0
  15. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/align/lcmodel/__init__.py +0 -0
  16. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/align/lcmodel/_lcmodel.py +0 -0
  17. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/align/lcmodel/_lcmodel_logistic.py +0 -0
  18. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/align/lcmodel/_lcmodel_null.py +0 -0
  19. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/align/lcmodel/_util.py +0 -0
  20. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/align/op.py +0 -0
  21. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/align/records.py +0 -0
  22. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/align/tables.py +0 -0
  23. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/align/trim.py +0 -0
  24. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/anno.py +0 -0
  25. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/call/__init__.py +0 -0
  26. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/call/expr.py +0 -0
  27. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/call/integrate.py +0 -0
  28. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/call/intra.py +0 -0
  29. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/call/util.py +0 -0
  30. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/cli/__init__.py +0 -0
  31. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/cli/_cli.py +0 -0
  32. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/cli/_common_opt.py +0 -0
  33. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/cli/_subcommand_batch.py +0 -0
  34. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/cli/_subcommand_call.py +0 -0
  35. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/cli/_subcommand_license.py +0 -0
  36. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/const.py +0 -0
  37. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/lcmodel/default/model.json +0 -0
  38. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/lcmodel/human_95_80/model.json +0 -0
  39. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/lcmodel/human_95_80/model_info.tar.gz +0 -0
  40. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/lcmodel/human_95_80/weights.npz +0 -0
  41. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/lcmodel/human_98_80/model.json +0 -0
  42. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/lcmodel/human_98_80/model_info.tar.gz +0 -0
  43. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/lcmodel/human_98_80/weights.npz +0 -0
  44. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/lcmodel/prim_90_50/model.json +0 -0
  45. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/lcmodel/prim_90_50/model_info.tar.gz +0 -0
  46. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/lcmodel/prim_90_50/weights.npz +0 -0
  47. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/lcmodel/primdiv_85_50/model.json +0 -0
  48. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/lcmodel/primdiv_85_50/model_info.tar.gz +0 -0
  49. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/lcmodel/primdiv_85_50/weights.npz +0 -0
  50. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/tracks/alignment_track_fields.tsv +0 -0
  51. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/tracks/variant_track_fields.tsv +0 -0
  52. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/workflow/Snakefile +0 -0
  53. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/workflow/profiles/pav_default/config.yaml +0 -0
  54. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/workflow/rules/call.smk +0 -0
  55. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/workflow/rules/data.smk +0 -0
  56. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/workflow/rules/pipeline.smk +0 -0
  57. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/data/workflow/rules/tracks.smk +0 -0
  58. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/dev/__init__.py +0 -0
  59. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/dev/imports.py +0 -0
  60. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/dev/inter.py +0 -0
  61. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/dev/path.py +0 -0
  62. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/dev/tables.py +0 -0
  63. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/fig/__init__.py +0 -0
  64. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/fig/const.py +0 -0
  65. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/fig/density.py +0 -0
  66. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/fig/tracks.py +0 -0
  67. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/fig/util.py +0 -0
  68. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/inv.py +0 -0
  69. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/io.py +0 -0
  70. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/kde.py +0 -0
  71. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/lgsv/__init__.py +0 -0
  72. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/lgsv/call.py +0 -0
  73. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/lgsv/chain.py +0 -0
  74. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/lgsv/interval.py +0 -0
  75. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/lgsv/io.py +0 -0
  76. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/lgsv/region_kde.py +0 -0
  77. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/lgsv/resources.py +0 -0
  78. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/lgsv/struct.py +0 -0
  79. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/lgsv/variant.py +0 -0
  80. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/params.py +0 -0
  81. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/pipeline.py +0 -0
  82. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/region.py +0 -0
  83. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/schema.py +0 -0
  84. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/seq.py +0 -0
  85. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/util.py +0 -0
  86. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/vcf.py +0 -0
  87. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/workflow/__init__.py +0 -0
  88. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/workflow/__pycache__/__init__.cpython-312.pyc +0 -0
  89. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/workflow/__pycache__/call.cpython-312.pyc +0 -0
  90. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/workflow/__pycache__/resource.cpython-312.pyc +0 -0
  91. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/workflow/call.py +0 -0
  92. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3/workflow/resource.py +0 -0
  93. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3.egg-info/SOURCES.txt +0 -0
  94. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3.egg-info/dependency_links.txt +0 -0
  95. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3.egg-info/entry_points.txt +0 -0
  96. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3.egg-info/requires.txt +0 -0
  97. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/src/pav3.egg-info/top_level.txt +0 -0
  98. {pav3-3.0.0.dev20 → pav3-3.0.0.dev21}/tests/test_score_dtype.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pav3
3
- Version: 3.0.0.dev20
3
+ Version: 3.0.0.dev21
4
4
  Summary: Assembly-based variant discovery
5
5
  License-Expression: MIT
6
6
  Requires-Python: >=3.12
@@ -1,6 +1,6 @@
1
1
  """PAV Python library routines."""
2
2
 
3
- __version__ = '3.0.0.dev20'
3
+ __version__ = '3.0.0.dev21'
4
4
 
5
5
  __all__ = [
6
6
  'align',
@@ -335,13 +335,16 @@ class FeatureGenerator:
335
335
  return df.with_columns(
336
336
  df
337
337
  .select(
338
- pl.col('score') / (
339
- (
340
- pl.col('qry_end') - pl.col('qry_pos')
338
+ (
339
+ pl.col('score')
340
+ / (
341
+ (
342
+ pl.col('qry_end') - pl.col('qry_pos')
343
+ )
344
+ .fill_null(0.0)
345
+ .map_elements(self.score_model.match, return_dtype=pl.Float64)
341
346
  )
342
- .fill_null(0.0)
343
- .map_elements(self.score_model.match, return_dtype=pl.Float32)
344
- )
347
+ ).cast(pl.Float32)
345
348
  )
346
349
  .to_series()
347
350
  .alias('score_prop')
@@ -377,15 +380,18 @@ class FeatureGenerator:
377
380
  )
378
381
  .with_columns(
379
382
  (
380
- pl.col('score_mm') / (
381
- (
382
- pl.col("_op_len") * (
383
- pl.col("_op_code").list.eval(pl.element().is_in([op.EQ, op.X]))
383
+ (
384
+ pl.col('score_mm')
385
+ / (
386
+ (
387
+ pl.col("_op_len") * (
388
+ pl.col("_op_code").list.eval(pl.element().is_in([op.EQ, op.X]))
389
+ )
384
390
  )
391
+ .list.sum()
392
+ .map_elements(self.score_model.match, return_dtype=pl.Float64)
385
393
  )
386
- .list.sum()
387
- .map_elements(self.score_model.match, return_dtype=pl.Float32)
388
- )
394
+ ).cast(pl.Float32)
389
395
  )
390
396
  .alias('score_mm_prop')
391
397
  )
@@ -532,7 +532,7 @@ class AlignLift:
532
532
  """
533
533
  lift_pairs = get_lift_pairs(
534
534
  a=self.to_ref(region.chrom, region.pos),
535
- b=self.to_ref(region.chrom, region.end),
535
+ b=self.to_ref(region.chrom, region.end - 1),
536
536
  same_align=same_align,
537
537
  single_align=single_align,
538
538
  multi=multi,
@@ -550,7 +550,7 @@ class AlignLift:
550
550
  return Region(
551
551
  chrom=pos['lift_id'],
552
552
  pos=pos['lift_pos'],
553
- end=end['lift_pos'],
553
+ end=end['lift_pos'] + 1,
554
554
  is_rev=pos['is_rev'],
555
555
  pos_align_index=pos['align_index'],
556
556
  end_align_index=end['align_index'],
@@ -578,7 +578,7 @@ class AlignLift:
578
578
  """
579
579
  lift_pairs = get_lift_pairs(
580
580
  a=self.to_qry(region.chrom, region.pos),
581
- b=self.to_qry(region.chrom, region.end),
581
+ b=self.to_qry(region.chrom, region.end - 1),
582
582
  same_align=same_align,
583
583
  single_align=single_align,
584
584
  multi=multi,
@@ -596,7 +596,7 @@ class AlignLift:
596
596
  return Region(
597
597
  chrom=pos['lift_id'],
598
598
  pos=pos['lift_pos'],
599
- end=end['lift_pos'],
599
+ end=end['lift_pos'] + 1,
600
600
  is_rev=pos['is_rev'],
601
601
  pos_align_index=pos['align_index'],
602
602
  end_align_index=end['align_index'],
@@ -163,7 +163,8 @@ class ScoreModel(ABC):
163
163
  .select(pl.col('align_ops'))
164
164
  .to_series()
165
165
  .map_elements(op.row_to_arr, return_dtype=pl.Object)
166
- .map_elements(lambda op_arr: np.float32(self.score_op_arr(op_arr)), return_dtype=pl.Float32)
166
+ .map_elements(lambda op_arr: self.score_op_arr(op_arr), return_dtype=pl.Float64)
167
+ .cast(pl.Float32)
167
168
  )
168
169
 
169
170
  # A pure polars implementation is slower:
@@ -126,7 +126,7 @@ rule align_tables:
126
126
  df_qry_fai=df_qry_fai,
127
127
  score_model=score_model,
128
128
  lc_model=lc_model,
129
- ref_fa_filename=ref_fa_filename
129
+ ref_fa_filename=ref_fa_filename,
130
130
  )
131
131
 
132
132
  if pav_params.debug:
@@ -9,7 +9,10 @@ __all__ = [
9
9
  import re
10
10
  from typing import Optional, Iterable
11
11
 
12
- from snakemake.io import Namedlist
12
+ try:
13
+ from snakemake.io import Namedlist
14
+ except ImportError:
15
+ from snakemake.iocontainers import Namedlist
13
16
 
14
17
 
15
18
  def strip_and_format(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pav3
3
- Version: 3.0.0.dev20
3
+ Version: 3.0.0.dev21
4
4
  Summary: Assembly-based variant discovery
5
5
  License-Expression: MIT
6
6
  Requires-Python: >=3.12
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes