SCOUBI
SCOUBI is a computational framework for analyzing extrasomatic transcripts in imaging-based spatial transcriptomics data. Rather than discarding unassigned RNA as background, SCOUBI uses marker-gene expression of neurites and spatial ligand–receptor colocalization to classify extrasomatic regions as axon- or dendrite-enriched and to identify putative “interfaces” enriched for intercellular signaling programs. These interfaces provide a transcriptomic window into neuronal communication sites that are typically inaccessible to cell-centric spatial analyses. By preserving anatomical context, SCOUBI enables regional and molecular characterization of putative synaptic signaling environments directly from intact tissue.
Preprint: add preprint link here
Overview
Imaging-based spatial transcriptomics often detects a substantial fraction of transcripts outside segmented cell bodies. SCOUBI treats this extrasomatic signal as a biologically informative layer of tissue organization.
The workflow has two main stages:
-
Neurite identity classification
Extrasomatic spatial bins are classified as axon- or dendrite-enriched using curated marker genes and a signaling-informed optimization objective. -
Interface identification
SCOUBI scans for local regions where axonic and dendritic bins converge and where significant ligand–receptor pairs are colocalized.
The resulting interface map can be used to study:
- Spatial distribution of putative neuronal communication regions
- Neurite-enriched genes
- Interface-enriched genes
- Regional variation in interface transcriptomes
- Interface signatures compared with nearby cell bodies
Installation
pip install scoubi
For local development from a checkout:
pip install -e .
Quickstart
import torch
import scoubi
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
adata = scoubi.io.load_data(
"data/data.parquet",
cell_type="data/cell_types.csv",
region="data/regions.csv",
)
adata = scoubi.pp.bin_data(adata, binsize=2)
adata = scoubi.md.train(adata, axon_markers, dendrite_markers, device=device)
adata = scoubi.tl.overview(adata, device=device)
adata = scoubi.tl.axon_dendrite_enrichment(adata)
adata = scoubi.tl.distance(adata)
adata = scoubi.tl.expression_profile(adata, key="region")
adata = scoubi.tl.communication_profile(adata, key="region")
adata.summarize()
Module Map
| Module | Alias | Purpose |
|---|---|---|
scoubi.io |
- | Data loading and AnnData helpers |
scoubi.preprocess |
scoubi.pp |
Preprocessing (Spatial binning) |
scoubi.model |
scoubi.md |
Neurite annotation |
scoubi.tools |
scoubi.tl |
Downstream analysis utilities |
scoubi.plotting |
scoubi.pl |
Visualization helpers |
Data and Runtime Notes
scoubi.md.train()can use a bundled ligand-receptor reference table (from NeuronChat) whenpairs=None.- GPU acceleration is optional; most workflows can run on CPU, although training and convolution-heavy steps are faster on CUDA when available.
Tutorial
The guided walkthrough lives in tutorial.ipynb. It covers data loading, model training, spatial overview generation, enrichment analysis, interface profiling, communication analysis, and save/load workflows.
License
Released under the MIT License. See LICENSE.
Citation
If you use SCOUBI in your work, please cite:
@article{scoubi, title = {SCOUBI: Signaling-informed Characterization of Unresolved Biological Interfaces}, author = {TODO}, journal = {TODO}, year = {TODO}, doi = {TODO} }
Metadata
Release files for scoubi 1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| scoubi-1.0.tar.gz | 44.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scoubi-1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.4 kB
Release files / scoubi-1.0.tar.gz
| Download URL | scoubi-1.0.tar.gz |
|---|---|
| Size | 44.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cd2a23e37ba912763b0131e1e400e34b0e931e0927e829de88200d63910d6757
|
|
BLAKE2b-256 checksum How to use checksums |
bf43bd75fdc821686e01c16bff5bce87a20c3dc02b0733f806a1295d755c8f8b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 31, 2026.
Transparency logRelease files / scoubi-1.0-py3-none-any.whl
| Download URL | scoubi-1.0-py3-none-any.whl |
|---|---|
| Size | 47.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ef64dbc80909dc36fc421c333ebf9f139d92202bb0ecf55850b2bf4e804db823
|
|
BLAKE2b-256 checksum How to use checksums |
0d371b928365fa4e3d5663fd43c33d5548ff2f4e78e1448b5871d35e394cf8dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 31, 2026.
Transparency log