gin-multiomics 0.2.0__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 (97) hide show
  1. gin_multiomics-0.2.0.dist-info/METADATA +261 -0
  2. gin_multiomics-0.2.0.dist-info/RECORD +97 -0
  3. gin_multiomics-0.2.0.dist-info/WHEEL +5 -0
  4. gin_multiomics-0.2.0.dist-info/entry_points.txt +2 -0
  5. gin_multiomics-0.2.0.dist-info/licenses/LICENSE +21 -0
  6. gin_multiomics-0.2.0.dist-info/licenses/NOTICE.md +18 -0
  7. gin_multiomics-0.2.0.dist-info/top_level.txt +2 -0
  8. gin_tool/__init__.py +33 -0
  9. gin_tool/__main__.py +4 -0
  10. gin_tool/active_tf.py +563 -0
  11. gin_tool/active_tf_promoter_qc.py +283 -0
  12. gin_tool/active_tf_rwr.py +119 -0
  13. gin_tool/analyze.py +166 -0
  14. gin_tool/benchmark.py +114 -0
  15. gin_tool/cli.py +1067 -0
  16. gin_tool/context_subgraph.py +472 -0
  17. gin_tool/debias.py +672 -0
  18. gin_tool/dogma_chain_repair.py +520 -0
  19. gin_tool/enrichment.py +88 -0
  20. gin_tool/flows.py +173 -0
  21. gin_tool/gin_defaults.py +34 -0
  22. gin_tool/histone_promoter_sign_qc.py +124 -0
  23. gin_tool/hme_chain_repair.py +1463 -0
  24. gin_tool/io.py +257 -0
  25. gin_tool/mapping.py +367 -0
  26. gin_tool/module_flow.py +99 -0
  27. gin_tool/modules.py +92 -0
  28. gin_tool/negative_ppi_feedback.py +194 -0
  29. gin_tool/node_lists.py +458 -0
  30. gin_tool/null_context.py +336 -0
  31. gin_tool/null_rwr.py +91 -0
  32. gin_tool/pipeline_version.py +42 -0
  33. gin_tool/propagate.py +67 -0
  34. gin_tool/regulatory_filter.py +176 -0
  35. gin_tool/runtime_limits.py +175 -0
  36. gin_tool/runtime_null.py +188 -0
  37. gin_tool/schematic.py +113 -0
  38. gin_tool/signaling_subgraph.py +373 -0
  39. gin_tool/signed_edge_spn_qc.py +134 -0
  40. gin_tool/spn_export.py +509 -0
  41. gin_tool/spn_rehydrate.py +177 -0
  42. gin_tool/subgraph.py +177 -0
  43. gin_tool/subgraph_pipeline/__init__.py +32 -0
  44. gin_tool/subgraph_pipeline/budget.py +32 -0
  45. gin_tool/subgraph_pipeline/chromhmm_emission_weights.py +383 -0
  46. gin_tool/subgraph_pipeline/chromhmm_panel_assemble.py +397 -0
  47. gin_tool/subgraph_pipeline/connectivity.py +187 -0
  48. gin_tool/subgraph_pipeline/data/ginv2_table1_uc_aliases.json +73 -0
  49. gin_tool/subgraph_pipeline/edge_topology.py +331 -0
  50. gin_tool/subgraph_pipeline/edge_weight_balance.py +250 -0
  51. gin_tool/subgraph_pipeline/extract.py +332 -0
  52. gin_tool/subgraph_pipeline/gin_self_loop.py +217 -0
  53. gin_tool/subgraph_pipeline/grn_allowlist_prune.py +299 -0
  54. gin_tool/subgraph_pipeline/interaction_weight_schedule.py +106 -0
  55. gin_tool/subgraph_pipeline/lcc_multisource_bridge.py +220 -0
  56. gin_tool/subgraph_pipeline/manifest.py +154 -0
  57. gin_tool/subgraph_pipeline/met_enzyme_recovery.py +123 -0
  58. gin_tool/subgraph_pipeline/met_source_seed.py +139 -0
  59. gin_tool/subgraph_pipeline/metabolite_id_resolve.py +533 -0
  60. gin_tool/subgraph_pipeline/parallel_util.py +91 -0
  61. gin_tool/subgraph_pipeline/promoter_edge_policy.py +189 -0
  62. gin_tool/subgraph_pipeline/protein_self_loop_prune.py +57 -0
  63. gin_tool/subgraph_pipeline/regulatory_train.py +90 -0
  64. gin_tool/subgraph_pipeline/role_seed_enrichment.py +208 -0
  65. gin_tool/subgraph_pipeline/seed_gin_mapping.py +268 -0
  66. gin_tool/subgraph_pipeline/seeds.py +170 -0
  67. gin_tool/subgraph_pipeline/signaling_bipartite.py +264 -0
  68. gin_tool/subgraph_pipeline/spn_degradation.py +220 -0
  69. gin_tool/subgraph_pipeline/spn_layer_rules.py +481 -0
  70. gin_tool/subgraph_pipeline/spn_nf_phase.py +141 -0
  71. gin_tool/subgraph_pipeline/spn_obsidian_export.py +327 -0
  72. gin_tool/subgraph_pipeline/spn_policy.py +301 -0
  73. gin_tool/subgraph_pipeline/spn_reasonableness_qc.py +456 -0
  74. gin_tool/subgraph_pipeline/spn_simulate.py +1365 -0
  75. gin_tool/subgraph_pipeline/spn_simulator_gin.py +1688 -0
  76. gin_tool/subgraph_pipeline/spn_standard_policy.py +207 -0
  77. gin_tool/subgraph_pipeline/stats.py +17 -0
  78. gin_tool/subgraph_pipeline/stoichiometry_resolve.py +98 -0
  79. gin_tool/subgraph_pipeline/ups_degradation_policy.py +594 -0
  80. gin_tool/user_stories.py +71 -0
  81. gin_tool/viz/__init__.py +118 -0
  82. gin_tool/viz/_select.py +48 -0
  83. gin_tool/viz/_style.py +29 -0
  84. gin_tool/viz/corr_clustermap.py +203 -0
  85. gin_tool/viz/export.py +78 -0
  86. gin_tool/viz/flows.py +94 -0
  87. gin_tool/viz/modules.py +108 -0
  88. gin_tool/viz/network.py +162 -0
  89. gin_tool/viz/null_charts.py +43 -0
  90. gin_tool/viz/qc.py +57 -0
  91. gin_tool/viz/scores.py +139 -0
  92. scbionet/__init__.py +2 -0
  93. scbionet/spn/__init__.py +14 -0
  94. scbionet/spn/graphml_io.py +187 -0
  95. scbionet/spn/model.py +76 -0
  96. scbionet/spn/simulator.py +219 -0
  97. scbionet/spn/version.py +3 -0
@@ -0,0 +1,261 @@
1
+ Metadata-Version: 2.4
2
+ Name: gin-multiomics
3
+ Version: 0.2.0
4
+ Summary: Global Integrative Network (GIN) multi-omics toolkit: context extraction and SigPN (signaling Petri net; not stochastic PN), with GINv3.11a p53 recipes
5
+ Author-email: Chi Xu <chix@big.ac.cn>
6
+ Maintainer-email: Chi Xu <chix@big.ac.cn>
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/BIGchix/GINv3-publication
9
+ Project-URL: Repository, https://github.com/BIGchix/GINv3-publication
10
+ Project-URL: Issues, https://github.com/BIGchix/GINv3-publication/issues
11
+ Project-URL: Changelog, https://github.com/BIGchix/GINv3-publication/blob/main/CHANGELOG.md
12
+ Project-URL: Documentation, https://github.com/BIGchix/GINv3-publication/blob/main/docs/USER_GUIDE.md
13
+ Keywords: GIN,Global Integrative Network,multi-omics,systems biology,signaling,Petri net,SigPN,p53,context subgraph
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Intended Audience :: Science/Research
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3 :: Only
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
25
+ Requires-Python: >=3.9
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ License-File: NOTICE.md
29
+ Requires-Dist: numpy>=1.24
30
+ Requires-Dist: scipy>=1.11
31
+ Requires-Dist: networkx>=3.2
32
+ Provides-Extra: sim
33
+ Requires-Dist: pandas>=2.0; extra == "sim"
34
+ Requires-Dist: matplotlib>=3.8; extra == "sim"
35
+ Requires-Dist: seaborn>=0.13; extra == "sim"
36
+ Requires-Dist: scikit-learn>=1.3; extra == "sim"
37
+ Provides-Extra: dev
38
+ Requires-Dist: pytest>=7.0; extra == "dev"
39
+ Requires-Dist: build>=1.0; extra == "dev"
40
+ Requires-Dist: pandas>=2.0; extra == "dev"
41
+ Requires-Dist: matplotlib>=3.8; extra == "dev"
42
+ Requires-Dist: seaborn>=0.13; extra == "dev"
43
+ Requires-Dist: scikit-learn>=1.3; extra == "dev"
44
+ Dynamic: license-file
45
+
46
+ # GINv3-publication
47
+
48
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
49
+ [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
50
+
51
+ Multi-omics **Global Integrative Network (GIN)** context extraction and **SigPN**
52
+ (**signaling** Petri net — not stochastic PN) simulation for mechanism-oriented
53
+ analyses. This repository is the manuscript **Code Availability** package:
54
+ an installable toolkit (`gin-multiomics`) plus a recipe that **recomputes** the
55
+ p53 / GINv3.11a publication numbers.
56
+
57
+ The GIN prior ships as **`data/GINv3.11a.sifi.gz`** (~75 MB). The toolkit and
58
+ publication recipe read it **directly** — no unpack step is required.
59
+
60
+ ---
61
+
62
+ ## Citation
63
+
64
+ Upon publication, please cite the accompanying paper (title / journal / DOI to
65
+ be updated here). Until then, cite this repository and the manuscript that
66
+ points to it under Code Availability.
67
+
68
+ ---
69
+
70
+ ## Overview
71
+
72
+ - Extract a **mechanistic context** subgraph from the GINv3 prior given gene
73
+ (or GIN node) seeds.
74
+ - Optionally prune TF→promoter edges with a **cell-specific ChIP allowlist**
75
+ to obtain a cell-line network.
76
+ - Run **SigPN** Monte-Carlo simulations for signaling interventions.
77
+ - **Recompute** the manuscript Stage A / prune / Pulse pipeline and assert
78
+ against published fingerprints (locks under `docs/locks/`).
79
+
80
+ ---
81
+
82
+ ## Requirements
83
+
84
+ | Item | Notes |
85
+ |------|--------|
86
+ | OS | Linux recommended for bit-identical Stage A; macOS works for toolkit use |
87
+ | Python | ≥ 3.9 |
88
+ | Disk | Bundled `data/GINv3.11a.sifi.gz` (~75 MB) |
89
+ | RAM / CPU | Context with `--context-n-jobs 20` is cluster-scale; small demos run on a laptop |
90
+
91
+ ---
92
+
93
+ ## Installation
94
+
95
+ ```bash
96
+ git clone https://github.com/BIGchix/GINv3-publication.git
97
+ cd GINv3-publication
98
+ python3 -m venv .venv && source .venv/bin/activate
99
+ pip install -U pip && pip install -e ".[sim]"
100
+ export PYTHONHASHSEED=0
101
+ python scripts/reproduce_publication.py --steps prepare
102
+ # → verifies data/GINv3.11a.sifi.gz (sha256 f9bb23c4…)
103
+ ```
104
+
105
+ After install, the CLI is available as:
106
+
107
+ ```bash
108
+ python -m gin_tool.cli -h
109
+ # or: gin-multiomics -h
110
+ ```
111
+
112
+ Default `--sifi` is `data/GINv3.11a.sifi.gz` (included in the clone).
113
+ Standalone download (Release does not attach the ~75 MB asset):
114
+ [raw v0.2.0](https://github.com/BIGchix/GINv3-publication/raw/v0.2.0/data/GINv3.11a.sifi.gz)
115
+ · [data/README.md](data/README.md). More detail:
116
+ [docs/USER_GUIDE.md](docs/USER_GUIDE.md).
117
+
118
+ ---
119
+
120
+ ## Quick start
121
+
122
+ **1. Context subgraph** (default prior = compressed GIN):
123
+
124
+ ```bash
125
+ python -m gin_tool.cli \
126
+ --seeds "TP53,MDM2,CDKN1A" \
127
+ --out-dir gin_out/my_context \
128
+ --context-mech-depth 2 \
129
+ --context-n-jobs 8 \
130
+ --node-list-dir ./nodeList \
131
+ --no-debias
132
+ # → gin_out/my_context/subgraph_edges.tsv
133
+ ```
134
+
135
+ ```bash
136
+ bash examples/01_custom_context.sh
137
+ ```
138
+
139
+ **2. SigPN demo** (bundled toy network; **no** GIN prior required):
140
+
141
+ ```bash
142
+ bash examples/03_sigpn_demo.sh
143
+ # → gin_out/example_sigpn_demo/spn.graphml
144
+ # → gin_out/example_sigpn_demo/spn_sim_demo/…
145
+ ```
146
+
147
+ See [examples/](examples/) for more scripts.
148
+
149
+ ---
150
+
151
+ ## Workflow
152
+
153
+ ```text
154
+ seeds + data/GINv3.11a.sifi.gz
155
+ │
156
+ ▼
157
+ context subgraph ──► (optional) ChIP prune ──► SigPN simulation
158
+ ```
159
+
160
+ 1. **Context** — seeds + GIN prior → mechanistic neighborhood (`python -m gin_tool.cli`).
161
+ 2. **Cell prune** (optional) — ChIP allowlist → cell-specific edges
162
+ ([docs/CHIP_ALLOWLIST.md](docs/CHIP_ALLOWLIST.md)).
163
+ 3. **SigPN** — export the Petri net and run Monte-Carlo (demo below). The
164
+ manuscript H1 B0 Pulse is a special-case intervention script; for other
165
+ designs reuse the same engine
166
+ ([docs/SIGPN_CUSTOM_SIMULATIONS.md](docs/SIGPN_CUSTOM_SIMULATIONS.md)).
167
+
168
+ ### From subgraph to SigPN (executable demo)
169
+
170
+ Bundled toy data under `examples/demo_sigpn/` (TP53 / MDM2 / CDKN1A edges
171
+ excerpted from the publication H1-pruned network). Laptop-scale defaults:
172
+ `runs=2`, `blocks=10`.
173
+
174
+ ```bash
175
+ # One-liner
176
+ bash examples/03_sigpn_demo.sh
177
+
178
+ # Equivalent explicit steps
179
+ mkdir -p gin_out/example_sigpn_demo
180
+ cp examples/demo_sigpn/subgraph_edges.tsv gin_out/example_sigpn_demo/
181
+ cp examples/demo_sigpn/place_levels.tsv gin_out/example_sigpn_demo/
182
+
183
+ python examples/run_sigpn_demo.py \
184
+ --subgraph-dir gin_out/example_sigpn_demo \
185
+ --place-levels gin_out/example_sigpn_demo/place_levels.tsv \
186
+ --chromhmm-emission-tsv runtime/chromhmm/panel_emissions/h1_wa01_E003_promoter_emission.tsv \
187
+ --runs 2 \
188
+ --blocks 10 \
189
+ --seed 0
190
+ ```
191
+
192
+ On your own context (after CLI or prune), point `--subgraph-dir` at a folder
193
+ that contains `subgraph_edges.tsv` (and optionally `place_levels.tsv`).
194
+
195
+ ---
196
+
197
+ ## Reproduce manuscript results
198
+
199
+ Recompute the publication pipeline (prior stays compressed throughout):
200
+
201
+ ```bash
202
+ export PYTHONHASHSEED=0
203
+ python scripts/reproduce_publication.py --steps prepare
204
+ python scripts/reproduce_publication.py --steps stage_a --n-jobs 20
205
+ python scripts/assert_p53_pub_gin11a_lock.py
206
+
207
+ # Full pipeline (cluster-scale: prune + Pulse, etc.)
208
+ python scripts/reproduce_publication.py --steps all --n-jobs 20
209
+ ```
210
+
211
+ Stage A lock target: **11,368** edges (details in `docs/locks/`).
212
+ `expected/` is for **assert / CI**, not the primary reproduction path.
213
+ Platform notes (e.g. Linux freeze host vs macOS): see
214
+ [docs/experiments/p53_stageA_server_vs_mac_repro_20261014.md](docs/experiments/p53_stageA_server_vs_mac_repro_20261014.md)
215
+ and the step-by-step guide [REPRODUCE.md](REPRODUCE.md).
216
+
217
+ ---
218
+
219
+ ## Documentation
220
+
221
+ | Document | Contents |
222
+ |----------|----------|
223
+ | [docs/USER_GUIDE.md](docs/USER_GUIDE.md) | Getting started for custom analyses |
224
+ | [docs/CLI_REFERENCE.md](docs/CLI_REFERENCE.md) | Recommended CLI options |
225
+ | [docs/CHIP_ALLOWLIST.md](docs/CHIP_ALLOWLIST.md) | Cell ChIP allowlist format and use |
226
+ | [docs/SIGPN_CUSTOM_SIMULATIONS.md](docs/SIGPN_CUSTOM_SIMULATIONS.md) | SigPN reuse; Pulse as a special case |
227
+ | [REPRODUCE.md](REPRODUCE.md) | Full manuscript recompute recipe |
228
+ | [MANIFEST.md](MANIFEST.md) | Package contents checklist |
229
+
230
+ ---
231
+
232
+ ## Repository layout
233
+
234
+ | Path | Role |
235
+ |------|------|
236
+ | `gin_tool/` | Context / HME / dogma / SigPN CLI |
237
+ | `scbionet/spn/` | Vendored SigPN engine |
238
+ | `data/GINv3.11a.sifi.gz` | Frozen GIN prior (default `--sifi`) |
239
+ | `nodeList/` · `seedLists/` | Layer lists and seeds |
240
+ | `runtime/chip_gin_align/` | Example H1 allowlist |
241
+ | `runtime/omics_seed/` · `runtime/chromhmm/` | Example place levels / emissions |
242
+ | `examples/` | Context / Stage A / SigPN demos (`demo_sigpn/` toy data) |
243
+ | `scripts/reproduce_publication.py` | Manuscript driver (recomputes) |
244
+ | `expected/` | Gold fingerprints for assert |
245
+ | `docs/` | Guides, locks, experiment notes |
246
+
247
+ Historical path prefixes such as `runtime/spn_phys5/` still mean **SigPN**.
248
+
249
+ ---
250
+
251
+ ## License
252
+
253
+ MIT for code (see [LICENSE](LICENSE)). Network and omics artifacts: see
254
+ [NOTICE.md](NOTICE.md).
255
+
256
+ ---
257
+
258
+ ## Contact
259
+
260
+ - Email: [chix@big.ac.cn](mailto:chix@big.ac.cn)
261
+ - GitHub Issues on this repository (once published under Code Availability)
@@ -0,0 +1,97 @@
1
+ gin_multiomics-0.2.0.dist-info/licenses/LICENSE,sha256=7qoxQ_fstryJc6PsVmAgwLJtvRLp4rks_2GPwYY_Exs,1070
2
+ gin_multiomics-0.2.0.dist-info/licenses/NOTICE.md,sha256=QVXdwu5rpj5NXYy-feFCiZFqruguyB1mrtau5gwom1U,910
3
+ gin_tool/__init__.py,sha256=E2tOWnBKb7axfF1hmdm3EiGqtbwbT0-AZwRAvRYhu-E,729
4
+ gin_tool/__main__.py,sha256=HmK_C-6-67mh94PULel-lWHAKNYIkphrbV6lzcsYsew,87
5
+ gin_tool/active_tf.py,sha256=UxBXmXgI_DRmPaE7OgLmlnk9mnBZmrBbKItWYXE1bN8,17946
6
+ gin_tool/active_tf_promoter_qc.py,sha256=NNo6bm2arkwnd3_hDeMBXh6u-hWdDD8dccsXEgcjz64,9917
7
+ gin_tool/active_tf_rwr.py,sha256=IkaDhmaIRUmhZ3D8nfH4Fiv4cFSbBZ-Js848W_CkkT4,3673
8
+ gin_tool/analyze.py,sha256=PJZD5m4hhgMQzTeeDQjJn-wA1IT6JBfqWcCoHWvKMgA,5658
9
+ gin_tool/benchmark.py,sha256=rAhvhcjj-0a9uRuHpFxBUjUb-Dqhs7inAVhF-PckM0E,3650
10
+ gin_tool/cli.py,sha256=CTWzsX-QllRP_ymTh-t8EVPAtlOlPwp1MGMARJ-NDcA,40496
11
+ gin_tool/context_subgraph.py,sha256=HZOCNvgzjFNEyHCg2IqgmjohVKEm4piv4zCIP0HElDc,15233
12
+ gin_tool/debias.py,sha256=R9K7h4J0gDuPSXXi56EauVzu7e_imx8sOZcja6NxOIU,21813
13
+ gin_tool/dogma_chain_repair.py,sha256=XnzflNbx1JbNEsX6vOczQY7Huluz24Q0WQkXngIP3-A,17174
14
+ gin_tool/enrichment.py,sha256=Ygr8Ruz709nQoJdUML1kuIVliLcAEmW6FN49Vv1DRuI,2214
15
+ gin_tool/flows.py,sha256=SPu5qYaEkgDvbEe-AhKBsnVPHdx6yzJda56CKHLVBnc,5228
16
+ gin_tool/gin_defaults.py,sha256=eOpJghFyJSaTaDvLZS_DQPpjHxuXDVOoGCaF1569-jE,1016
17
+ gin_tool/histone_promoter_sign_qc.py,sha256=kMu-8qxzlHzJUI3DyeKhyGrxYBFvtD2y9tm7JFMEfeE,4239
18
+ gin_tool/hme_chain_repair.py,sha256=BL7hjvGbQsXmIYifVYHZFT8hGReLTZdLcHaQUWOto58,53670
19
+ gin_tool/io.py,sha256=cLVbzMGqPmrLZIpskh37lDU1DLl8UZJw5ypo_Lu1TMI,7872
20
+ gin_tool/mapping.py,sha256=tMvVI6KyerY452miEQqEN_H4u5CXEn24JHC-rl0gEOA,12246
21
+ gin_tool/module_flow.py,sha256=5lj1FbOJkY_ywrpwOHPVsID9ntpZjpxGisAcz9D96XQ,2919
22
+ gin_tool/modules.py,sha256=auW01dBFBpPg7yBX1Cpm3GtdM673T7scJacHsJ62xuA,3139
23
+ gin_tool/negative_ppi_feedback.py,sha256=sJ8jkQCvBFjB5cgyNQw3pZs1z-Ne9EDPtvEkMskFELk,6610
24
+ gin_tool/node_lists.py,sha256=olIk-d60uf5k8iaoDu-A8cGuMaCcRAzQnzD2EknR-38,14582
25
+ gin_tool/null_context.py,sha256=efQIgZjc8J1x1pnqTD-WA63y5Ff4QsPng4F5EOVRZuk,13332
26
+ gin_tool/null_rwr.py,sha256=PdrfXd2T2KWtS1383LEg3996ovU3h_wAo7A7yu8o-go,2879
27
+ gin_tool/pipeline_version.py,sha256=FBn8WIZTKkEs--n2Re3pmbfIPDPH8jypAqyAswX2DfM,1555
28
+ gin_tool/propagate.py,sha256=6yNHOkpFkaaa-Z6HG8z9tnrI7po7J5Cv8xxW63_-alQ,1966
29
+ gin_tool/regulatory_filter.py,sha256=GYfXrVT3Kh2Jz5P5qbxrPC7aWXWShR0YBFM8Y639TYM,5282
30
+ gin_tool/runtime_limits.py,sha256=B80T_lD08b1ZIgPnqCPeiv169VlKlQaFUR3gjUAxx_Y,5436
31
+ gin_tool/runtime_null.py,sha256=BFlSVhoJPTpAEgiiArqPlYa_dTB9Tza_CRSDrneWlvg,6005
32
+ gin_tool/schematic.py,sha256=BJWl-lYQ9w5B0WZvS0nHa-sTjuZYEgi9e9jNWMZJ_zI,4190
33
+ gin_tool/signaling_subgraph.py,sha256=Q_dd7aRsMmXsIU_Lh4lfEZS2f6ALZV7ixin_z8-6rKM,12120
34
+ gin_tool/signed_edge_spn_qc.py,sha256=UBpToPnHGBr20DlZBtaAUs4okk_ZM4PRRSCE3za__y0,4718
35
+ gin_tool/spn_export.py,sha256=viNqW4hgwqeB9OiqFftIpjJbuv3-BDDOZRhBoRTrdK8,18840
36
+ gin_tool/spn_rehydrate.py,sha256=Fr58oQI7cHXOKoAEQ0lxayI5Oi9i62wQuber4o08P84,5730
37
+ gin_tool/subgraph.py,sha256=5yLW19pGibD-SjGcCvS4-QORty1jio6WQ5qhjvvydt8,6134
38
+ gin_tool/user_stories.py,sha256=nMN4lUeepX1-xpD34Va_y3nJkkxyErdsfF7_Yy_z2Ls,2207
39
+ gin_tool/subgraph_pipeline/__init__.py,sha256=1fNAzwy5dZ9G778rfXGrNXTkJkuVH66FDuX4ZKpkVEQ,1326
40
+ gin_tool/subgraph_pipeline/budget.py,sha256=Ij_OyomYYgM8dnF4uTwV7n2fZbgLVDMKKiBg14v_f3I,1063
41
+ gin_tool/subgraph_pipeline/chromhmm_emission_weights.py,sha256=1TWjTccpMiiaYQQluDr1W18X8CpjOy4LUNPtwPk5nyc,12958
42
+ gin_tool/subgraph_pipeline/chromhmm_panel_assemble.py,sha256=nWTfjCJ1bJ4Qj-lp3ps_skMVUS6EG7p_bau3CeiNEck,14027
43
+ gin_tool/subgraph_pipeline/connectivity.py,sha256=hW2yG6Vc4bOdG8znzSGk13e8PRIY_NLsgKf45apq8a4,6335
44
+ gin_tool/subgraph_pipeline/edge_topology.py,sha256=zi2YL58URzN76EzKuaW47BFgOMn55CyWHuDcv_M7gNs,11271
45
+ gin_tool/subgraph_pipeline/edge_weight_balance.py,sha256=z9IdmxuInOHUQmk-T_GSosnGhcaqwn92CSq38lq0CWs,8439
46
+ gin_tool/subgraph_pipeline/extract.py,sha256=k_HxzxanLE0HmiQpPYJJq4gtdqKzWc3vzbCBisCZ5xA,12216
47
+ gin_tool/subgraph_pipeline/gin_self_loop.py,sha256=TV4Yn11BYtxFbOBxWmg4czK0r6_vyegRlMW8euWNr94,7449
48
+ gin_tool/subgraph_pipeline/grn_allowlist_prune.py,sha256=xCCaF29IbdTC4tsie-g_v3d9TJ2ZYIscfI5oZYnRQ2s,10662
49
+ gin_tool/subgraph_pipeline/interaction_weight_schedule.py,sha256=Ee_GxSQMVmQ66umQwpXTN81v0_TDjxlr6KZgdCA12yk,3596
50
+ gin_tool/subgraph_pipeline/lcc_multisource_bridge.py,sha256=EFoGHyqow2ezxGO-MoAq-9q4v3w6IO_OqqJmHSY0pqk,6837
51
+ gin_tool/subgraph_pipeline/manifest.py,sha256=UQnwx2FYJCL_kB3rRKvZXZUvrBwqjmDKgJA6oGxAVx4,4602
52
+ gin_tool/subgraph_pipeline/met_enzyme_recovery.py,sha256=Sv1OYyvtHQSv73EyXZZ1921yJVHyNpkbj-b8vJ89UZA,4122
53
+ gin_tool/subgraph_pipeline/met_source_seed.py,sha256=OM5t0Io0CLR2RgvrSELrFsRCGUWXWdLUCPCKJjnoO1U,4479
54
+ gin_tool/subgraph_pipeline/metabolite_id_resolve.py,sha256=HvDFJxCa0R0GlhKzWFGqLtAygBuTAfNgjzZtAESdNvo,19048
55
+ gin_tool/subgraph_pipeline/parallel_util.py,sha256=j8YoA2igvF6Vsah3H3jAYLIAh4J2liCfQk0Eg2ffS54,2826
56
+ gin_tool/subgraph_pipeline/promoter_edge_policy.py,sha256=WfMMXeBFguyaF8d5I3slgTIeQoQCNcXLOr7mN5eEcJc,6705
57
+ gin_tool/subgraph_pipeline/protein_self_loop_prune.py,sha256=4P1SzjHEdCzP2BmfLvicX_CMiJ-7tGStB9w2WM8rk9k,1781
58
+ gin_tool/subgraph_pipeline/regulatory_train.py,sha256=qbKSKjtu8mCT0GwHwbyVYDUkCM6KaTmXmxw4lpOiebA,2489
59
+ gin_tool/subgraph_pipeline/role_seed_enrichment.py,sha256=exF_ZPxUsSNkFUqwMFJWW7M5C7KUhBoxLHz6y-DuwTU,6775
60
+ gin_tool/subgraph_pipeline/seed_gin_mapping.py,sha256=OEfuISC42IXq7lxlUgEFYnHMBE6rX6mVlHAEzma076w,8770
61
+ gin_tool/subgraph_pipeline/seeds.py,sha256=UAh2MlhvZVt7Nf8MY_iSs3Y2es-IQQxPEkEPTOcezzE,5486
62
+ gin_tool/subgraph_pipeline/signaling_bipartite.py,sha256=05C6BMU7djxtOwjkx0bar6wXf6mo-9n0tHxL3G4dzwM,8662
63
+ gin_tool/subgraph_pipeline/spn_degradation.py,sha256=yMBsQjJelX2bIvmI7MdPP7S7mBy9MtXKYids_Ubde1I,8191
64
+ gin_tool/subgraph_pipeline/spn_layer_rules.py,sha256=DqrWNM40RR2bM40xmORh3hoiR0-OrOc08uPrEWTe-Ug,15677
65
+ gin_tool/subgraph_pipeline/spn_nf_phase.py,sha256=usSUbDXKcQP8PTUrfzSq1oQ8HaQkN5_ysxbu4tC6uvo,4656
66
+ gin_tool/subgraph_pipeline/spn_obsidian_export.py,sha256=1UVGpiO_jJ11l5O32p09q1w8L-WP74iDNG3zfOgk02s,11994
67
+ gin_tool/subgraph_pipeline/spn_policy.py,sha256=-7PnZH2zpGgaB08n0UbfrgL95WlexFLBo2VAFLopqvI,15090
68
+ gin_tool/subgraph_pipeline/spn_reasonableness_qc.py,sha256=_TxpsXAdn44fALGn5KEELcLf0oZ2IEEJB2kei7mawgQ,16970
69
+ gin_tool/subgraph_pipeline/spn_simulate.py,sha256=4T4eITGfoqN02qqKdL84-2UwW_T-Lt877o-l5xx8rsc,56907
70
+ gin_tool/subgraph_pipeline/spn_simulator_gin.py,sha256=ppR-B-Tkizp5wnaTg1Womoh5gtFE0tfu-icLIc6f_9I,65916
71
+ gin_tool/subgraph_pipeline/spn_standard_policy.py,sha256=c84_gvhpx2A_UPcN6CI-_pm_XF2U2vENPjHO7X4K_pY,7441
72
+ gin_tool/subgraph_pipeline/stats.py,sha256=Jht2893INdxjMG0LU_bLUYp-6ivfU5TfF9kdXJVfvKU,638
73
+ gin_tool/subgraph_pipeline/stoichiometry_resolve.py,sha256=RALfnU98iE8iy8pn9qsvLyp_OfxrxHh9N3I-DgLZdpQ,3256
74
+ gin_tool/subgraph_pipeline/ups_degradation_policy.py,sha256=hD2zuS-VyZ4HS_RM3rqXfLRhbMFM8sHCnvPIMLZZVPw,21678
75
+ gin_tool/subgraph_pipeline/data/ginv2_table1_uc_aliases.json,sha256=S4Asj5QBAkTYlTSGm885zbI42ibC9d1gzTvJJ2v5Zrw,1877
76
+ gin_tool/viz/__init__.py,sha256=CFoXZMCFdolFmOA3ulAGXGQaAqnTfWP3G_Q4JA1d0Mc,3571
77
+ gin_tool/viz/_select.py,sha256=Rsd_shPKOW00htCdTG2I-llZ4pUeVoPaP6YMa58dVy4,1243
78
+ gin_tool/viz/_style.py,sha256=Ep9Lz9aD8bttxF8CwyVZOo9LRRZY5sCsQZBT5ijJJr0,550
79
+ gin_tool/viz/corr_clustermap.py,sha256=tgAqMjsVv2FEMSIoUsxXWOL7roIgF0DHyvUZsurxVqo,6418
80
+ gin_tool/viz/export.py,sha256=oumCwi2gz50cgtrAohjvs9hWyLoyJWuRIE4XylsXQBw,2206
81
+ gin_tool/viz/flows.py,sha256=5yeIN0c4CvJn7fOgcURffQ8zVgSVuPq7DE6sbAO8h2U,2822
82
+ gin_tool/viz/modules.py,sha256=LHlgvJzf9V3l1YZk3fMzc0ns3tcBnHYUGFdxOoVYD5M,3232
83
+ gin_tool/viz/network.py,sha256=zDoGf6lTJUgNxZebScyR3p6Wv1wTnycEBkhy7pGR_x0,5148
84
+ gin_tool/viz/null_charts.py,sha256=ks8DQHwknQX1wwyvusntcbQN3Aqy5-oEE9X26DXBvls,1344
85
+ gin_tool/viz/qc.py,sha256=C-Hk-8DhxD2Iy-XBBWRxYkNPRDDsD22jxT3cIKmBB7A,1720
86
+ gin_tool/viz/scores.py,sha256=9chf3_VJVUnhYpHYIsqyZ7QResWZiC6DLaUhu9pa_pQ,4343
87
+ scbionet/__init__.py,sha256=en_pq8lGNT4Pb_9KZRl3bdgc3NXxgwXbMlJCZS-pnjU,77
88
+ scbionet/spn/__init__.py,sha256=ZWJdTiT6kQm2x1b6sEXLLQ9P7AVkjjxHCmF2xZjhJec,436
89
+ scbionet/spn/graphml_io.py,sha256=GOA9GUbQ6m9vfEN9yMO0JyYc5MFgtURPTja4FQh4Wk8,6312
90
+ scbionet/spn/model.py,sha256=h39vl6Fjn9oXUo2IgM4NhMiB1GvIzRbuAcDr2hDNigA,2544
91
+ scbionet/spn/simulator.py,sha256=SlSVgIZZXcIj8h-G-Gc2T1AqQ4vnjEPQN15NEWiXfR8,7801
92
+ scbionet/spn/version.py,sha256=zbX1rUkpbCoy4MPXvPfpHK52r3AoOW3nVdh87sKE7NA,115
93
+ gin_multiomics-0.2.0.dist-info/METADATA,sha256=kWEUoc7X4KZR6x4-RYl7feh9WloUbKbTAzet6KPxTAg,9094
94
+ gin_multiomics-0.2.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
95
+ gin_multiomics-0.2.0.dist-info/entry_points.txt,sha256=b5WUoT_Vuf4wUoZrhfeTFfVFP113L41Fx_Kjspde8R8,53
96
+ gin_multiomics-0.2.0.dist-info/top_level.txt,sha256=gWqgoxxovI1BsQIoTRjFEtcd1X8twLYN76FSuKcWzdU,18
97
+ gin_multiomics-0.2.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ gin-multiomics = gin_tool.cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 GINv3 authors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,18 @@
1
+ # Third-party data notices
2
+
3
+ This package redistributes **derived** network and omics artifacts for manuscript
4
+ reproduction. Upstream licenses and attribution remain with the source databases:
5
+
6
+ - **GIN** bipartite prior (`data/GINv3.11a.sifi.gz`, default toolkit prior) —
7
+ original GIN / lab build lineage; do not treat as a re-license of source
8
+ pathway DBs.
9
+ - **ENCODE / Roadmap** chromHMM emissions and related weights under
10
+ `runtime/chromhmm/` — follow ENCODE / Roadmap terms of use.
11
+ - **ChIP-Atlas / related TF evidence** summarized as H1 allowlists under
12
+ `runtime/chip_gin_align/` — not raw peak beds; cite ChIP-Atlas / original
13
+ experiments as appropriate.
14
+ - Cell-line RNA / metabolite place levels under `runtime/omics_seed/` — derived
15
+ expression features used for SigPN seeding.
16
+
17
+ Code under `gin_tool/` and `scbionet/spn/` is MIT (see `LICENSE`) unless a file
18
+ header states otherwise.
@@ -0,0 +1,2 @@
1
+ gin_tool
2
+ scbionet
gin_tool/__init__.py ADDED
@@ -0,0 +1,33 @@
1
+ """GIN bipartite multi-omics integration utilities."""
2
+
3
+ from gin_tool.user_stories import USER_STORIES, UserStory
4
+
5
+ __all__ = [
6
+ "USER_STORIES",
7
+ "UserStory",
8
+ "active_tf",
9
+ "analyze",
10
+ "benchmark",
11
+ "context_subgraph",
12
+ "enrichment",
13
+ "flows",
14
+ "io",
15
+ "mapping",
16
+ "module_flow",
17
+ "modules",
18
+ "propagate",
19
+ "regulatory_filter",
20
+ "schematic",
21
+ "signaling_subgraph",
22
+ "spn_export",
23
+ "spn_rehydrate",
24
+ "subgraph",
25
+ ]
26
+
27
+
28
+ def __getattr__(name: str):
29
+ if name in __all__ and name not in {"USER_STORIES", "UserStory"}:
30
+ import importlib
31
+
32
+ return importlib.import_module(f"gin_tool.{name}")
33
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
gin_tool/__main__.py ADDED
@@ -0,0 +1,4 @@
1
+ from gin_tool.cli import main
2
+
3
+ if __name__ == "__main__":
4
+ raise SystemExit(main())