bulk-to-single-deconvolution_skill

This skill reconstructs single-cell profiles from bulk RNA-seq using Bulk2Single, trains a beta-VAE, and benchmarks against reference scRNA-seq.
  • Python

866

GitHub Stars

2

Bundled Files

2 months ago

Catalog Refreshed

4 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill starlitnightly/omicverse --skill bulk-to-single-deconvolution

  • reference.md1.9 KB
  • SKILL.md4.9 KB

Overview

This skill turns bulk RNA-seq cohorts into synthetic single-cell datasets using omicverse's Bulk2Single workflow. It combines cell-fraction estimation, beta-VAE generation, and quality-control comparisons against a matched reference scRNA-seq atlas. The output is an AnnData object of generated cells plus plots and tables for benchmarking and downstream analysis.

How this skill works

The workflow first harmonises gene identifiers and estimates sample-wise cell fractions from bulk counts using an integrated deconvolution estimator. It then aligns features between bulk and reference single-cell data, trains a beta-variational autoencoder to generate per-cell expression profiles, and filters low-quality synthetic cells. Final steps produce composition plots, correlation heatmaps, and embeddings to compare generated profiles to the reference atlas.

When to use it

  • You have bulk RNA-seq from heterogeneous tissue and a matched scRNA-seq reference atlas.
  • You want per-sample synthetic single-cell profiles for downstream single-cell pipelines.
  • You need cell-type proportion estimates for cohort-level reporting.
  • You plan to benchmark synthetic data quality against a known single-cell reference.
  • You want to augment limited single-cell data with generated cells for method testing.

Best practices

  • Provide raw counts for both bulk and reference single-cell data to allow the lazy preprocessing steps to run correctly.
  • Confirm bulk_group names match the column IDs in your bulk matrix before initialising the model.
  • Start training on GPU (gpu set to a CUDA device) to reduce run time; use gpu=-1 only for CPU runs.
  • Save intermediate outputs (fraction table, trained VAE weights, generated AnnData) to enable resuming and reproducibility.
  • If marker selection fails, increase top_marker_num or supply a curated marker list to improve alignment.

Example use cases

  • Estimate cell fractions for PDAC bulk replicates and generate synthetic single cells for cell-type-specific differential expression.
  • Load pre-trained Bulk2Single weights to quickly regenerate and benchmark cells against the dentate gyrus atlas.
  • Create composition plots and correlation heatmaps to validate how closely generated cells match reference clusters.
  • Filter noisy generated cells and export a filtered AnnData for downstream trajectory or RNA-velocity analyses.

FAQ

Yes, set gpu=-1 to force CPU, but expect training to take substantially longer; use GPU when available.

What if bulk_group names do not match my matrix columns?

Double-check and correct bulk_group to match column IDs in the bulk count table; misalignment causes errors in fraction estimation and downstream steps.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational