Skip to main content

scTenifoldXct

PyPI version License: MIT DOI

A semi-supervised method for predicting cell-cell interactions and mapping cellular communication graphs via manifold learning. [Paper]

🆕 New: a local web UI. No code required:

pip install --no-cache-dir "scTenifoldXct[web]"
sctenifoldxct-ui
# opens http://127.0.0.1:8765

Load a dataset (the bundled example needs no upload, from a git checkout — otherwise upload your own .h5ad), pick sender/receiver cell types, and hit Run analysis. Ranked ligand-receptor pairs show up in-browser with a full CSV download. Everything — data, computation, results — stays on your machine. Run sctenifoldxct-ui --help for host/port/GRN-cache options.

Prefer a hosted, always-on option instead? Try the Streamlit demo.

scTenifoldXct local web UI: load a dataset, pick sender/receiver cell types, and configure a run

drawing


Install

Requires Python 3.10+.

pip install scTenifoldXct

From source (development or latest unreleased changes):

git clone https://github.com/cailab-tamu/scTenifoldXct.git
cd scTenifoldXct
pip install .

Example Data

Two real, ready-to-use datasets are bundled under data/ — no data of your own required:

File Shape Cell types (ident) Used by
adata_short_example.h5ad 202 cells × 3,000 genes Inflam. FIB, Inflam. DC single-sample analysis (sctenifoldxct / st.scTenifoldXct)
adata_merge_example.h5ad 199 cells × 2,608 genes B cells, Fibroblasts (across NormalvsTumor conditions N/T) two-sample differential analysis (sctenifoldxct-merge)

Both are log-normalised and ready to feed straight into the examples below. See data/README.md for additional/larger datasets.

Usages

Quick Start

import logging
import scanpy as sc
import scTenifoldXct as st

# scTenifoldXct logs progress via the logging module; configure a handler to
# see messages when verbose=True (e.g. in a script or notebook):
logging.basicConfig(level=logging.INFO, format="%(message)s")

adata = sc.read_h5ad('data/adata_short_example.h5ad') # load data
xct = st.scTenifoldXct(data = adata, # an AnnData
                    source_celltype = 'Inflam. FIB', # sender cell type
                    target_celltype = 'Inflam. DC', # receiver cell type
                    obs_label = 'ident', # colname in adata.obs indicating cell types
                    rebuild_GRN = True, # whether to build GRNs
                    GRN_file_dir = 'Net_example_dev',  # folder path to GRNs
                    verbose = True, # whether to log the processing
                    n_cpus = -1) # CPU multiprocessing, -1 to use all
emb = xct.get_embeds(train = True) # Manifold alignment to project data to low-dimensional embeddings
xct_pairs = xct.null_test() # non-parametric test to get significant interactions
print(xct_pairs)

Command line

# single-sample interaction analysis
sctenifoldxct data/adata_short_example.h5ad --rebuild \
    -s "Inflam. FIB" -r "Inflam. DC" --n_cpus 8 -v

# two-sample differential interaction analysis
sctenifoldxct-merge data/adata_merge_example.h5ad NormalvsTumor N T \
    --rebuild -s "B cells" -r "Fibroblasts" --n_cpus 8 -v

Run sctenifoldxct --help or sctenifoldxct-merge --help for all options.

Tutorial

Two tutorial notebooks cover usage and results visualization:

Run scTenifoldXct from command-line by Docker

A Docker image with all required packages and databases included, for users not familiar with Python:

docker build -t sctenifold .
docker run -it --name xct --shm-size=8gb sctenifold

This drops you into a Bash terminal in the container. Example single-sample run:

sctenifoldxct data/adata_short_example.h5ad \
--rebuild \
-s "Inflam. FIB" \
-r "Inflam. DC" \
--n_cpus 8 \
-v

Two-sample analysis:

sctenifoldxct-merge data/adata_merge_example.h5ad \
NormalvsTumor N T \
--rebuild \
-s "B cells" \
-r "Fibroblasts" \
--n_cpus 8 \
-v

Copy your own data into the container for your analyses. When done, detach with Ctrl+p Ctrl+q and copy results back to the host:

docker cp xct:/app/xct_results/ .

Metadata

Release files for scTenifoldXct 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scTenifoldXct 0.2.2
File Size Uploaded Provenance Actions
sctenifoldxct-0.2.2.tar.gz 85.4 kB With provenance Details for sctenifoldxct-0.2.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for scTenifoldXct 0.2.2
File Interpreter ABI Platform Actions
sctenifoldxct-0.2.2-py3-none-any.whl Python 3 none any Details for sctenifoldxct-0.2.2-py3-none-any.whl

Total release size: 168.2 kB

Release files / sctenifoldxct-0.2.2.tar.gz

Download URL sctenifoldxct-0.2.2.tar.gz
Size 85.4 kB
Tags Source
SHA-256 checksum
How to use checksums
4d094addee4eb96d6d001f186825df8197b5b0262b2f2e81bd2004e922df758a
BLAKE2b-256 checksum
How to use checksums
b8a3ed325aaf23636b57e6b69c4dec40dcd27c8289d308af43a0c6a4d40d2a41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 16, 2026.

Transparency log

Release files / sctenifoldxct-0.2.2-py3-none-any.whl

Download URL sctenifoldxct-0.2.2-py3-none-any.whl
Size 82.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f566430f156710e72fa0d0da4c87865833b4c7ada1d21182ec07d1f9702fcf62
BLAKE2b-256 checksum
How to use checksums
49438958c441047b60dee1721efbc57f7f9c2e1a8cfce0ad7d0d2e6167d54ec8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 16, 2026.

Transparency log

Security for scTenifoldXct 0.2.2

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for sctenifoldxct-0.2.2.tar.gz

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 Aug 16, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page