arc-pie 0.1.6__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 (84) hide show
  1. arc_pie-0.1.6.dist-info/METADATA +174 -0
  2. arc_pie-0.1.6.dist-info/RECORD +84 -0
  3. arc_pie-0.1.6.dist-info/WHEEL +4 -0
  4. arc_pie-0.1.6.dist-info/entry_points.txt +8 -0
  5. arc_pie-0.1.6.dist-info/licenses/LICENSE.md +429 -0
  6. pie/__init__.py +8 -0
  7. pie/assets.py +301 -0
  8. pie/cli.py +229 -0
  9. pie/config.py +267 -0
  10. pie/configs/eval.yaml +14 -0
  11. pie/configs/experiment/replogle_wdataset.yaml +40 -0
  12. pie/configs/experiment/replogle_xdataset.yaml +48 -0
  13. pie/configs/infer.yaml +14 -0
  14. pie/configs/prep/dataset/arc_vcc_25.yaml +14 -0
  15. pie/configs/prep/dataset/jiang.yaml +7 -0
  16. pie/configs/prep/dataset/orion.yaml +7 -0
  17. pie/configs/prep/dataset/replogle.yaml +12 -0
  18. pie/configs/prep/dataset/tahoe.yaml +10 -0
  19. pie/configs/prep/label_format/pie_process.yaml +10 -0
  20. pie/configs/prep/label_format/table.yaml +10 -0
  21. pie/configs/prep.yaml +39 -0
  22. pie/configs/process/dataset/arc_vcc_25.yaml +13 -0
  23. pie/configs/process/dataset/jiang.yaml +12 -0
  24. pie/configs/process/dataset/orion.yaml +11 -0
  25. pie/configs/process/dataset/replogle.yaml +9 -0
  26. pie/configs/process/dataset/tahoe.yaml +8 -0
  27. pie/configs/process.yaml +37 -0
  28. pie/configs/sources.yaml +25 -0
  29. pie/configs/train.yaml +80 -0
  30. pie/data/__init__.py +0 -0
  31. pie/data/datamodule.py +474 -0
  32. pie/data/dataset.py +269 -0
  33. pie/data/delta_p.py +119 -0
  34. pie/data/evidence.py +1057 -0
  35. pie/data/preprocessed.py +298 -0
  36. pie/data/samplers.py +170 -0
  37. pie/data/splits.py +126 -0
  38. pie/evaluate.py +124 -0
  39. pie/infer.py +33 -0
  40. pie/metrics.py +439 -0
  41. pie/model/__init__.py +17 -0
  42. pie/model/evidence.py +86 -0
  43. pie/model/heads.py +36 -0
  44. pie/model/layers.py +52 -0
  45. pie/model/losses.py +151 -0
  46. pie/model/pie.py +304 -0
  47. pie/model/trunk.py +103 -0
  48. pie/predict.py +311 -0
  49. pie/prep/__init__.py +0 -0
  50. pie/prep/config.py +83 -0
  51. pie/prep/labels.py +738 -0
  52. pie/process/__init__.py +0 -0
  53. pie/process/config.py +88 -0
  54. pie/process/de.py +148 -0
  55. pie/process/io.py +113 -0
  56. pie/process/knockdown.py +290 -0
  57. pie/process/normalize.py +174 -0
  58. pie/process/run.py +76 -0
  59. pie/sources/__init__.py +0 -0
  60. pie/sources/chem_profiles.py +483 -0
  61. pie/sources/common.py +146 -0
  62. pie/sources/config.py +76 -0
  63. pie/sources/contract.py +323 -0
  64. pie/sources/curated_aliases.yaml +38 -0
  65. pie/sources/depmap.py +91 -0
  66. pie/sources/embed/__init__.py +0 -0
  67. pie/sources/embed/chemberta.py +152 -0
  68. pie/sources/embed/esm2.py +140 -0
  69. pie/sources/embed/openai.py +120 -0
  70. pie/sources/embed/qwen.py +135 -0
  71. pie/sources/registry.py +248 -0
  72. pie/sources/string.py +101 -0
  73. pie/sources/text/__init__.py +0 -0
  74. pie/sources/text/_http.py +67 -0
  75. pie/sources/text/context_file.py +50 -0
  76. pie/sources/text/contexts.py +650 -0
  77. pie/sources/text/drugs.py +541 -0
  78. pie/sources/text/genes.py +586 -0
  79. pie/sources/text/ncbi.py +510 -0
  80. pie/sources/text/tools.py +243 -0
  81. pie/sources/uniprot.py +140 -0
  82. pie/sources/verify.py +160 -0
  83. pie/train.py +506 -0
  84. pie/utils.py +333 -0
@@ -0,0 +1,174 @@
1
+ Metadata-Version: 2.4
2
+ Name: arc-pie
3
+ Version: 0.1.6
4
+ Summary: PIE: predicting transcriptional responses to perturbations from biological knowledge sources
5
+ Project-URL: Homepage, https://github.com/ArcInstitute/pie
6
+ Project-URL: Repository, https://github.com/ArcInstitute/pie
7
+ Project-URL: Issues, https://github.com/ArcInstitute/pie/issues
8
+ Project-URL: Data and models, https://huggingface.co/collections/arcinstitute/pie
9
+ Author-email: Rishi Verma <rishi.verma@arcinstitute.org>
10
+ License-Expression: CC-BY-NC-SA-4.0
11
+ License-File: LICENSE.md
12
+ Keywords: biology,gene-expression,perceiver,perturbation,single-cell
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
17
+ Requires-Python: <3.13,>=3.12
18
+ Requires-Dist: anndata<0.14,>=0.13.2
19
+ Requires-Dist: filelock<5,>=4.0.6
20
+ Requires-Dist: h5py<4,>=3.16.0
21
+ Requires-Dist: huggingface-hub<2,>=1.21.0
22
+ Requires-Dist: hydra-core<1.4,>=1.3.3
23
+ Requires-Dist: lightning<2.7,>=2.6.5
24
+ Requires-Dist: numpy<3,>=2.4.6
25
+ Requires-Dist: omegaconf<2.4,>=2.3.1
26
+ Requires-Dist: pandas<4,>=3.0.3
27
+ Requires-Dist: pyarrow<25,>=24.0.0
28
+ Requires-Dist: pydantic<3,>=2.13.4
29
+ Requires-Dist: safetensors<0.9,>=0.8.0
30
+ Requires-Dist: scipy<2,>=1.18.0
31
+ Requires-Dist: torch<2.11,>=2.10.0
32
+ Requires-Dist: tqdm<5,>=4.68.3
33
+ Requires-Dist: wandb<0.29,>=0.28.0
34
+ Provides-Extra: process
35
+ Requires-Dist: gpudge[fast]<0.10,>=0.9.1; extra == 'process'
36
+ Provides-Extra: sources
37
+ Requires-Dist: openai<3,>=2.44.0; extra == 'sources'
38
+ Requires-Dist: rdkit<2027,>=2026.3.6; extra == 'sources'
39
+ Requires-Dist: requests<3,>=2.34.2; extra == 'sources'
40
+ Requires-Dist: tiktoken<0.14,>=0.13.0; extra == 'sources'
41
+ Requires-Dist: transformers<6,>=5.12.1; extra == 'sources'
42
+ Description-Content-Type: text/markdown
43
+
44
+ # PIE: Generalizing perturbation effects across unseen perturbations, contexts and datasets
45
+
46
+ PIE is a perturbation effect prediction model that generalizes to unseen biological context, perturbations and combinations of both. It is based on the Perceiver IO architecture (Jaegle et al., 2022), and leverages curated Knowledge Sources, mean of control cells on context query and perturbation response evidence from contexts and perturbations in the train set.
47
+
48
+ Preprint available at: [biorxiv](https://doi.org/10.64898/2026.10.02.756297)\
49
+ Data and Knowledge Sources (🤗 Hugging Face): [PIE collection](https://huggingface.co/collections/arcinstitute/pie)
50
+
51
+ ## Installation
52
+
53
+ ```bash
54
+ git clone https://github.com/ArcInstitute/pie.git && cd pie
55
+ uv sync --frozen # add --extra sources / --extra process as needed
56
+ ```
57
+
58
+ `uv sync --frozen` reproduces the paper environment exactly. Prefix every command with `uv run`
59
+ (for example `uv run pie train ...`).
60
+
61
+ ### Settings
62
+
63
+ PIE reads `WANDB_ENTITY`, `WANDB_PROJECT`, `PIE_DATA_ROOT`, `PIE_RUNS_ROOT` and `PIE_CACHE_DIR`
64
+ from the environment, else from the first of `$PIE_ENV_FILE`, `./common.sh` and
65
+ `~/.config/pie/common.sh`. Copy `common.sh.example` from the repository and fill it in.
66
+ Set `logger.enabled=false` to train without wandb. Building text embeddings also needs
67
+ `OPENAI_API_KEY`; export it in your own environment, never in `common.sh`.
68
+ Run `pie` to list the commands and `pie <command> --help` for each one.
69
+
70
+ ## Published datasets and knowledge sources
71
+
72
+ - **Ready to run:** the experiment configs pin full HF commits of every dataset, knowledge
73
+ source and split, and PIE downloads what a run needs. Rebuilding data is optional.
74
+ - **On Hugging Face:** preprocessed datasets (with their `contexts.yaml`), `PIE_sources` (with
75
+ per-source `aliases.yaml`) and `PIE_splits` (train/val/test files), in the
76
+ [PIE collection](https://huggingface.co/collections/arcinstitute/pie).
77
+ - **References:** `hf://datasets/<owner>/<repo>[@revision]/<directory>`; mix them freely with
78
+ local paths. Runs and checkpoints record the resolved commit.
79
+ - **Your own splits:** `data.split_dir=<dir>` (local or `hf://`, with `train.json` and
80
+ `val.json`) for `pie train`; `split_path=<file>` for `pie eval`. A split file maps
81
+ `<dataset>.<context>` to a list of perturbations.
82
+ - **Cache:** downloads go to `$PIE_DATA_ROOT/hf/`; `HF_HUB_OFFLINE=1` reuses them without
83
+ network. Use `hf auth login` or `HF_TOKEN` if a repository needs a login.
84
+
85
+ ## Optional: build Replogle data and sources locally
86
+
87
+ Install the source-building and dataset-processing tools:
88
+
89
+ ```bash
90
+ uv sync --frozen --extra sources --extra process
91
+ ```
92
+
93
+ Download the Replogle-Nadig count matrix (K562, RPE1, Jurkat, HepG2) from [PLACEHOLDER] into `$PIE_DATA_ROOT/replogle/counts/`.
94
+
95
+ Normalize the counts and compute per-cell-line differential expression (uses a GPU for running `gpudge`):
96
+
97
+ ```bash
98
+ uv run pie process dataset=replogle input="$PIE_DATA_ROOT/replogle/counts/replogle_4cl.h5ad" \
99
+ normalize.output_dir="$PIE_DATA_ROOT/replogle/expression" \
100
+ de.output_dir="$PIE_DATA_ROOT/replogle/de"
101
+ ```
102
+
103
+ Build the preprocessed dataset. `contexts=` copies the context map (context to Cellosaurus
104
+ accession) into the dir; `pie sources` needs it for `context_text`. The published map is in the
105
+ dataset repo:
106
+
107
+ ```bash
108
+ uv run hf download arcinstitute/PIE_replogle_nadig_essential preprocessed/contexts.yaml \
109
+ --repo-type dataset --local-dir .
110
+ uv run pie prep dataset=replogle label_format=pie_process \
111
+ labels="$PIE_DATA_ROOT/replogle/de/*.parquet" \
112
+ h5ad="$PIE_DATA_ROOT/replogle/expression/replogle_4cl.h5ad" \
113
+ contexts=preprocessed/contexts.yaml output_dir="$PIE_DATA_ROOT/replogle/preprocessed"
114
+ ```
115
+
116
+ Build the knowledge sources:
117
+
118
+ You need to download the CRISPRGeneEffect.csv file and point the `pie sources` tool to it.
119
+
120
+ ```bash
121
+ uv run pie sources \
122
+ "tools=[esm2,ncbi_text,string_space,depmap_gene_effect,context_text,perturbation_text,gene_text]" \
123
+ "preprocessed_dirs=[$PIE_DATA_ROOT/replogle/preprocessed]" \
124
+ options.depmap_csv=CRISPRGeneEffect.csv options.device=cuda output_root="$PIE_DATA_ROOT/sources"
125
+ ```
126
+
127
+ To use these local assets for a canonical experiment, override `data.preprocessed_dirs`,
128
+ `data.source_dirs`, and `data.gene_text_dir`; the published recipes select HF assets by default.
129
+
130
+ ## Train and evaluate: replogle_wdataset
131
+
132
+ Each fold holds out one cell line and trains on the other three. For the K562 fold:
133
+
134
+ ```bash
135
+ SPLITS=hf://datasets/arcinstitute/PIE_splits@396ab9563175ee887750c9eed7ccaea6f5fdbf50
136
+ uv run pie train experiment=replogle_wdataset vars.fold=k562
137
+ for setting in unseen_ctx unseen_pert unseen_ctx_pert; do
138
+ uv run pie eval experiment_name=replogle_wdataset/k562 ckpt=best_auprc \
139
+ split_path=$SPLITS/replogle_wdataset/$setting/k562/test.json row_set=$setting
140
+ done
141
+ ```
142
+
143
+ The three test settings are unseen cell line (`unseen_ctx`), unseen perturbation (`unseen_pert`)
144
+ and both (`unseen_ctx_pert`). Loop over `hepg2`, `jurkat`, `k562` and `rpe1` to run all four
145
+ folds. See [AGENTS.md](AGENTS.md) for the cross-dataset experiment, inference and every CLI option.
146
+
147
+ ## Train and evaluate: replogle_xdataset
148
+
149
+ This experiment trains on Tahoe, Jiang, ARC VCC 25, and Orion and evaluates zero-shot on Replogle.
150
+ It uses two nodes with four GPUs each and a run directory on shared storage. Run the following
151
+ on each node with its rank, a shared rendezvous ID, and the node-0 hostname:
152
+
153
+ ```bash
154
+ uv run torchrun --nnodes=2 --nproc-per-node=4 --node-rank=<0|1> \
155
+ --master-addr=<node-0 host> --master-port=29500 --rdzv-id="$RDZV_ID" \
156
+ --no-python pie train experiment=replogle_xdataset
157
+ ```
158
+
159
+ Evaluate the best checkpoint on one GPU:
160
+
161
+ ```bash
162
+ SPLITS=hf://datasets/arcinstitute/PIE_splits@396ab9563175ee887750c9eed7ccaea6f5fdbf50
163
+ for rows in test_seen test_unseen; do
164
+ uv run pie eval experiment_name=replogle_xdataset ckpt=best_auprc \
165
+ split_path=$SPLITS/replogle_xdataset/$rows.json row_set=$rows
166
+ done
167
+ ```
168
+
169
+ ## License
170
+
171
+ PIE is released under the [Creative Commons Attribution-NonCommercial-ShareAlike 4.0
172
+ International](https://creativecommons.org/licenses/by-nc-sa/4.0/) license (CC BY-NC-SA 4.0).
173
+ You may use, share and adapt it for non-commercial purposes with attribution, and adaptations
174
+ must be shared under the same license. See [LICENSE.md](LICENSE.md) for the full text.
@@ -0,0 +1,84 @@
1
+ pie/__init__.py,sha256=L6LLjwBj0QBa2XitZUzUfrFGveFjDqTimNqPE76CT5Y,313
2
+ pie/assets.py,sha256=NYv9QuNT2b-dbh1Qk6ufStg_0lb_duYq6oNf4hYMkzM,11471
3
+ pie/cli.py,sha256=btm9ysf10WB97IjXLGmBMDsfDkMYeesEHM_ZYCvLql4,8783
4
+ pie/config.py,sha256=0N1nwPNDKMCe9izEF8FAngOyp8xpDfezPOe1zU-BlQg,10190
5
+ pie/evaluate.py,sha256=Kb-cwPaJUPzSYNQBfOkGEPwOhzkqL4_eW59DkGmarmE,5195
6
+ pie/infer.py,sha256=lB0AoA52FGl1OPYmiKVTEUvYs_YF9GqC4HNr0tPqfrI,1447
7
+ pie/metrics.py,sha256=He1dTh-bvNSmKe6GghCMSr8IREiNChv8yDFx1Gw1mJA,17353
8
+ pie/predict.py,sha256=_oQqYnVFmX38P-5f3maYsd5Y_gkv9mj-c0GAGIu0C94,12397
9
+ pie/train.py,sha256=SLyiZXOdooF2usoyVU1vh-p5KvvZ2QWhmyr4oWVz5jI,19180
10
+ pie/utils.py,sha256=G5kUcZQHn7pnLQts_TRQ_l_BATfl-Rnn-MdU1RqjBqE,12823
11
+ pie/configs/eval.yaml,sha256=qdhkTCRes10z8pqVolzPlbQ8MkhluolV6_yRSQKdB0U,284
12
+ pie/configs/infer.yaml,sha256=X1BMPGoSiufTIhB6EC7fjpBBAz4aR9SaE-z9rb55uVY,332
13
+ pie/configs/prep.yaml,sha256=ReF8Z1TVei-pKyEYUv5zxQhMM8069SxiMyiCc1E9ikc,969
14
+ pie/configs/process.yaml,sha256=3ps3anu3pNec1apQBhsVKfLQy5KcA5Tl_4oCEiuODEM,920
15
+ pie/configs/sources.yaml,sha256=oRFaCQzZaEw_GuYFxBSpD75sYZIQ3aRqYHpFmDFcCCM,691
16
+ pie/configs/train.yaml,sha256=aokhldcqiwkXJyDMI0xVvLfv6MevKpG9XQGOL_T6ll0,1602
17
+ pie/configs/experiment/replogle_wdataset.yaml,sha256=LyFuc9_6_cHVvAYsijXEPIvdXokThwJC3bCGpeMw9Hk,1750
18
+ pie/configs/experiment/replogle_xdataset.yaml,sha256=kF6hNbb30doQGOS37guuH9x1OX5rx1Gxh0cqb-JDJtQ,2567
19
+ pie/configs/prep/dataset/arc_vcc_25.yaml,sha256=ngg4BRoEvAdslR_ew-9pXIXOW2eDkye-JXHoKdl5wGQ,394
20
+ pie/configs/prep/dataset/jiang.yaml,sha256=eYQuVcqxNkerowGi2-132KBa4cJr4RE1NjLFxD8mgPo,143
21
+ pie/configs/prep/dataset/orion.yaml,sha256=sAzB75pZK1ySq4Jnwi96bVpbO-Ug_tr1sESHFifTdkY,142
22
+ pie/configs/prep/dataset/replogle.yaml,sha256=Kcc6j3PF1jiE3luj-8eHB72HTmZtSgnTbn5RXyfRiLk,387
23
+ pie/configs/prep/dataset/tahoe.yaml,sha256=gVz7ed9Q1r1WIGq7zGEyPYGw7Tu9mCLzf093KoST6_4,256
24
+ pie/configs/prep/label_format/pie_process.yaml,sha256=wZjK0U8QqevoFazxO7VCxrNX-MBh6lAfNQYS4p4XVxA,267
25
+ pie/configs/prep/label_format/table.yaml,sha256=vOJjrOc-n4A2HMl6QFSK9YxEtiD57Z3kJeHDHQEdOeM,253
26
+ pie/configs/process/dataset/arc_vcc_25.yaml,sha256=osx-Oeqm36xRwCrJBJHv23E7Wn8AQiyHEGZktyGYutk,308
27
+ pie/configs/process/dataset/jiang.yaml,sha256=fznejh7HWyWTyYvXJnqEomqxjgm_GjZT-lax6d0I7r0,262
28
+ pie/configs/process/dataset/orion.yaml,sha256=IdXwW0xghs-CzeXq-UwHtjXdNOMn5eUb6WgvLMXiQVI,253
29
+ pie/configs/process/dataset/replogle.yaml,sha256=dWjUkkUggUssteEYKxL4Z4ehyExc92I4cO8uBJqkdas,236
30
+ pie/configs/process/dataset/tahoe.yaml,sha256=bVEnZAHSyqx9Y9cUgWhZfG3TXWK-WRRmZBRwCrGy3q4,212
31
+ pie/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
+ pie/data/datamodule.py,sha256=752aaPHM3FckjlSTNO1JfdJGSQE2AZDucLhxTPEb4Vo,19373
33
+ pie/data/dataset.py,sha256=d5Bv0q_lN9ibYZvNlVa2TFwP4ydhw_cVg96xMXYebAI,11410
34
+ pie/data/delta_p.py,sha256=U5wJXGEnWWsL2X-lD9-V7QqJhO-2q0Ge3Vu_I9tgSJY,4491
35
+ pie/data/evidence.py,sha256=bpGUhtY4Qbo0Bkq1hq-vklBEUy8LsDj-JREdKlkDZs0,41107
36
+ pie/data/preprocessed.py,sha256=fVPsDt8QV3T18thzDyK0KhbVQ7U6vi0XFjt91Fz4zro,11207
37
+ pie/data/samplers.py,sha256=E7Q0FUMhTNo7uw_hYSfblQWbTw6O3qrqSYh-DW3owtM,6574
38
+ pie/data/splits.py,sha256=3i8vKLJz4Q5S1rS6h-7jlpL5OSAdKW3oJ5y2EnvOeDM,4990
39
+ pie/model/__init__.py,sha256=u4Bs3jZS1OoKlyNAL0CbG1Bn_zu7tOU_f2g8YJMlYHs,435
40
+ pie/model/evidence.py,sha256=igeOZnKi02rFzOz5StyIQgOK_zCi7bhc1M7cFou8lFk,3103
41
+ pie/model/heads.py,sha256=iYodqWyYn4kGQUyae3whmoFae13NIXjdzfUyUK3MmJ4,1224
42
+ pie/model/layers.py,sha256=SriJx3oRrumMMvR13xIWVjRrIU5E7tiEHr3uyJmA-II,1981
43
+ pie/model/losses.py,sha256=JLnjQUhmJ6rxemoag_QYzETHxckoZN_rjS-eE5WQV1k,6343
44
+ pie/model/pie.py,sha256=WoxNiqy9MPJSXDtW7e26uEZdbDwT9Bz0RkecCFSQ-cA,11879
45
+ pie/model/trunk.py,sha256=9NBYlCZszNXzguluGu2pk43_NmAwLvmacKA3hF9LHLw,4038
46
+ pie/prep/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ pie/prep/config.py,sha256=I9pxyPjpSVhgzLtXUDb23MY-5wwztZAr87yuRWfFOEI,2630
48
+ pie/prep/labels.py,sha256=ENcq9TlSxfq2AAClZozd1EFzf63WmJi99J045-hTqvQ,29023
49
+ pie/process/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
+ pie/process/config.py,sha256=IMsAgXf9FjUDFyoNgJr-Z-5Ew2WbfL16ZebGL0dvlCk,2919
51
+ pie/process/de.py,sha256=Ur_JEKl7JP0QokUkLImEP2mkE5crX8hxvx4L4xQTPtc,5521
52
+ pie/process/io.py,sha256=kXSIViQprDMwlQjQDwLbJGc1GoQhoESLATzCVxRqQFI,4037
53
+ pie/process/knockdown.py,sha256=dUVHy_lVQF4C6Sfd6kaXxh2MOp6y-N0RRu1kmff-_ZA,12140
54
+ pie/process/normalize.py,sha256=mOMQkb-4oHGpZSeoUkaI4nmMmNP2RkiIi914iaXnIDM,6970
55
+ pie/process/run.py,sha256=opfQg-VavKZjLJDNKKhlNUtaIBv6qi81S24KXiScN-4,2757
56
+ pie/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
+ pie/sources/chem_profiles.py,sha256=XhRQrvGv8Y1D2Dk4AJloxM3LurCrsm4gpjlRAfJLf1o,20419
58
+ pie/sources/common.py,sha256=MOQE6o04Tvd9NFpT1MTqPFE5zXPRXQhJAkjySIEwX4g,4910
59
+ pie/sources/config.py,sha256=3exyfpoFKEBCg4LobY_jH3FGWjZrnk80HoSPOTBVDjA,2376
60
+ pie/sources/contract.py,sha256=78RaB2ljMdSJan8hZpUu2BXQpcB_p1_bwopeyn7Z69I,12575
61
+ pie/sources/curated_aliases.yaml,sha256=F1Bcs8d6smU0WtiYKoTj0DE6zG99GO44MpKWiUAVuOU,770
62
+ pie/sources/depmap.py,sha256=GAWT4Le-8VksL9Z9FZFJdyAjvIkDavutWxGwB3H_HUg,3084
63
+ pie/sources/registry.py,sha256=0H8vuECOWzd9b5gmt03nAI-XUcKwJkzh4tbMGOSUJp4,7964
64
+ pie/sources/string.py,sha256=Cn7qg8XBymiDP18e-jYn7KlOKvOwOFstdKd_lyevtfU,3572
65
+ pie/sources/uniprot.py,sha256=k9x2FALUM887NBw5QCZcLnifr8irLwTm5muUSVLKm6w,5227
66
+ pie/sources/verify.py,sha256=uYRMh9tVYELVceb580FEMCNVgw9FWAmzWLWZGJK6OQk,6094
67
+ pie/sources/embed/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
+ pie/sources/embed/chemberta.py,sha256=aRK-5xAY7aQ2kv6Qcoav6CeIhhCJqEC1-dWLquGwnDg,6088
69
+ pie/sources/embed/esm2.py,sha256=TEN0ek50UHZXtXiXxwpCuwP2GVWNZj2b2tGfqMaWMZk,5195
70
+ pie/sources/embed/openai.py,sha256=RLaAL9tAHCFK4XxZ9BuB-48U8ZJHfzIZ2v06G0hJjh8,4330
71
+ pie/sources/embed/qwen.py,sha256=sNfZbvhpEqEoD-TKMvADCBWmX13WMnS-XMSGA1818MY,5277
72
+ pie/sources/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
+ pie/sources/text/_http.py,sha256=3GCYQOjC5ocV2KQDquxRiKEyEaDq-1vmYe_uRY_fnsA,2325
74
+ pie/sources/text/context_file.py,sha256=J7IJZ6LS1wHfc0pm_vUowkNJPHBiE_CjttLNbIp-S3M,1569
75
+ pie/sources/text/contexts.py,sha256=PTB94yDJhmQz7A6U4LSwmyhenQdqxwdsRnjRiVy3hlc,23384
76
+ pie/sources/text/drugs.py,sha256=_gfU3HhId1vsEbObVJlHtzQ9shr33Cr0Z__GWBWGTFI,21083
77
+ pie/sources/text/genes.py,sha256=mgRFSe6_EUULBuTHoCyBlR9oxu52My-zvXqCzJKVoRA,21868
78
+ pie/sources/text/ncbi.py,sha256=Hdt07FYuGwIEmvX8iVYdKs6CzA54hgN2_mdCbWfoUwE,19032
79
+ pie/sources/text/tools.py,sha256=2p1AUe_Wp2v-ZMf-BYDZF4hFW2ZHrNxEARlu7YcxCe8,10109
80
+ arc_pie-0.1.6.dist-info/METADATA,sha256=fP_6O9bxY4fNlwqLUdDTB5ZVZGlQ-ikf67ghZauOAGM,8179
81
+ arc_pie-0.1.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
82
+ arc_pie-0.1.6.dist-info/entry_points.txt,sha256=GiZMOYuKChpcM9SB0M-xBahVhlPXaHI2IfivhTWaEcU,233
83
+ arc_pie-0.1.6.dist-info/licenses/LICENSE.md,sha256=ja0peRnIxQjFyuKKrG-gWeNNr2YHHvDzDz0VKLJiyGo,18859
84
+ arc_pie-0.1.6.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.27.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,8 @@
1
+ [console_scripts]
2
+ pie = pie.cli:main
3
+ pie-eval = pie.cli:eval_alias
4
+ pie-infer = pie.cli:infer_alias
5
+ pie-prep = pie.cli:prep_alias
6
+ pie-process = pie.cli:process_alias
7
+ pie-sources = pie.cli:sources_alias
8
+ pie-train = pie.cli:train_alias