Loading...
Loading...
Turn bulk RNA-seq cohorts into synthetic single-cell datasets using omicverse's Bulk2Single workflow for cell fraction estimation, beta-VAE generation, and quality control comparisons against reference scRNA-seq.
npx skill4agent add starlitnightly/omicverse bulk-rna-seq-deconvolution-with-bulk2singlet_bulk2single.ipynbomicverse as ovscanpy as scscvelo as scvanndatamatplotlib.pyplot as pltov.plot_set()ov.read(...)ov.utils.read(...)ov.bulk.Matrix_ID_mapping(<df>, 'genesets/pair_GRCm39.tsv')scv.datasets.dentategyrus()adata.obs['clusters']ov.bulk2single.Bulk2Single(bulk_data=bulk_df, single_data=adata, celltype_key='clusters', bulk_group=['dg_d_1', 'dg_d_2', 'dg_d_3'], top_marker_num=200, ratio_num=1, gpu=0)gpu=-1bulk_groupmodel.predicted_fraction()df.to_csv(...)model.bulk_preprocess_lazy()model.single_preprocess_lazy()model.prepare_input()model.train(batch_size=512, learning_rate=1e-4, hidden_size=256, epoch_num=3500, vae_save_dir='...', vae_save_name='dg_vae', generate_save_dir='...', generate_save_name='dg')patiencemodel.load('.../dg_vae.pth')model.plot_loss()model.generate()model.filtered(generate_adata, leiden_size=25).write_h5adobsm['X_pca']ov.bulk2single.bulk2single_plot_cellprop(...)ov.bulk2single.bulk2single_plot_correlation(single_data, generate_adata, celltype_key='clusters')generate_adata.obsm['X_mde'] = ov.utils.mde(generate_adata.obsm['X_pca'])ov.utils.embedding(..., color=['clusters'], palette=ov.utils.pyomic_palette())top_marker_numbulk_groupgput_bulk2single.ipynbomicverse_guide/docs/Tutorials-bulk2single/data/reference.md