agglovar 0.0.1.dev9__tar.gz → 0.0.1.dev10__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 (51) hide show
  1. {agglovar-0.0.1.dev9/src/agglovar.egg-info → agglovar-0.0.1.dev10}/PKG-INFO +1 -1
  2. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/__init__.py +1 -1
  3. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/bed/intersect.py +13 -3
  4. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/bed/join.py +17 -11
  5. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10/src/agglovar.egg-info}/PKG-INFO +1 -1
  6. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/LICENSE +0 -0
  7. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/README.md +0 -0
  8. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/pyproject.toml +0 -0
  9. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/setup.cfg +0 -0
  10. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/align/__init__.py +0 -0
  11. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/align/op.py +0 -0
  12. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/align/score.py +0 -0
  13. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/bed/__init__.py +0 -0
  14. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/bed/col.py +0 -0
  15. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/bed/merge.py +0 -0
  16. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/dev/__init__.py +0 -0
  17. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/dev/imports.py +0 -0
  18. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/fa.py +0 -0
  19. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/io.py +0 -0
  20. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/kmer/__init__.py +0 -0
  21. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/kmer/plot.py +0 -0
  22. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/kmer/util.py +0 -0
  23. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/merge/__init__.py +0 -0
  24. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/merge/base.py +0 -0
  25. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/merge/config/__init__.py +0 -0
  26. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/merge/config/parser.py +0 -0
  27. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/merge/config/stage.py +0 -0
  28. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/merge/config/strategy.py +0 -0
  29. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/merge/cumulative.py +0 -0
  30. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/merge/om/__init__.py +0 -0
  31. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/merge/om/_executor_base.py +0 -0
  32. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/merge/om/_executor_nr.py +0 -0
  33. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/meta/__init__.py +0 -0
  34. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/meta/decorators.py +0 -0
  35. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/meta/descriptors.py +0 -0
  36. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/pairwise/__init__.py +0 -0
  37. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/pairwise/base.py +0 -0
  38. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/pairwise/overlap/__init__.py +0 -0
  39. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/pairwise/overlap/_const.py +0 -0
  40. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/pairwise/overlap/_overlap.py +0 -0
  41. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/pairwise/overlap/_stage.py +0 -0
  42. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/pairwise/weights.py +0 -0
  43. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/schema.py +0 -0
  44. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/seqmatch.py +0 -0
  45. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/util/__init__.py +0 -0
  46. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/util/str.py +0 -0
  47. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar/util/var.py +0 -0
  48. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar.egg-info/SOURCES.txt +0 -0
  49. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar.egg-info/dependency_links.txt +0 -0
  50. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar.egg-info/requires.txt +0 -0
  51. {agglovar-0.0.1.dev9 → agglovar-0.0.1.dev10}/src/agglovar.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agglovar
3
- Version: 0.0.1.dev9
3
+ Version: 0.0.1.dev10
4
4
  Summary: Toolkit for fast genomic variant transformations and intersects
5
5
  License-Expression: MIT
6
6
  Requires-Python: >=3.12
@@ -1,6 +1,6 @@
1
1
  """Agglovar: A toolkit for fast genomic variant transformations and intersects."""
2
2
 
3
- __version__ = '0.0.1.dev9'
3
+ __version__ = '0.0.1.dev10'
4
4
 
5
5
  __all__ = [
6
6
  'align',
@@ -86,6 +86,17 @@ def as_proportion(
86
86
  if name is None or not (name := name.strip()):
87
87
  raise ValueError('Name must be a non-empty string')
88
88
 
89
+ if isinstance(df_a, pl.DataFrame):
90
+ df_a = df_a.lazy()
91
+
92
+ if isinstance(df_b, pl.DataFrame):
93
+ df_b = df_b.lazy()
94
+
95
+ col_set_a = set(df_a.collect_schema().names())
96
+
97
+ if '_index' not in col_set_a:
98
+ df_a = df_a.with_row_index('_index')
99
+
89
100
  # Collapse b, index a
90
101
  df_b_nr = (
91
102
  merge_depth(df_b, 0, col_names_b)
@@ -96,8 +107,6 @@ def as_proportion(
96
107
 
97
108
  df_a = (
98
109
  df_a
99
- .drop('_index', strict=False)
100
- .with_row_index('_index')
101
110
  .filter(
102
111
  pl.col(col_names_a.pos).is_not_null(),
103
112
  pl.col(col_names_a.end).is_not_null(),
@@ -128,11 +137,12 @@ def as_proportion(
128
137
  df_a
129
138
  .select(
130
139
  '_index',
140
+ '_index_a_bed_as_prop',
131
141
  (col_expr_a.end - col_expr_a.pos).alias('len')
132
142
  )
133
143
  .join(
134
144
  df_join.lazy(),
135
- on='_index',
145
+ on='_index_a_bed_as_prop',
136
146
  how='left',
137
147
  )
138
148
  .select(
@@ -46,6 +46,15 @@ class _JoinResources:
46
46
  if isinstance(df_b, pl.DataFrame):
47
47
  df_b = df_b.lazy()
48
48
 
49
+ cols_a = set(df_a.collect_schema().keys())
50
+ cols_b = set(df_b.collect_schema().keys())
51
+
52
+ if '_index' not in cols_a:
53
+ df_a = df_a.with_row_index('_index')
54
+
55
+ if '_index' not in cols_b:
56
+ df_b = df_b.with_row_index('_index')
57
+
49
58
  # Set column names
50
59
  ref_cols = get_coord_cols('ref')
51
60
 
@@ -65,16 +74,18 @@ class _JoinResources:
65
74
  # Prepare tables
66
75
  df_a = (
67
76
  df_a
68
- .select(*col_select_a)
69
- .drop('_index_a', strict=False)
70
- .with_row_index('_index_a')
77
+ .select(
78
+ pl.col('_index').alias('_index_a'),
79
+ *col_select_a
80
+ )
71
81
  )
72
82
 
73
83
  df_b = (
74
84
  df_b
75
- .select(*col_select_b)
76
- .drop('_index_b', strict=False)
77
- .with_row_index('_index_b')
85
+ .select(
86
+ pl.col('_index').alias('_index_b'),
87
+ *col_select_b
88
+ )
78
89
  )
79
90
 
80
91
  self.df_a = df_a
@@ -322,13 +333,10 @@ def pairwise_join_tree(
322
333
 
323
334
  for df_batch_b in (
324
335
  df_b
325
- .drop('_index_b', strict=False)
326
- .with_row_index('_index_b')
327
336
  .select(pl.col('_index_b'), *col_b.exprs())
328
337
  .collect_batches(chunk_size=chunk_size)
329
338
  ):
330
339
  for index_b, chrom_b, pos_b, end_b in df_batch_b.iter_rows():
331
- # print(f'Adding: {chrom_b} - {pos_b} - {end_b}')
332
340
  itree[chrom_b].addi(pos_b - distance, end_b + distance, index_b)
333
341
 
334
342
  # Intersect
@@ -336,8 +344,6 @@ def pairwise_join_tree(
336
344
 
337
345
  for df_chunk in (
338
346
  df_a
339
- .drop('_index_a', strict=False)
340
- .with_row_index('_index_a')
341
347
  .select(pl.col('_index_a'), *col_a.exprs())
342
348
  .collect_batches(chunk_size=chunk_size)
343
349
  ):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agglovar
3
- Version: 0.0.1.dev9
3
+ Version: 0.0.1.dev10
4
4
  Summary: Toolkit for fast genomic variant transformations and intersects
5
5
  License-Expression: MIT
6
6
  Requires-Python: >=3.12
File without changes
File without changes
File without changes