seqforge 2026.7.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.
Files changed (124) hide show
  1. seqforge/__init__.py +16 -0
  2. seqforge/cli/__init__.py +38 -0
  3. seqforge/cli/__main__.py +8 -0
  4. seqforge/cli/_common.py +105 -0
  5. seqforge/cli/compose.py +119 -0
  6. seqforge/cli/eval.py +103 -0
  7. seqforge/cli/harvest.py +417 -0
  8. seqforge/cli/hook.py +247 -0
  9. seqforge/cli/io.py +502 -0
  10. seqforge/cli/kb.py +348 -0
  11. seqforge/cli/manifest.py +536 -0
  12. seqforge/cli/probe.py +43 -0
  13. seqforge/cli/processing.py +192 -0
  14. seqforge/cli/project.py +52 -0
  15. seqforge/cli/resolve.py +55 -0
  16. seqforge/cli/root.py +66 -0
  17. seqforge/cli/run.py +463 -0
  18. seqforge/cli/schema.py +41 -0
  19. seqforge/compose/__init__.py +28 -0
  20. seqforge/compose/core.py +515 -0
  21. seqforge/compose/gates.py +113 -0
  22. seqforge/compose/params.py +447 -0
  23. seqforge/e2e.py +1926 -0
  24. seqforge/evals/__init__.py +78 -0
  25. seqforge/evals/case.py +382 -0
  26. seqforge/evals/grade.py +300 -0
  27. seqforge/evals/run.py +420 -0
  28. seqforge/harvest/__init__.py +121 -0
  29. seqforge/harvest/extract.py +319 -0
  30. seqforge/harvest/fields.py +212 -0
  31. seqforge/harvest/normalize.py +537 -0
  32. seqforge/harvest/prep.py +41 -0
  33. seqforge/harvest/providers.py +321 -0
  34. seqforge/harvest/verify.py +251 -0
  35. seqforge/hooks/__init__.py +33 -0
  36. seqforge/hooks/guards.py +214 -0
  37. seqforge/io/__init__.py +61 -0
  38. seqforge/io/archive.py +450 -0
  39. seqforge/io/attributes.py +190 -0
  40. seqforge/io/biosample/attributes.json +6341 -0
  41. seqforge/io/efo/labels.json +55 -0
  42. seqforge/io/efo.py +138 -0
  43. seqforge/io/onlist.py +661 -0
  44. seqforge/io/onlists/3M-february-2018.codes.gz +0 -0
  45. seqforge/io/onlists/737K-arc-v1.codes.gz +0 -0
  46. seqforge/io/onlists/737K-august-2016.codes.gz +0 -0
  47. seqforge/io/onlists/bd-rhapsody-cls1-384.codes.gz +0 -0
  48. seqforge/io/onlists/bd-rhapsody-cls1.codes.gz +0 -0
  49. seqforge/io/onlists/bd-rhapsody-cls2-384.codes.gz +0 -0
  50. seqforge/io/onlists/bd-rhapsody-cls2.codes.gz +0 -0
  51. seqforge/io/onlists/bd-rhapsody-cls3-384.codes.gz +0 -0
  52. seqforge/io/onlists/bd-rhapsody-cls3.codes.gz +0 -0
  53. seqforge/io/onlists/index.json +74 -0
  54. seqforge/io/remote.py +659 -0
  55. seqforge/io/taxonomy.py +194 -0
  56. seqforge/kb/__init__.py +62 -0
  57. seqforge/kb/anchor.py +169 -0
  58. seqforge/kb/generate.py +147 -0
  59. seqforge/kb/loader.py +152 -0
  60. seqforge/kb/roundtrip.py +112 -0
  61. seqforge/kb/schema.py +422 -0
  62. seqforge/kb/specs/10x-3p-gex/spec.yaml +62 -0
  63. seqforge/kb/specs/10x-3p-gex-v2/README.md +41 -0
  64. seqforge/kb/specs/10x-3p-gex-v2/spec.yaml +83 -0
  65. seqforge/kb/specs/10x-3p-gex-v3/README.md +56 -0
  66. seqforge/kb/specs/10x-3p-gex-v3/spec.yaml +118 -0
  67. seqforge/kb/specs/10x-3p-gex-v3.1/README.md +56 -0
  68. seqforge/kb/specs/10x-3p-gex-v3.1/spec.yaml +124 -0
  69. seqforge/kb/specs/bd-rhapsody-wta/README.md +103 -0
  70. seqforge/kb/specs/bd-rhapsody-wta/spec.yaml +130 -0
  71. seqforge/kb/specs/bd-rhapsody-wta-enhanced/spec.yaml +99 -0
  72. seqforge/kb/specs/bd-rhapsody-wta-enhanced-v1/spec.yaml +93 -0
  73. seqforge/kb/specs/bd-rhapsody-wta-enhanced-v2/spec.yaml +81 -0
  74. seqforge/kb/specs/bulk-rnaseq-pe/README.md +35 -0
  75. seqforge/kb/specs/bulk-rnaseq-pe/spec.yaml +97 -0
  76. seqforge/kb/specs/splitseq/README.md +51 -0
  77. seqforge/kb/specs/splitseq/spec.yaml +157 -0
  78. seqforge/manifest/__init__.py +61 -0
  79. seqforge/manifest/fill.py +531 -0
  80. seqforge/manifest/hash.py +77 -0
  81. seqforge/manifest/instruct.py +114 -0
  82. seqforge/manifest/policy.py +409 -0
  83. seqforge/manifest/validate.py +274 -0
  84. seqforge/models/__init__.py +268 -0
  85. seqforge/models/assertion.py +68 -0
  86. seqforge/models/base.py +100 -0
  87. seqforge/models/blocker.py +71 -0
  88. seqforge/models/conflict.py +47 -0
  89. seqforge/models/dataset.py +320 -0
  90. seqforge/models/evidenced.py +54 -0
  91. seqforge/models/observation.py +157 -0
  92. seqforge/models/processing.py +231 -0
  93. seqforge/models/records.py +145 -0
  94. seqforge/models/resolve.py +216 -0
  95. seqforge/probe/__init__.py +46 -0
  96. seqforge/probe/core.py +232 -0
  97. seqforge/probe/signals.py +250 -0
  98. seqforge/probe/streaming.py +118 -0
  99. seqforge/project.py +177 -0
  100. seqforge/py.typed +0 -0
  101. seqforge/resolve/__init__.py +98 -0
  102. seqforge/resolve/assign.py +204 -0
  103. seqforge/resolve/cache.py +119 -0
  104. seqforge/resolve/confuse.py +215 -0
  105. seqforge/resolve/engine.py +646 -0
  106. seqforge/resolve/escalate.py +668 -0
  107. seqforge/resolve/evaluators.py +306 -0
  108. seqforge/resolve/geometry.py +89 -0
  109. seqforge/resolve/group.py +85 -0
  110. seqforge/resolve/records.py +550 -0
  111. seqforge/resolve/scoring.py +373 -0
  112. seqforge/resolve/window.py +206 -0
  113. seqforge/workflows/__init__.py +234 -0
  114. seqforge/workflows/cram.py +117 -0
  115. seqforge/workflows/h5ad.py +368 -0
  116. seqforge/workflows/map/star.smk +101 -0
  117. seqforge/workflows/map/starsolo.smk +360 -0
  118. seqforge/workflows/qc.py +157 -0
  119. seqforge/workspace.py +125 -0
  120. seqforge-2026.7.1.dist-info/METADATA +125 -0
  121. seqforge-2026.7.1.dist-info/RECORD +124 -0
  122. seqforge-2026.7.1.dist-info/WHEEL +4 -0
  123. seqforge-2026.7.1.dist-info/entry_points.txt +2 -0
  124. seqforge-2026.7.1.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,74 @@
1
+ {
2
+ "3M-february-2018": {
3
+ "n_entries": 6794880,
4
+ "orientation": "forward",
5
+ "sha256": "53d8182fd8d4c705ff99b6a583c640e28f58b847ac5bc7b20bb8f4f11ebe50ee",
6
+ "source_sha256": "843a6f7038db8cb3c06f3dc21cc69d04139ffa10689780518d7a9e42dc2e819b",
7
+ "uri": "https://teichlab.github.io/scg_lib_structs/data/10X-Genomics/3M-february-2018.txt.gz",
8
+ "width": 16
9
+ },
10
+ "737K-arc-v1": {
11
+ "n_entries": 736320,
12
+ "orientation": "forward",
13
+ "sha256": "e267adf2a1605adcd40fbb67800d0d19ab8c35170ace26fe1f0d3523766d2234",
14
+ "source_sha256": "fde6ac9705089a87cb078993500af6bcac89176953fac46f2173c6dd1b613108",
15
+ "uri": "",
16
+ "width": 16
17
+ },
18
+ "737K-august-2016": {
19
+ "n_entries": 737280,
20
+ "orientation": "forward",
21
+ "sha256": "199f7ae76cc1341d54c8024fd9a11a256145f64c999d5ce04f144a9acd8e8b5c",
22
+ "source_sha256": "b0dda4b114d8fc7ea8def94fb472e6205c1831a72e3ac245ed13cc332d9f20d1",
23
+ "uri": "https://teichlab.github.io/scg_lib_structs/data/10X-Genomics/737K-august-2016.txt.gz",
24
+ "width": 16
25
+ },
26
+ "bd-rhapsody-cls1": {
27
+ "n_entries": 97,
28
+ "orientation": "forward",
29
+ "sha256": "018f991cf6ed0685ad9274b5ab3aeea645cb0c869962c6405eea6a3f49f1db8f",
30
+ "source_sha256": "c77867fc7a0a4bf2157699713a5927558e979c09af56a8e581cf0de30273f2c1",
31
+ "uri": "https://teichlab.github.io/scg_lib_structs/data/BD/BD_CLS1.txt",
32
+ "width": 9
33
+ },
34
+ "bd-rhapsody-cls1-384": {
35
+ "n_entries": 384,
36
+ "orientation": "forward",
37
+ "sha256": "c0b2867b0f3f85e420e7979a654a127f45b8ebb5ca295fb72730cb7d915d28c8",
38
+ "source_sha256": "466de1e9b22274474f11fe46b77278e058b8a846bf8e824eb713e92edcc6fefd",
39
+ "uri": "https://raw.githubusercontent.com/imallona/rhapsodist/main/workflow/data/whitelist_384x3/BD_CLS1.txt",
40
+ "width": 9
41
+ },
42
+ "bd-rhapsody-cls2": {
43
+ "n_entries": 97,
44
+ "orientation": "forward",
45
+ "sha256": "ecbc8ce2fd4a10a97355661ffa2d12eda5e237fe3e3943980cb2ee0be769b753",
46
+ "source_sha256": "c381b7ae00c41da7c8c60a8aa90be5e914fb823e0babe59afdac0500fd31c5b1",
47
+ "uri": "https://teichlab.github.io/scg_lib_structs/data/BD/BD_CLS2.txt",
48
+ "width": 9
49
+ },
50
+ "bd-rhapsody-cls2-384": {
51
+ "n_entries": 384,
52
+ "orientation": "forward",
53
+ "sha256": "defac4ad6352b83a5e9e55101fbc3fc032e83e9d033ba191cb238aff86def968",
54
+ "source_sha256": "7be8dee2607020a2489c11b3bfeaf5f46cbdb5a80d5b384827da50edefdb6f40",
55
+ "uri": "https://raw.githubusercontent.com/imallona/rhapsodist/main/workflow/data/whitelist_384x3/BD_CLS2.txt",
56
+ "width": 9
57
+ },
58
+ "bd-rhapsody-cls3": {
59
+ "n_entries": 97,
60
+ "orientation": "forward",
61
+ "sha256": "c54e5fdafdda7ad8ce73e08405eea5024c73a37d4283e4d67dc5dc7bd6281fa4",
62
+ "source_sha256": "a117052f7c704657915a3b32fd93cc6e9c47842c45018837bbec874ff0126c1d",
63
+ "uri": "https://teichlab.github.io/scg_lib_structs/data/BD/BD_CLS3.txt",
64
+ "width": 9
65
+ },
66
+ "bd-rhapsody-cls3-384": {
67
+ "n_entries": 384,
68
+ "orientation": "forward",
69
+ "sha256": "b380ec4f9b71bc0f256a4dbd7d7acdddae967c006750cd8cbd2b6a44e835bdde",
70
+ "source_sha256": "7effc6c4ddfe9ca255d74fec2f5a8b6a98e853e2b20038978f0887c86d40b722",
71
+ "uri": "https://raw.githubusercontent.com/imallona/rhapsodist/main/workflow/data/whitelist_384x3/BD_CLS3.txt",
72
+ "width": 9
73
+ }
74
+ }