gin-multiomics 0.2.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.
- gin_multiomics-0.2.0/LICENSE +21 -0
- gin_multiomics-0.2.0/NOTICE.md +18 -0
- gin_multiomics-0.2.0/PKG-INFO +261 -0
- gin_multiomics-0.2.0/README.md +216 -0
- gin_multiomics-0.2.0/gin_multiomics.egg-info/PKG-INFO +261 -0
- gin_multiomics-0.2.0/gin_multiomics.egg-info/SOURCES.txt +102 -0
- gin_multiomics-0.2.0/gin_multiomics.egg-info/dependency_links.txt +1 -0
- gin_multiomics-0.2.0/gin_multiomics.egg-info/entry_points.txt +2 -0
- gin_multiomics-0.2.0/gin_multiomics.egg-info/requires.txt +17 -0
- gin_multiomics-0.2.0/gin_multiomics.egg-info/top_level.txt +2 -0
- gin_multiomics-0.2.0/gin_tool/__init__.py +33 -0
- gin_multiomics-0.2.0/gin_tool/__main__.py +4 -0
- gin_multiomics-0.2.0/gin_tool/active_tf.py +563 -0
- gin_multiomics-0.2.0/gin_tool/active_tf_promoter_qc.py +283 -0
- gin_multiomics-0.2.0/gin_tool/active_tf_rwr.py +119 -0
- gin_multiomics-0.2.0/gin_tool/analyze.py +166 -0
- gin_multiomics-0.2.0/gin_tool/benchmark.py +114 -0
- gin_multiomics-0.2.0/gin_tool/cli.py +1067 -0
- gin_multiomics-0.2.0/gin_tool/context_subgraph.py +472 -0
- gin_multiomics-0.2.0/gin_tool/debias.py +672 -0
- gin_multiomics-0.2.0/gin_tool/dogma_chain_repair.py +520 -0
- gin_multiomics-0.2.0/gin_tool/enrichment.py +88 -0
- gin_multiomics-0.2.0/gin_tool/flows.py +173 -0
- gin_multiomics-0.2.0/gin_tool/gin_defaults.py +34 -0
- gin_multiomics-0.2.0/gin_tool/histone_promoter_sign_qc.py +124 -0
- gin_multiomics-0.2.0/gin_tool/hme_chain_repair.py +1463 -0
- gin_multiomics-0.2.0/gin_tool/io.py +257 -0
- gin_multiomics-0.2.0/gin_tool/mapping.py +367 -0
- gin_multiomics-0.2.0/gin_tool/module_flow.py +99 -0
- gin_multiomics-0.2.0/gin_tool/modules.py +92 -0
- gin_multiomics-0.2.0/gin_tool/negative_ppi_feedback.py +194 -0
- gin_multiomics-0.2.0/gin_tool/node_lists.py +458 -0
- gin_multiomics-0.2.0/gin_tool/null_context.py +336 -0
- gin_multiomics-0.2.0/gin_tool/null_rwr.py +91 -0
- gin_multiomics-0.2.0/gin_tool/pipeline_version.py +42 -0
- gin_multiomics-0.2.0/gin_tool/propagate.py +67 -0
- gin_multiomics-0.2.0/gin_tool/regulatory_filter.py +176 -0
- gin_multiomics-0.2.0/gin_tool/runtime_limits.py +175 -0
- gin_multiomics-0.2.0/gin_tool/runtime_null.py +188 -0
- gin_multiomics-0.2.0/gin_tool/schematic.py +113 -0
- gin_multiomics-0.2.0/gin_tool/signaling_subgraph.py +373 -0
- gin_multiomics-0.2.0/gin_tool/signed_edge_spn_qc.py +134 -0
- gin_multiomics-0.2.0/gin_tool/spn_export.py +509 -0
- gin_multiomics-0.2.0/gin_tool/spn_rehydrate.py +177 -0
- gin_multiomics-0.2.0/gin_tool/subgraph.py +177 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/__init__.py +32 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/budget.py +32 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/chromhmm_emission_weights.py +383 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/chromhmm_panel_assemble.py +397 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/connectivity.py +187 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/data/ginv2_table1_uc_aliases.json +73 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/edge_topology.py +331 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/edge_weight_balance.py +250 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/extract.py +332 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/gin_self_loop.py +217 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/grn_allowlist_prune.py +299 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/interaction_weight_schedule.py +106 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/lcc_multisource_bridge.py +220 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/manifest.py +154 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/met_enzyme_recovery.py +123 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/met_source_seed.py +139 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/metabolite_id_resolve.py +533 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/parallel_util.py +91 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/promoter_edge_policy.py +189 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/protein_self_loop_prune.py +57 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/regulatory_train.py +90 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/role_seed_enrichment.py +208 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/seed_gin_mapping.py +268 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/seeds.py +170 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/signaling_bipartite.py +264 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/spn_degradation.py +220 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/spn_layer_rules.py +481 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/spn_nf_phase.py +141 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/spn_obsidian_export.py +327 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/spn_policy.py +301 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/spn_reasonableness_qc.py +456 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/spn_simulate.py +1365 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/spn_simulator_gin.py +1688 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/spn_standard_policy.py +207 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/stats.py +17 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/stoichiometry_resolve.py +98 -0
- gin_multiomics-0.2.0/gin_tool/subgraph_pipeline/ups_degradation_policy.py +594 -0
- gin_multiomics-0.2.0/gin_tool/user_stories.py +71 -0
- gin_multiomics-0.2.0/gin_tool/viz/__init__.py +118 -0
- gin_multiomics-0.2.0/gin_tool/viz/_select.py +48 -0
- gin_multiomics-0.2.0/gin_tool/viz/_style.py +29 -0
- gin_multiomics-0.2.0/gin_tool/viz/corr_clustermap.py +203 -0
- gin_multiomics-0.2.0/gin_tool/viz/export.py +78 -0
- gin_multiomics-0.2.0/gin_tool/viz/flows.py +94 -0
- gin_multiomics-0.2.0/gin_tool/viz/modules.py +108 -0
- gin_multiomics-0.2.0/gin_tool/viz/network.py +162 -0
- gin_multiomics-0.2.0/gin_tool/viz/null_charts.py +43 -0
- gin_multiomics-0.2.0/gin_tool/viz/qc.py +57 -0
- gin_multiomics-0.2.0/gin_tool/viz/scores.py +139 -0
- gin_multiomics-0.2.0/pyproject.toml +81 -0
- gin_multiomics-0.2.0/scbionet/__init__.py +2 -0
- gin_multiomics-0.2.0/scbionet/spn/__init__.py +14 -0
- gin_multiomics-0.2.0/scbionet/spn/graphml_io.py +187 -0
- gin_multiomics-0.2.0/scbionet/spn/model.py +76 -0
- gin_multiomics-0.2.0/scbionet/spn/simulator.py +219 -0
- gin_multiomics-0.2.0/scbionet/spn/version.py +3 -0
- gin_multiomics-0.2.0/setup.cfg +4 -0
- gin_multiomics-0.2.0/tests/test_sifi_gz_io.py +35 -0
- gin_multiomics-0.2.0/tests/test_sigpn_engine.py +20 -0
|
@@ -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,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)
|
|
49
|
+
[](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,216 @@
|
|
|
1
|
+
# GINv3-publication
|
|
2
|
+
|
|
3
|
+
[](LICENSE)
|
|
4
|
+
[](https://www.python.org/downloads/)
|
|
5
|
+
|
|
6
|
+
Multi-omics **Global Integrative Network (GIN)** context extraction and **SigPN**
|
|
7
|
+
(**signaling** Petri net — not stochastic PN) simulation for mechanism-oriented
|
|
8
|
+
analyses. This repository is the manuscript **Code Availability** package:
|
|
9
|
+
an installable toolkit (`gin-multiomics`) plus a recipe that **recomputes** the
|
|
10
|
+
p53 / GINv3.11a publication numbers.
|
|
11
|
+
|
|
12
|
+
The GIN prior ships as **`data/GINv3.11a.sifi.gz`** (~75 MB). The toolkit and
|
|
13
|
+
publication recipe read it **directly** — no unpack step is required.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Citation
|
|
18
|
+
|
|
19
|
+
Upon publication, please cite the accompanying paper (title / journal / DOI to
|
|
20
|
+
be updated here). Until then, cite this repository and the manuscript that
|
|
21
|
+
points to it under Code Availability.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Overview
|
|
26
|
+
|
|
27
|
+
- Extract a **mechanistic context** subgraph from the GINv3 prior given gene
|
|
28
|
+
(or GIN node) seeds.
|
|
29
|
+
- Optionally prune TF→promoter edges with a **cell-specific ChIP allowlist**
|
|
30
|
+
to obtain a cell-line network.
|
|
31
|
+
- Run **SigPN** Monte-Carlo simulations for signaling interventions.
|
|
32
|
+
- **Recompute** the manuscript Stage A / prune / Pulse pipeline and assert
|
|
33
|
+
against published fingerprints (locks under `docs/locks/`).
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Requirements
|
|
38
|
+
|
|
39
|
+
| Item | Notes |
|
|
40
|
+
|------|--------|
|
|
41
|
+
| OS | Linux recommended for bit-identical Stage A; macOS works for toolkit use |
|
|
42
|
+
| Python | ≥ 3.9 |
|
|
43
|
+
| Disk | Bundled `data/GINv3.11a.sifi.gz` (~75 MB) |
|
|
44
|
+
| RAM / CPU | Context with `--context-n-jobs 20` is cluster-scale; small demos run on a laptop |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Installation
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
git clone https://github.com/BIGchix/GINv3-publication.git
|
|
52
|
+
cd GINv3-publication
|
|
53
|
+
python3 -m venv .venv && source .venv/bin/activate
|
|
54
|
+
pip install -U pip && pip install -e ".[sim]"
|
|
55
|
+
export PYTHONHASHSEED=0
|
|
56
|
+
python scripts/reproduce_publication.py --steps prepare
|
|
57
|
+
# → verifies data/GINv3.11a.sifi.gz (sha256 f9bb23c4…)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
After install, the CLI is available as:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
python -m gin_tool.cli -h
|
|
64
|
+
# or: gin-multiomics -h
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Default `--sifi` is `data/GINv3.11a.sifi.gz` (included in the clone).
|
|
68
|
+
Standalone download (Release does not attach the ~75 MB asset):
|
|
69
|
+
[raw v0.2.0](https://github.com/BIGchix/GINv3-publication/raw/v0.2.0/data/GINv3.11a.sifi.gz)
|
|
70
|
+
· [data/README.md](data/README.md). More detail:
|
|
71
|
+
[docs/USER_GUIDE.md](docs/USER_GUIDE.md).
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Quick start
|
|
76
|
+
|
|
77
|
+
**1. Context subgraph** (default prior = compressed GIN):
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
python -m gin_tool.cli \
|
|
81
|
+
--seeds "TP53,MDM2,CDKN1A" \
|
|
82
|
+
--out-dir gin_out/my_context \
|
|
83
|
+
--context-mech-depth 2 \
|
|
84
|
+
--context-n-jobs 8 \
|
|
85
|
+
--node-list-dir ./nodeList \
|
|
86
|
+
--no-debias
|
|
87
|
+
# → gin_out/my_context/subgraph_edges.tsv
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
bash examples/01_custom_context.sh
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**2. SigPN demo** (bundled toy network; **no** GIN prior required):
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
bash examples/03_sigpn_demo.sh
|
|
98
|
+
# → gin_out/example_sigpn_demo/spn.graphml
|
|
99
|
+
# → gin_out/example_sigpn_demo/spn_sim_demo/…
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
See [examples/](examples/) for more scripts.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Workflow
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
seeds + data/GINv3.11a.sifi.gz
|
|
110
|
+
│
|
|
111
|
+
▼
|
|
112
|
+
context subgraph ──► (optional) ChIP prune ──► SigPN simulation
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
1. **Context** — seeds + GIN prior → mechanistic neighborhood (`python -m gin_tool.cli`).
|
|
116
|
+
2. **Cell prune** (optional) — ChIP allowlist → cell-specific edges
|
|
117
|
+
([docs/CHIP_ALLOWLIST.md](docs/CHIP_ALLOWLIST.md)).
|
|
118
|
+
3. **SigPN** — export the Petri net and run Monte-Carlo (demo below). The
|
|
119
|
+
manuscript H1 B0 Pulse is a special-case intervention script; for other
|
|
120
|
+
designs reuse the same engine
|
|
121
|
+
([docs/SIGPN_CUSTOM_SIMULATIONS.md](docs/SIGPN_CUSTOM_SIMULATIONS.md)).
|
|
122
|
+
|
|
123
|
+
### From subgraph to SigPN (executable demo)
|
|
124
|
+
|
|
125
|
+
Bundled toy data under `examples/demo_sigpn/` (TP53 / MDM2 / CDKN1A edges
|
|
126
|
+
excerpted from the publication H1-pruned network). Laptop-scale defaults:
|
|
127
|
+
`runs=2`, `blocks=10`.
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# One-liner
|
|
131
|
+
bash examples/03_sigpn_demo.sh
|
|
132
|
+
|
|
133
|
+
# Equivalent explicit steps
|
|
134
|
+
mkdir -p gin_out/example_sigpn_demo
|
|
135
|
+
cp examples/demo_sigpn/subgraph_edges.tsv gin_out/example_sigpn_demo/
|
|
136
|
+
cp examples/demo_sigpn/place_levels.tsv gin_out/example_sigpn_demo/
|
|
137
|
+
|
|
138
|
+
python examples/run_sigpn_demo.py \
|
|
139
|
+
--subgraph-dir gin_out/example_sigpn_demo \
|
|
140
|
+
--place-levels gin_out/example_sigpn_demo/place_levels.tsv \
|
|
141
|
+
--chromhmm-emission-tsv runtime/chromhmm/panel_emissions/h1_wa01_E003_promoter_emission.tsv \
|
|
142
|
+
--runs 2 \
|
|
143
|
+
--blocks 10 \
|
|
144
|
+
--seed 0
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
On your own context (after CLI or prune), point `--subgraph-dir` at a folder
|
|
148
|
+
that contains `subgraph_edges.tsv` (and optionally `place_levels.tsv`).
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Reproduce manuscript results
|
|
153
|
+
|
|
154
|
+
Recompute the publication pipeline (prior stays compressed throughout):
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
export PYTHONHASHSEED=0
|
|
158
|
+
python scripts/reproduce_publication.py --steps prepare
|
|
159
|
+
python scripts/reproduce_publication.py --steps stage_a --n-jobs 20
|
|
160
|
+
python scripts/assert_p53_pub_gin11a_lock.py
|
|
161
|
+
|
|
162
|
+
# Full pipeline (cluster-scale: prune + Pulse, etc.)
|
|
163
|
+
python scripts/reproduce_publication.py --steps all --n-jobs 20
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Stage A lock target: **11,368** edges (details in `docs/locks/`).
|
|
167
|
+
`expected/` is for **assert / CI**, not the primary reproduction path.
|
|
168
|
+
Platform notes (e.g. Linux freeze host vs macOS): see
|
|
169
|
+
[docs/experiments/p53_stageA_server_vs_mac_repro_20261014.md](docs/experiments/p53_stageA_server_vs_mac_repro_20261014.md)
|
|
170
|
+
and the step-by-step guide [REPRODUCE.md](REPRODUCE.md).
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Documentation
|
|
175
|
+
|
|
176
|
+
| Document | Contents |
|
|
177
|
+
|----------|----------|
|
|
178
|
+
| [docs/USER_GUIDE.md](docs/USER_GUIDE.md) | Getting started for custom analyses |
|
|
179
|
+
| [docs/CLI_REFERENCE.md](docs/CLI_REFERENCE.md) | Recommended CLI options |
|
|
180
|
+
| [docs/CHIP_ALLOWLIST.md](docs/CHIP_ALLOWLIST.md) | Cell ChIP allowlist format and use |
|
|
181
|
+
| [docs/SIGPN_CUSTOM_SIMULATIONS.md](docs/SIGPN_CUSTOM_SIMULATIONS.md) | SigPN reuse; Pulse as a special case |
|
|
182
|
+
| [REPRODUCE.md](REPRODUCE.md) | Full manuscript recompute recipe |
|
|
183
|
+
| [MANIFEST.md](MANIFEST.md) | Package contents checklist |
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Repository layout
|
|
188
|
+
|
|
189
|
+
| Path | Role |
|
|
190
|
+
|------|------|
|
|
191
|
+
| `gin_tool/` | Context / HME / dogma / SigPN CLI |
|
|
192
|
+
| `scbionet/spn/` | Vendored SigPN engine |
|
|
193
|
+
| `data/GINv3.11a.sifi.gz` | Frozen GIN prior (default `--sifi`) |
|
|
194
|
+
| `nodeList/` · `seedLists/` | Layer lists and seeds |
|
|
195
|
+
| `runtime/chip_gin_align/` | Example H1 allowlist |
|
|
196
|
+
| `runtime/omics_seed/` · `runtime/chromhmm/` | Example place levels / emissions |
|
|
197
|
+
| `examples/` | Context / Stage A / SigPN demos (`demo_sigpn/` toy data) |
|
|
198
|
+
| `scripts/reproduce_publication.py` | Manuscript driver (recomputes) |
|
|
199
|
+
| `expected/` | Gold fingerprints for assert |
|
|
200
|
+
| `docs/` | Guides, locks, experiment notes |
|
|
201
|
+
|
|
202
|
+
Historical path prefixes such as `runtime/spn_phys5/` still mean **SigPN**.
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## License
|
|
207
|
+
|
|
208
|
+
MIT for code (see [LICENSE](LICENSE)). Network and omics artifacts: see
|
|
209
|
+
[NOTICE.md](NOTICE.md).
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Contact
|
|
214
|
+
|
|
215
|
+
- Email: [chix@big.ac.cn](mailto:chix@big.ac.cn)
|
|
216
|
+
- GitHub Issues on this repository (once published under Code Availability)
|