porecast 0.0.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.
porecast/__init__.py ADDED
@@ -0,0 +1,41 @@
1
+ """porecast — forecast electrophysiology from single-cell ion-channel expression.
2
+
3
+ Method companion to the CATION ion-channel cell atlas. The ion-channel analogue
4
+ of ``hormone2cell``, with the key distinction that ion-channel composition maps
5
+ quantitatively to a measurable biophysical output (the action potential, V(t)),
6
+ so ``porecast`` predicts *function*, not just expression.
7
+
8
+ Planned public API (three tiers, implemented in a later release):
9
+
10
+ >>> import porecast as pc
11
+ >>> fp = pc.fingerprint(adata) # tier 1: ion-channel signature per cell type
12
+ >>> pred = pc.excitability(adata) # tier 2: excitable vs non-excitable (ML)
13
+ >>> hh = pc.model(cell_type="L5 ET") # tier 3: Hodgkin-Huxley -> V(t)
14
+ >>> hh.spike(current_injection=40)
15
+
16
+ This is the name-reservation release (0.0.1). The full implementation ships with
17
+ the CATION atlas publication.
18
+ """
19
+ from __future__ import annotations
20
+
21
+ __version__ = "0.0.1"
22
+ __all__ = ["__version__"]
23
+
24
+ # Sentinel so `import porecast` works and `porecast.__version__` reports cleanly.
25
+ _NOT_IMPLEMENTED_MSG = (
26
+ "porecast {v} is a name-reservation release. The full implementation "
27
+ "(fingerprint, excitability, Hodgkin-Huxley inference) ships with the CATION "
28
+ "ion-channel cell atlas publication. See https://cationatlas.com"
29
+ ).format(v=__version__)
30
+
31
+
32
+ def fingerprint(*args, **kwargs): # pragma: no cover - reserved signature
33
+ raise NotImplementedError(_NOT_IMPLEMENTED_MSG)
34
+
35
+
36
+ def excitability(*args, **kwargs): # pragma: no cover - reserved signature
37
+ raise NotImplementedError(_NOT_IMPLEMENTED_MSG)
38
+
39
+
40
+ def model(*args, **kwargs): # pragma: no cover - reserved signature
41
+ raise NotImplementedError(_NOT_IMPLEMENTED_MSG)
@@ -0,0 +1,71 @@
1
+ Metadata-Version: 2.4
2
+ Name: porecast
3
+ Version: 0.0.1
4
+ Summary: Forecast electrophysiology from single-cell ion-channel expression. Maps the ion-channel fingerprint of any cell type to its predicted electrical behaviour (excitability classification + Hodgkin-Huxley action-potential inference). Built on the CATION ion-channel cell atlas.
5
+ Project-URL: Homepage, https://cationatlas.com
6
+ Project-URL: Documentation, https://docs.cationatlas.com
7
+ Project-URL: Repository, https://github.com/restrolla/ion-channel-cell-atlas
8
+ Project-URL: Bug Tracker, https://github.com/restrolla/ion-channel-cell-atlas/issues
9
+ Author: CATION Project
10
+ License-Expression: MIT
11
+ License-File: LICENSE
12
+ Keywords: action potential,bioinformatics,cell atlas,channelome,electrophysiology,excitability,hodgkin-huxley,ion channels,single-cell
13
+ Classifier: Development Status :: 2 - Pre-Alpha
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
23
+ Requires-Python: >=3.9
24
+ Description-Content-Type: text/markdown
25
+
26
+ # porecast
27
+
28
+ **Forecast electrophysiology from single-cell ion-channel expression.**
29
+
30
+ `porecast` maps the ion-channel **pore** composition of any cell type (from a
31
+ single-cell RNA-seq dataset) to a **forecast** of its electrical behaviour. It
32
+ is the method companion to the **CATION** ion-channel cell atlas — the ion-channel
33
+ analogue of `hormone2cell`, with one key difference: ion channels are the only
34
+ gene family where expression maps *quantitatively* to a measurable biophysical
35
+ output (the action potential, *V(t)*), so `porecast` can predict function, not
36
+ just describe expression.
37
+
38
+ ## Planned API (three tiers)
39
+
40
+ ```python
41
+ import porecast as pc
42
+
43
+ # tier 1 — score the ion-channel fingerprint of every cell type
44
+ fp = pc.fingerprint(adata)
45
+
46
+ # tier 2 — classify cell types as electrically excitable vs non-excitable
47
+ pred = pc.excitability(adata) # validated against causal CRISPR-perturbation ephys
48
+
49
+ # tier 3 — infer a Hodgkin–Huxley model and forecast the action potential
50
+ hh = pc.model(cell_type="L5 ET pyramidal")
51
+ hh.spike(current_injection=40) # -> predicted V(t)
52
+ ```
53
+
54
+ `porecast` ships with the curated **IUPHAR/BPS channelome** (320 genes, 55
55
+ families), a model card, and trained weights.
56
+
57
+ ## Status
58
+
59
+ **`0.0.1` — name reservation.** This release reserves the package name on PyPI.
60
+ The full implementation lands with the CATION atlas publication. Watch this
61
+ space; see the [CATION atlas](https://cationatlas.com).
62
+
63
+ ## Installation
64
+
65
+ ```bash
66
+ pip install porecast
67
+ ```
68
+
69
+ ## License
70
+
71
+ MIT.
@@ -0,0 +1,5 @@
1
+ porecast/__init__.py,sha256=gARt-QYpSHTajoXUm4SrUaTQB_M0tNotT1Eg7-NiTRM,1727
2
+ porecast-0.0.1.dist-info/METADATA,sha256=qJFG1fTXP-c7v1t91wcsJ6FnoE0O21LPp4vLts-fA74,2898
3
+ porecast-0.0.1.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
4
+ porecast-0.0.1.dist-info/licenses/LICENSE,sha256=rt3oHJOK_B2tixwMxeqk3cVJ-La8dX0PEyFRcCOxQTw,1071
5
+ porecast-0.0.1.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.30.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CATION Project
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.