Skip to main content

No project description provided

Project description

SynOmicsBench

DOI CI Documentation License: MIT Python 3.12+

SynOmicsBench is a unified benchmarking framework for synthetic data generation (SDG) for clinical transcriptomic cancer cohorts.

Achieving a trade-off between biological utility and patient privacy is critical for secure data sharing when applying transcriptomic clinical datasets to artificial intelligence in precision oncology. Here, we present the SynOmicsBench framework. SynOmicsBench combines standardized preprocessing with multidimensional evaluation, prioritizing downstream biological validation alongside statistical fidelity and attack-based privacy assessment. This work provides a reproducible decision-support tool for method selection and promotes biologically informed, privacy-aware adoption of synthetic data in precision oncology.


🔬 Framework Overview

Framework Overview

SynOmicsBench compares synthetic data generation methods using a standardized pipeline that combines:

  • Standardized Preprocessing: Automated data filtering, harmonization, and integration.
  • Multidimensional Evaluation: Assessing Statistical Fidelity, Downstream Biological Utility, and Privacy Risk.
  • State-of-the-Art SDG Methods: Native support for CTGAN, TVAE, Gaussian Copula, Synthpop, and Avatars (K5/K10).

🛠 Installation

SynOmicsBench can be installed in three different ways depending on your environment. Python 3.12+ is required.

Option 1: From PyPI (Recommended)

pip install synomicsbench

Option 2: From Source (GitHub)

We recommend using uv for fast, reliable dependency management. This method uses the provided uv.lock file to ensure reproducible installations.

git clone https://github.com/trinhthechuong/SynOmicsBench.git
cd SynOmicsBench

# With uv (Fastest)
uv sync
source .venv/bin/activate

# Or with traditional pip
pip install -e .

Option 3: Pre-built Container (Apptainer/Singularity)

For HPC environments or reproducible workflows, you can pull our fully prepared Apptainer container which contains all dependencies (including heavy ML frameworks and R):

# Pull the latest SynOmicsBench container
apptainer pull synomicsbench.sif oras://ghcr.io/trinhthechuong/synomicsbench:latest

# Verify the container is working and the package is ready
apptainer exec synomicsbench.sif python -c "import synomicsbench; print('OK: SynOmicsBench is ready!')"

(To use the container for your scripts, simply mount your directories via --bind and run your Python scripts using apptainer exec)


🚀 Quick Start

Here is a brief example of how to generate synthetic data with Gaussian Copula and evaluate its statistical fidelity:

import pandas as pd
from synomicsbench.synthesizer.GaussianCopulasynthesizer import GaussianCopulasynthesizer
from synomicsbench.processing.metadata import MetaData
from synomicsbench.metrics.fidelity.UnivariateSimilarity import UnivariateSimilarity 

# 1. Load Data & Prepare Metadata
original_data = pd.read_csv("your_clinical_transcriptomic_data.csv")
ordinal_features = ["Mstage", "Tx_Start_ECOG", "numPriorTherapies"]
metadata = MetaData.get_metadata(data=original_data, ordinal_features=ordinal_features)

# 2. Generate Synthetic Data
synth = GaussianCopulasynthesizer(output_path="./results", metadata=metadata)
synthetic_data = synth.generate(
    data=original_data, 
    n_samples=original_data.shape[0]
)

# 3. Evaluate Fidelity
evaluator = UnivariateSimilarity(output_dir="./evaluation_results")
score = evaluator.get_univariate_score(
    original_data=original_data, 
    synthetic_data=synthetic_data, 
    metadata=metadata, 
    save=True
)
print(f"Overall Fidelity Score: {score:.4f}")

📚 Documentation

For complete API references, tutorials, and full benchmarking results, check out the SynOmicsBench Official Documentation:


📝 Citation

If you use SynOmicsBench in your research, please cite:

Trinh, T. C., Woillard, J. B., Uguzzoni, G., & Battail, C. (2024). A unified benchmark of synthetic data generation for clinical and transcriptomic cancer data. (Manuscript in preparation)

📄 License

This project is open-sourced under the MIT License.

Project details


Download files

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

Source Distribution

synomicsbench-1.0.1.tar.gz (284.8 kB view details)

Uploaded Source

Built Distribution

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

synomicsbench-1.0.1-py3-none-any.whl (104.7 kB view details)

Uploaded Python 3

File details

Details for the file synomicsbench-1.0.1.tar.gz.

File metadata

  • Download URL: synomicsbench-1.0.1.tar.gz
  • Upload date:
  • Size: 284.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for synomicsbench-1.0.1.tar.gz
Algorithm Hash digest
SHA256 aa93e61c9ffd7782b48ec342c52dd775f60c2dfde18150a16394737bf7ecdb2d
MD5 4657d2ae890c5dc34330e6714f7f62a3
BLAKE2b-256 787401786e47e0ff423a541dd033444430a302e058b95251b2977091228a7e3a

See more details on using hashes here.

File details

Details for the file synomicsbench-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: synomicsbench-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 104.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for synomicsbench-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d3d5754d3e745176c68e681097fc438936fd410fab3177eb096050393e97b88e
MD5 a7089595c2a22aefabcd6a64f3d23dbb
BLAKE2b-256 e03170b1803852f246f7c578dd00a2b97c6b9ddaa552bd8bd280416b9136dc98

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page