tsalign 2.1.2__tar.gz → 3.0.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 (102) hide show
  1. {tsalign-2.1.2 → tsalign-3.0.0}/Cargo.lock +8 -8
  2. {tsalign-2.1.2 → tsalign-3.0.0}/PKG-INFO +3 -3
  3. {tsalign-2.1.2/python_bindings → tsalign-3.0.0}/README.md +2 -2
  4. {tsalign-2.1.2 → tsalign-3.0.0}/generic_a_star/Cargo.toml +1 -1
  5. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/Cargo.toml +3 -3
  6. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/alignment_result/alignment/stream.rs +19 -16
  7. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/alignment_result/alignment/template_switch_specifics.rs +193 -175
  8. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/alignment_type.rs +22 -20
  9. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/context.rs +70 -69
  10. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/display.rs +30 -28
  11. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/identifier.rs +74 -74
  12. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/lower_bounds/template_switch.rs +11 -11
  13. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/lower_bounds/template_switch_alignment.rs +2 -2
  14. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/strategies/descendant.rs +6 -6
  15. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/strategies/template_switch_min_length.rs +71 -75
  16. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance.rs +66 -65
  17. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/config/io.rs +10 -10
  18. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/config.rs +44 -44
  19. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/Cargo.toml +2 -2
  20. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/error.rs +2 -2
  21. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/plain_text/parse_template_switches.rs +23 -25
  22. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/plain_text.rs +26 -23
  23. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/svg.rs +56 -54
  24. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/ts_arrangement/complement.rs +21 -21
  25. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/ts_arrangement/inner.rs +45 -45
  26. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/ts_arrangement/source.rs +96 -90
  27. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/ts_arrangement/template_switch.rs +5 -5
  28. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/ts_arrangement.rs +10 -12
  29. {tsalign-2.1.2 → tsalign-3.0.0}/python/tsalign/_types.py +6 -6
  30. {tsalign-2.1.2 → tsalign-3.0.0}/python_bindings/Cargo.toml +3 -3
  31. {tsalign-2.1.2 → tsalign-3.0.0/python_bindings}/README.md +2 -2
  32. {tsalign-2.1.2 → tsalign-3.0.0}/seed_chain/Cargo.toml +2 -2
  33. tsalign-2.1.2/lib_tsshow/src/plain_text/alignment_stream.rs +0 -229
  34. {tsalign-2.1.2 → tsalign-3.0.0}/Cargo.toml +0 -0
  35. {tsalign-2.1.2 → tsalign-3.0.0}/generic_a_star/clippy.toml +0 -0
  36. {tsalign-2.1.2 → tsalign-3.0.0}/generic_a_star/src/closed_lists.rs +0 -0
  37. {tsalign-2.1.2 → tsalign-3.0.0}/generic_a_star/src/comparator.rs +0 -0
  38. {tsalign-2.1.2 → tsalign-3.0.0}/generic_a_star/src/cost.rs +0 -0
  39. {tsalign-2.1.2 → tsalign-3.0.0}/generic_a_star/src/lib.rs +0 -0
  40. {tsalign-2.1.2 → tsalign-3.0.0}/generic_a_star/src/open_lists/linear_heap.rs +0 -0
  41. {tsalign-2.1.2 → tsalign-3.0.0}/generic_a_star/src/open_lists.rs +0 -0
  42. {tsalign-2.1.2 → tsalign-3.0.0}/generic_a_star/src/reset.rs +0 -0
  43. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/alignment_geometry.rs +0 -0
  44. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/alignment_result/a_star_sequences.rs +0 -0
  45. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/alignment_result/alignment/iter.rs +0 -0
  46. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/alignment_result/alignment.rs +0 -0
  47. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/alignment_result.rs +0 -0
  48. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/configurable_a_star_align.rs +0 -0
  49. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/gap_affine_edit_distance.rs +0 -0
  50. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/alignment_type/equal_cost_range.rs +0 -0
  51. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/lower_bounds.rs +0 -0
  52. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/strategies/chaining.rs +0 -0
  53. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/strategies/node_ord.rs +0 -0
  54. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/strategies/primary_match.rs +0 -0
  55. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/strategies/primary_range.rs +0 -0
  56. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/strategies/secondary_deletion.rs +0 -0
  57. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/strategies/shortcut.rs +0 -0
  58. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/strategies/template_switch_count.rs +0 -0
  59. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/strategies/template_switch_total_length.rs +0 -0
  60. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/template_switch_distance/strategies.rs +0 -0
  61. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner/tests.rs +0 -0
  62. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/a_star_aligner.rs +0 -0
  63. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/alignment_configuration.rs +0 -0
  64. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/alignment_matrix/index/iterators.rs +0 -0
  65. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/alignment_matrix/index.rs +0 -0
  66. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/alignment_matrix.rs +0 -0
  67. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/costs/cost_function/io.rs +0 -0
  68. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/costs/cost_function.rs +0 -0
  69. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/costs/gap_affine/io/tests.rs +0 -0
  70. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/costs/gap_affine/io.rs +0 -0
  71. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/costs/gap_affine.rs +0 -0
  72. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/costs.rs +0 -0
  73. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/error.rs +0 -0
  74. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/io.rs +0 -0
  75. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/lib.rs +0 -0
  76. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsalign/src/tests.rs +0 -0
  77. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/lib.rs +0 -0
  78. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/plain_text/mutlipair_alignment_renderer/tests.rs +0 -0
  79. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/plain_text/mutlipair_alignment_renderer.rs +0 -0
  80. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/svg/arrows.rs +0 -0
  81. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/svg/font/sans_serif_mono.rs +0 -0
  82. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/svg/font/typewriter.rs +0 -0
  83. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/svg/font.rs +0 -0
  84. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/svg/indexed_str.rs +0 -0
  85. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/svg/labelled_sequence.rs +0 -0
  86. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/svg/numbers.rs +0 -0
  87. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/ts_arrangement/character.rs +0 -0
  88. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/ts_arrangement/index_types.rs +0 -0
  89. {tsalign-2.1.2 → tsalign-3.0.0}/lib_tsshow/src/ts_arrangement/row.rs +0 -0
  90. {tsalign-2.1.2 → tsalign-3.0.0}/pyproject.toml +0 -0
  91. {tsalign-2.1.2 → tsalign-3.0.0}/python/tsalign/__init__.py +0 -0
  92. {tsalign-2.1.2 → tsalign-3.0.0}/python/tsalign/py.typed +0 -0
  93. {tsalign-2.1.2 → tsalign-3.0.0}/python_bindings/.gitignore +0 -0
  94. {tsalign-2.1.2 → tsalign-3.0.0}/python_bindings/BUILD.md +0 -0
  95. {tsalign-2.1.2 → tsalign-3.0.0}/python_bindings/src/lib.rs +0 -0
  96. {tsalign-2.1.2 → tsalign-3.0.0}/seed_chain/src/chain/context.rs +0 -0
  97. {tsalign-2.1.2 → tsalign-3.0.0}/seed_chain/src/chain/display.rs +0 -0
  98. {tsalign-2.1.2 → tsalign-3.0.0}/seed_chain/src/chain/node/display.rs +0 -0
  99. {tsalign-2.1.2 → tsalign-3.0.0}/seed_chain/src/chain/node.rs +0 -0
  100. {tsalign-2.1.2 → tsalign-3.0.0}/seed_chain/src/chain.rs +0 -0
  101. {tsalign-2.1.2 → tsalign-3.0.0}/seed_chain/src/lib.rs +0 -0
  102. {tsalign-2.1.2 → tsalign-3.0.0}/seed_chain/src/seed.rs +0 -0
@@ -417,7 +417,7 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
417
417
 
418
418
  [[package]]
419
419
  name = "generic_a_star"
420
- version = "2.1.2"
420
+ version = "3.0.0"
421
421
  dependencies = [
422
422
  "binary-heap-plus",
423
423
  "compare",
@@ -548,7 +548,7 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
548
548
 
549
549
  [[package]]
550
550
  name = "lib_ts_chainalign"
551
- version = "2.1.2"
551
+ version = "3.0.0"
552
552
  dependencies = [
553
553
  "binary-heap-plus",
554
554
  "bincode",
@@ -568,7 +568,7 @@ dependencies = [
568
568
 
569
569
  [[package]]
570
570
  name = "lib_tsalign"
571
- version = "2.1.2"
571
+ version = "3.0.0"
572
572
  dependencies = [
573
573
  "binary-heap-plus",
574
574
  "compact-genome",
@@ -589,7 +589,7 @@ dependencies = [
589
589
 
590
590
  [[package]]
591
591
  name = "lib_tsshow"
592
- version = "2.1.2"
592
+ version = "3.0.0"
593
593
  dependencies = [
594
594
  "ena",
595
595
  "itertools",
@@ -804,7 +804,7 @@ dependencies = [
804
804
 
805
805
  [[package]]
806
806
  name = "py_lib_tsalign"
807
- version = "2.1.2"
807
+ version = "3.0.0"
808
808
  dependencies = [
809
809
  "compact-genome",
810
810
  "lib_tsalign",
@@ -1008,7 +1008,7 @@ dependencies = [
1008
1008
 
1009
1009
  [[package]]
1010
1010
  name = "seed_chain"
1011
- version = "2.1.2"
1011
+ version = "3.0.0"
1012
1012
  dependencies = [
1013
1013
  "compact-genome",
1014
1014
  "generic_a_star",
@@ -1360,7 +1360,7 @@ checksum = "2b939c825d0c4295ac520f7b479927c1e5b458c9107a9d6f5ba65bc867bb93a5"
1360
1360
 
1361
1361
  [[package]]
1362
1362
  name = "tsalign"
1363
- version = "2.1.2"
1363
+ version = "3.0.0"
1364
1364
  dependencies = [
1365
1365
  "anyhow",
1366
1366
  "bincode",
@@ -1381,7 +1381,7 @@ dependencies = [
1381
1381
 
1382
1382
  [[package]]
1383
1383
  name = "tsalign-tests"
1384
- version = "2.1.2"
1384
+ version = "3.0.0"
1385
1385
  dependencies = [
1386
1386
  "anyhow",
1387
1387
  "clap",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tsalign
3
- Version: 2.1.2
3
+ Version: 3.0.0
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -104,9 +104,9 @@ from tsalign import align, TemplateSwitchEntranceOp, TemplateSwitchExitOp
104
104
  result = align(reference, query)
105
105
  for count, op in result.alignments():
106
106
  if isinstance(op, TemplateSwitchEntranceOp):
107
- print(f"Template switch: {op.direction}, primary={op.primary}, offset={op.first_offset}")
107
+ print(f"Template switch: {op.direction}, descendant={op.descendant}, offset={op.first_offset}")
108
108
  elif isinstance(op, TemplateSwitchExitOp):
109
- print(f"Exit, anti-primary gap: {op.anti_primary_gap}")
109
+ print(f"Exit, anti-descendant gap: {op.anti_descendant_gap}")
110
110
  else:
111
111
  # SimpleAlignmentOp — a basic edit in the primary or secondary track
112
112
  print(f"{count}x {op.kind}")
@@ -95,9 +95,9 @@ from tsalign import align, TemplateSwitchEntranceOp, TemplateSwitchExitOp
95
95
  result = align(reference, query)
96
96
  for count, op in result.alignments():
97
97
  if isinstance(op, TemplateSwitchEntranceOp):
98
- print(f"Template switch: {op.direction}, primary={op.primary}, offset={op.first_offset}")
98
+ print(f"Template switch: {op.direction}, descendant={op.descendant}, offset={op.first_offset}")
99
99
  elif isinstance(op, TemplateSwitchExitOp):
100
- print(f"Exit, anti-primary gap: {op.anti_primary_gap}")
100
+ print(f"Exit, anti-descendant gap: {op.anti_descendant_gap}")
101
101
  else:
102
102
  # SimpleAlignmentOp — a basic edit in the primary or secondary track
103
103
  print(f"{count}x {op.kind}")
@@ -1,7 +1,7 @@
1
1
  [package]
2
2
  name = "generic_a_star"
3
3
  description = "A generic implementation of the A* algorithm"
4
- version = "2.1.2"
4
+ version = "3.0.0"
5
5
  edition.workspace = true
6
6
  rust-version.workspace = true
7
7
  license.workspace = true
@@ -2,7 +2,7 @@
2
2
  name = "lib_tsalign"
3
3
  description = "A sequence-to-sequence aligner that accounts for template switches"
4
4
  authors = ["Sebastian Schmidt <sebastian.schmidt@helsinki.fi>"]
5
- version = "2.1.2"
5
+ version = "3.0.0"
6
6
  license.workspace = true
7
7
  edition.workspace = true
8
8
  rust-version.workspace = true
@@ -26,9 +26,9 @@ thiserror = "2.0.3"
26
26
  num-traits.workspace = true
27
27
  serde = { workspace = true, features = ["derive"], optional = true }
28
28
  noisy_float = { version = "0.2.0" }
29
- generic_a_star = { version = "2.1.2", path = "../generic_a_star" }
29
+ generic_a_star = { version = "3.0.0", path = "../generic_a_star" }
30
30
  log.workspace = true
31
31
  rustc-hash = "2.1.1"
32
- seed_chain = { version = "2.1.2", path = "../seed_chain" }
32
+ seed_chain = { version = "3.0.0", path = "../seed_chain" }
33
33
  extend_map = "0.14.3"
34
34
  template-switch-error-free-inners = "0.1.1"
@@ -2,7 +2,7 @@ use std::{collections::VecDeque, iter};
2
2
 
3
3
  use crate::a_star_aligner::{
4
4
  alignment_result::alignment::Alignment,
5
- template_switch_distance::{AlignmentType, TemplateSwitchPrimary},
5
+ template_switch_distance::{AlignmentType, TemplateSwitchDescendant},
6
6
  };
7
7
 
8
8
  #[derive(Debug, Clone)]
@@ -20,7 +20,7 @@ pub struct AlignmentStream {
20
20
  pub struct AlignmentStreamCoordinates {
21
21
  reference: usize,
22
22
  query: usize,
23
- template_switch_primary: Option<TemplateSwitchPrimary>,
23
+ template_switch_descendant: Option<TemplateSwitchDescendant>,
24
24
  }
25
25
 
26
26
  impl AlignmentStream {
@@ -190,7 +190,7 @@ impl AlignmentStreamCoordinates {
190
190
  Self {
191
191
  reference: reference_offset,
192
192
  query: query_offset,
193
- template_switch_primary: None,
193
+ template_switch_descendant: None,
194
194
  }
195
195
  }
196
196
 
@@ -210,34 +210,37 @@ impl AlignmentStreamCoordinates {
210
210
  | AlignmentType::PrimaryMatch
211
211
  | AlignmentType::PrimaryFlankSubstitution
212
212
  | AlignmentType::PrimaryFlankMatch => (1, 1),
213
- AlignmentType::TemplateSwitchEntrance { primary, .. } => {
213
+ AlignmentType::TemplateSwitchEntrance { descendant, .. } => {
214
214
  assert!(
215
- self.template_switch_primary.is_none(),
215
+ self.template_switch_descendant.is_none(),
216
216
  "Encountered template switch entrance within template switch"
217
217
  );
218
- self.template_switch_primary = Some(primary);
218
+ self.template_switch_descendant = Some(descendant);
219
219
  (0, 0)
220
220
  }
221
221
  AlignmentType::SecondaryInsertion
222
222
  | AlignmentType::SecondarySubstitution
223
- | AlignmentType::SecondaryMatch => match self.template_switch_primary.unwrap() {
224
- TemplateSwitchPrimary::Reference => (1, 0),
225
- TemplateSwitchPrimary::Query => (0, 1),
223
+ | AlignmentType::SecondaryMatch => match self.template_switch_descendant.unwrap() {
224
+ TemplateSwitchDescendant::Reference => (1, 0),
225
+ TemplateSwitchDescendant::Query => (0, 1),
226
226
  },
227
- AlignmentType::TemplateSwitchExit { anti_primary_gap } => {
228
- let Some(template_switch_primary) = self.template_switch_primary.take() else {
227
+ AlignmentType::TemplateSwitchExit {
228
+ anti_descendant_gap,
229
+ } => {
230
+ let Some(template_switch_descendant) = self.template_switch_descendant.take()
231
+ else {
229
232
  panic!(
230
233
  "Encountered template switch exit without first encountering a template switch entrance"
231
234
  )
232
235
  };
233
- match template_switch_primary {
234
- TemplateSwitchPrimary::Reference => {
236
+ match template_switch_descendant {
237
+ TemplateSwitchDescendant::Reference => {
235
238
  self.query =
236
- usize::try_from(self.query as isize + anti_primary_gap).unwrap()
239
+ usize::try_from(self.query as isize + anti_descendant_gap).unwrap()
237
240
  }
238
- TemplateSwitchPrimary::Query => {
241
+ TemplateSwitchDescendant::Query => {
239
242
  self.reference =
240
- usize::try_from(self.reference as isize + anti_primary_gap).unwrap()
243
+ usize::try_from(self.reference as isize + anti_descendant_gap).unwrap()
241
244
  }
242
245
  }
243
246
  (0, 0)