Skip to main content

HIDE-deconv

Interactive command line tool and python package for hierarchical deconvolution and analysis of bulk RNA-seq data.

HIDE-Deconv Summary

Features

  • Designed for AnnData single cell datasets
  • Open Source package, that can be run on safe servers
  • Hierarchical cell type deconvolution for any number of cell type annotation layers
  • Includes methods for post-deconvolution analysis
  • Usable via command line interface and Python API
  • Provides a guided workflow that allows users without programming experience to perform deconvolution

For a detailed overview of all features and usage, please read the Userguide

Installation

# Create and activate a new virtual environment (recommended)
python3 -m venv .venv
source .venv/bin/activate

# Install HIDE-deconv
pip install hide-deconv

Necessary Data

  • Single-cell data: Annotated AnnData (.h5ad) file with gene names in adata.var_names and cell type annotations for each desired layer in adata.obs (at least one layer of cell type annotations is necessary).
  • Bulk RNA-seq data: CSV file, genes as row index, samples as columns. Gene IDs must match single-cell data.
  • Sample sheet (optional): CSV with sample meta-information (e.g., cohort, survival time, event).
  • Data Normalization: We recommend to use raw counts for all datasets.

Command Line Workflow

Deconvolution (standard workflow):

hide-deconv run --path <project_dir>

This initializes the project, preprocesses data, trains the model, and runs deconvolution.

Difference in composition & survival analysis:

hide-deconv analyze diff --path <project_dir>
hide-deconv analyze survival --path <project_dir>
  • For difference analysis, the sample sheet must contain columns for sample ID and cohort.
  • For survival analysis, the sample sheet must contain columns for sample ID, survival time and event. Values in the event column must be either "1": event occured or "0": no event.

Command overview:

hide-deconv help

This displays a short introduction to the command line interface and gives an overview of all available commands.


Tutorials

Basic Usage Tutorial


Quick Deconvolution API Example

HIDE-deconv contains a "lazy" API for users who want quick access to deconvolution.

import anndata as ad
import pandas as pd
from hide_deconv import deconvolution

adata = ad.read_h5ad("single_cells.h5ad")
bulk = pd.read_csv("bulk.csv", index_col=0) # genes x samples

results = deconvolution(adata, bulk, celltype_cols=["cell_type", "major"]) # Two layer hierarchy
# results = deconvolution(adata, bulk, celltype_cols="major") # Deconvolution only on major level

# results is a list of pandas DataFrames, one per hierarchy layer
# results[0] is the finest layer, results[1] the next coarser layer

If you only pass adata and bulk, celltype_cols defaults to "cell_type".

Extended API Example

For experienced users offers HIDE-deconv a highly customizable API, where they can integrate their own preprocessing steps into the pipeline. An example is given below.

import anndata as ad
import pandas as pd
import numpy as np
from hide_deconv.preprocessing import (
	train_test_split_adata,
	create_reference,
	create_hierarchy,
	create_bulks,
)
from hide_deconv.models import HIDE
from hide_deconv.statistic import run_mann_whitney_u

# 1. Load AnnData
adata = ad.read_h5ad("single_cells.h5ad")

# 2. Split into training and test set
adata_train, adata_test = train_test_split_adata(adata, celltype_col="cell_type", train_frac=0.7)

# 3. Create reference profiles and hierarchy (single layer example)
X_sub = create_reference(adata_train, celltype_col="cell_type")
A_l = [pd.DataFrame(np.eye(X_sub.shape[1]), index=X_sub.columns, columns=X_sub.columns)]
X_l = [X_sub]

# 4. Simulate training bulks
Y_train, C_train = create_bulks(adata_train, n_bulks=1000, n_cells_per_bulk=100, celltype_col="cell_type")

# 5. Simulate test bulks
Y_test, C_test = create_bulks(adata_test, n_bulks=100, n_cells_per_bulk=100, celltype_col="cell_type")

# 6. Initialize and train model
hide = HIDE(X_l, A_l)
hide.train(Y_train, C_train, iter=1000)

# 7. Deconvolution on test data
results = hide.predict(Y_test, norm=True)["prediction"]

# 8. Optional: Difference in composition analysis
# (requires a sample sheet with columns 'SampleID' and 'Cohort')

# sample_sheet = read_csv("sample_sheet.csv")
# diff = run_mann_whitney_u(results[0], sample_sheet, sample_id_col="SampleID", cohort_col="Cohort")

Citation

If you use HIDE-deconv, please cite the following preprint.

HIDE-Deconv: A hierarchical deconvolution framework for multiscale characterization of cellular remodeling

Dennis Voelkl, Sarah Bolz, Austin Rayford, Thomas Stevenson, Thomas Sterr, Malte Mensching-Buhr, Nicole Seifert, Julia Arp, Cornelia Schuster, Jana Tausche, Laurenz Engel, Helena U. Zacharias, Michael Altenbuchinger, Franziska Görter bioRxiv 2026.08.24.746754; doi: https://doi.org/10.64898/2026.08.24.746754


License

This project is licensed under the MIT License.


Contact

For questions, support or scientific collaboration:

  • Dennis Voelkl: dennis.k.voelkl(at)uib.no
  • Franziska Goertler: Franziska.Gortler(at)uib.no

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hide_deconv-0.3.2.tar.gz (67.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hide_deconv-0.3.2-py3-none-any.whl (94.9 kB view details)

Uploaded Python 3

File details

Details for the file hide_deconv-0.3.2.tar.gz.

File metadata

  • Download URL: hide_deconv-0.3.2.tar.gz
  • Upload date:
  • Size: 67.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hide_deconv-0.3.2.tar.gz
Algorithm Hash digest
SHA256 015d77e7e71dcc4d2ca285c001ed978598c20918692c55fded2b9df626edb95d
MD5 6acd9efd43b5d9eca3634cabd883ec2b
BLAKE2b-256 6d1ee72e74bdb0283ffb80b3b270924863273c33812a5a1117cc83f0f9f756a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for hide_deconv-0.3.2.tar.gz:

Publisher: publish_pypi.yml on dvoelkl/HIDE-deconv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hide_deconv-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: hide_deconv-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 94.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hide_deconv-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d9667ceab708dbaaa6efe2dd19acf25fb70577f20fe389ea5faa07054c943a14
MD5 d54a3df9eacbc8d1fd8c5cc37120a74b
BLAKE2b-256 253dc343e411d3abac3af59e01a5593ef0e62fc56b38ddca3a3d9c168d78f907

See more details on using hashes here.

Provenance

The following attestation bundles were made for hide_deconv-0.3.2-py3-none-any.whl:

Publisher: publish_pypi.yml on dvoelkl/HIDE-deconv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 files

0.3.1

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3.post1

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

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