bulkdgd is a Python package providing an interface to use the Deep Generative Decoder (DGD) to model the gene expression of healthy human tissues from bulk RNA-Seq data.
The first version of the DGD was developed in 2023 (Schuster and Krogh, 2023) and the first application of the model to bulk RNA-Seq data is presented in the work of Prada-Luengo, Schuster, Liang, and coworkers (Prada-Luego, Schuster, Liang, et al., 2023).
bulkdgd is a Python package, but it can be used directly from R without writing any Python code. For how to perform differential expression analysis using bulkdgd in R, see the R tutorial.
All the recount3 samples used to train and test the model were processed from raw files through the Monorail pipeline. If you have your own raw files, we recommend processing them through the same pipeline before using them with bulkdgd.
Quick install
pip install bulkdgd
The trained decoder's parameters (dec.pth, too large to distribute on PyPI) are downloaded automatically the first time you use the pre-trained model - see the installation instructions for details, including a manual-download fallback for offline machines.
Version 2.0.1
- The default pre-trained model has been updated (both the Gaussian mixture and the decoder's parameters), fixing a mismatch between the packaged model configuration and the previously-shipped decoder.
- The trained decoder's parameters (
dec.pth) are no longer distributed with the package or manually downloaded -bulkdgdnow downloads them automatically, once, the first time the pre-trained model is used.
Version 2.0.0 - major release
This is a major release superseding all previous versions of the package (previously named bulkDGD). Existing users should switch to it. The biggest changes compared to the previous version:
-
The package has been renamed from
bulkDGDtobulkdgd(the import name and CLI commands are unaffected, since they already used the lowercase form). -
The pre-trained model shipped by default has been retrained on GTEx data using a new Gaussian mixture model implementation (
tgmm) and a curated, smaller gene list, replacing the previous default model. -
Several CLI commands (
bulkdgd_train,bulkdgd_find_probdens,bulkdgd_find_representations) had a leftover bug from an earlier refactor that made them fail immediately on invocation - this has been fixed. -
All tutorials have been converted from standalone Python scripts into executed Jupyter notebooks, and a new tutorial covers downloading and preparing samples from Recount3.
-
The documentation has been substantially overhauled: broken API cross-references, outdated installation instructions, and missing CLI usage examples have all been fixed, and the docs now build cleanly with no warnings.
-
Documentation:
bulkdgd's documentation can be found here. -
Bug reports: please report any bugs or problems you encounter with
bulkdgdin the dedicated issues section on GitHub.
License
bulkdgd is freely available under the terms of the GNU General Public License (Version 3, 29 June 2007).
References
(Schuster and Krogh, 2023) Schuster, Viktoria, and Anders Krogh. "The Deep Generative Decoder: MAP estimation of representations improves modelling of single-cell RNA data." Bioinformatics 39.9 (2023): btad497.
(Prada-Luengo, Schuster, Liang, et al., 2023) Prada-Luengo, Iñigo, et al. "N-of-one differential gene expression without control samples using a deep generative model." Genome Biology 24.1 (2023): 263.
Metadata
Release files for bulkdgd 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bulkdgd-2.0.1.tar.gz | 269.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bulkdgd-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 592.5 kB
Release files / bulkdgd-2.0.1.tar.gz
| Download URL | bulkdgd-2.0.1.tar.gz |
|---|---|
| Size | 269.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
61897b0d67bf0d658b2beb13d7daed2841fb6cef8bc4f586ee2858614859004b
|
|
BLAKE2b-256 checksum How to use checksums |
088ca191fb51fd10d777d032cc5386e4a181e7bb5f95e33cf573f05ef47d0d6e
|
| 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 Jul 8, 2026.
Transparency logRelease files / bulkdgd-2.0.1-py3-none-any.whl
| Download URL | bulkdgd-2.0.1-py3-none-any.whl |
|---|---|
| Size | 323.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e0822cb0a01abb559c26b96d1ced393245de38f0ae65c79d5c53c0a3c86e110a
|
|
BLAKE2b-256 checksum How to use checksums |
855ad254b8f279d702718bc3175af9a9a9a2d2a54930aef5f16a7b26951b0322
|
| 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 Jul 8, 2026.
Transparency log