Remove ambient RNA with CellBender

Remove ambient RNA with CellBender#

Despite the progress in the optimization and standardiyation of droplet-based single-cell omics protocols like single cell/nuclei RNA-seq (sc/snRNAseq), these experiments are not exempt from systematic biases and background noise. In snRNAseq ambient RNA can cause an overestimation of the expression of some genes. To tackle these biases there are computational tools like CellBender which allow to correct for the presence of this ambient RNA.

We have implemented a method to run CellBender in the DOTools_py package. Currently, the implementation supports the analysis of samples processed with CellRanger.

# Set-Up
import dotools_py as do
do.dt.example_10x(path="/home/drodriguez/DOTools_py/example_10X")
2025-06-13 14:57:07,085 - Downloading data to /home/drodriguez/DOTools_py/example_10X
do.pp.run_cellbender(
    cellranger_path="/home/drodriguez/DOTools_py/example_10X",  # Contains subfolders for every sample map with CellRanger
    output_path="/home/drodriguez/DOTools_py/cellbender",  # Save the output files from CellBender
    samplenames=["healthy", "disease"],  # Name of subfolders, if not specified detected automatically
    cuda=True,  # Run on GPU !!Recommended (Can take up to 1 hour)
    cpu_threads=20,  # If not GPU available, control how many CPUs to use
    epochs=150,  # Default is enough
    lr=0.00001,  # Learning Rate
    log=True,  # Generates a log file for each sample with the stdout
)
2025-06-13 14:57:12,200 - Conda environment with CellBender available using (/home/drodriguez/.venv/cellbender)
2025-06-13 14:57:12,201 - Running cellbender for 2 samples
2025-06-13 14:57:12,203 - Running Cellbender for healthy, might take a while

cellbender:remove-background: Command:
cellbender remove-background --input=/home/drodriguez/DOTools_py/example_10X/healthy/outs/raw_feature_bc_matrix.h5 --output=/home/drodriguez/DOTools_py/cellbender/healthy_out.h5 --cpu-threads=20 --epochs=150 --learning-rate=1e-05 --force-cell-umi-prior=500 --cuda
cellbender:remove-background: CellBender 0.3.0
cellbender:remove-background: (Workflow hash 5673c87ca4)
cellbender:remove-background: 2025-06-13 14:57:25
cellbender:remove-background: Running remove-background
cellbender:remove-background: Loading data from /home/drodriguez/DOTools_py/example_10X/healthy/outs/raw_feature_bc_matrix.h5
cellbender:remove-background: CellRanger v3 format
cellbender:remove-background: Features in dataset: 17 Antibody Capture, 33538 Gene Expression
cellbender:remove-background: Trimming features for inference.
cellbender:remove-background: 22070 features have nonzero counts.
cellbender:remove-background: Prior on counts for cells is 500
cellbender:remove-background: Prior on counts for empty droplets is 295
cellbender:remove-background: Excluding 8175 features that are estimated to have <= 0.1 background counts in cells.
cellbender:remove-background: Including 13895 features in the analysis.
cellbender:remove-background: Trimming barcodes for inference.
cellbender:remove-background: Excluding barcodes with counts below 147
cellbender:remove-background: Using 4543 probable cell barcodes, plus an additional 9272 barcodes, and 65019 empty droplets.
cellbender:remove-background: Largest surely-empty droplet has 361 UMI counts.
cellbender:remove-background: Attempting to unpack tarball "ckpt.tar.gz" to /tmp/tmptivsjuy2
cellbender:remove-background: Successfully unpacked tarball to /tmp/tmptivsjuy2
/tmp/tmptivsjuy2/5673c87ca4_random.pyro
/tmp/tmptivsjuy2/5673c87ca4_optim.pyro
/tmp/tmptivsjuy2/5673c87ca4_random.cuda
/tmp/tmptivsjuy2/5673c87ca4_train.loaderstate
/tmp/tmptivsjuy2/5673c87ca4_optim.torch
/tmp/tmptivsjuy2/5673c87ca4_args.npy
/tmp/tmptivsjuy2/5673c87ca4_params.pyro
/tmp/tmptivsjuy2/5673c87ca4_test.loaderstate
/tmp/tmptivsjuy2/5673c87ca4_model.torch
/tmp/tmptivsjuy2/posterior.h5
cellbender:remove-background: Loaded partially-trained checkpoint from ckpt.tar.gz
cellbender:remove-background: Checkpoint loaded successfully.
cellbender:remove-background: Running inference...
cellbender:remove-background: 2025-06-13 14:57:41
cellbender:remove-background: Inference procedure complete.
cellbender:remove-background: Attempting to unpack tarball "ckpt.tar.gz" to /tmp/tmpqi4b_w69
cellbender:remove-background: Successfully unpacked tarball to /tmp/tmpqi4b_w69
/tmp/tmpqi4b_w69/5673c87ca4_random.pyro
/tmp/tmpqi4b_w69/5673c87ca4_optim.pyro
/tmp/tmpqi4b_w69/5673c87ca4_random.cuda
/tmp/tmpqi4b_w69/5673c87ca4_train.loaderstate
/tmp/tmpqi4b_w69/5673c87ca4_optim.torch
/tmp/tmpqi4b_w69/5673c87ca4_args.npy
/tmp/tmpqi4b_w69/5673c87ca4_params.pyro
/tmp/tmpqi4b_w69/5673c87ca4_test.loaderstate
/tmp/tmpqi4b_w69/5673c87ca4_model.torch
/tmp/tmpqi4b_w69/posterior.h5
cellbender:remove-background: Loaded pre-computed posterior from posterior.h5
cellbender:remove-background: 2025-06-13 14:57:52

cellbender:remove-background: Saved summary plots as /home/drodriguez/DOTools_py/cellbender/healthy_out.pdf
cellbender:remove-background: Saved cell barcodes in /home/drodriguez/DOTools_py/cellbender/healthy_out_cell_barcodes.csv
cellbender:remove-background: Computing target noise counts per gene for MCKP estimator
cellbender:remove-background: Using MCKP noise targets computed for FPR 0.01
cellbender:remove-background: Computing denoised counts using mckp estimator
cellbender:remove-background: Working on chunk (1/6)
cellbender:remove-background:     [1.30 mins per chunk]
cellbender:remove-background: Working on chunk (2/6)
cellbender:remove-background: Working on chunk (3/6)
cellbender:remove-background: Working on chunk (4/6)
cellbender:remove-background: Working on chunk (5/6)
cellbender:remove-background: Working on chunk (6/6)
cellbender:remove-background: 2025-06-13 15:05:57 Total MCKP estimation time = 456.11 sec
cellbender:remove-background: Succeeded in writing CellRanger format output to file /home/drodriguez/DOTools_py/cellbender/healthy_out.h5
cellbender:remove-background: Succeeded in writing CellRanger format output to file /home/drodriguez/DOTools_py/cellbender/healthy_out_filtered.h5
cellbender:remove-background: Saved output metrics as /home/drodriguez/DOTools_py/cellbender/healthy_out_metrics.csv
[NbConvertApp] Converting notebook tmp.report.ipynb to notebook
[NbConvertApp] Writing 549410 bytes to tmp.report.nbconvert.ipynb
[NbConvertApp] Converting notebook tmp.report.nbconvert.ipynb to html
[NbConvertApp] Writing 1124065 bytes to tmp.report.nbconvert.html
cellbender:remove-background: Succeeded in writing report to /home/drodriguez/DOTools_py/cellbender/healthy_out_report.html
cellbender:remove-background: Completed remove-background.
cellbender:remove-background: 2025-06-13 15:07:18


2025-06-13 15:07:21,158 - Running Cellbender for disease, might take a while

cellbender:remove-background: Command:
cellbender remove-background --input=/home/drodriguez/DOTools_py/example_10X/disease/outs/raw_feature_bc_matrix.h5 --output=/home/drodriguez/DOTools_py/cellbender/disease_out.h5 --cpu-threads=20 --epochs=150 --learning-rate=1e-05 --force-cell-umi-prior=500 --cuda
cellbender:remove-background: CellBender 0.3.0
cellbender:remove-background: (Workflow hash 1a031bf435)
cellbender:remove-background: 2025-06-13 15:07:32
cellbender:remove-background: Running remove-background
cellbender:remove-background: Loading data from /home/drodriguez/DOTools_py/example_10X/disease/outs/raw_feature_bc_matrix.h5
cellbender:remove-background: CellRanger v3 format
cellbender:remove-background: Features in dataset: 17 Antibody Capture, 33538 Gene Expression
cellbender:remove-background: Trimming features for inference.
cellbender:remove-background: 22506 features have nonzero counts.
cellbender:remove-background: Prior on counts for cells is 500
cellbender:remove-background: Prior on counts for empty droplets is 242
cellbender:remove-background: Excluding 9115 features that are estimated to have <= 0.1 background counts in cells.
cellbender:remove-background: Including 13391 features in the analysis.
cellbender:remove-background: Trimming barcodes for inference.
cellbender:remove-background: Excluding barcodes with counts below 121
cellbender:remove-background: Using 4752 probable cell barcodes, plus an additional 8930 barcodes, and 63826 empty droplets.
cellbender:remove-background: Largest surely-empty droplet has 281 UMI counts.
cellbender:remove-background: Attempting to unpack tarball "ckpt.tar.gz" to /tmp/tmpkixo4yu6
cellbender:remove-background: Successfully unpacked tarball to /tmp/tmpkixo4yu6
/tmp/tmpkixo4yu6/5673c87ca4_random.pyro
/tmp/tmpkixo4yu6/5673c87ca4_optim.pyro
/tmp/tmpkixo4yu6/5673c87ca4_random.cuda
/tmp/tmpkixo4yu6/5673c87ca4_train.loaderstate
/tmp/tmpkixo4yu6/5673c87ca4_optim.torch
/tmp/tmpkixo4yu6/5673c87ca4_args.npy
/tmp/tmpkixo4yu6/5673c87ca4_params.pyro
/tmp/tmpkixo4yu6/5673c87ca4_test.loaderstate
/tmp/tmpkixo4yu6/5673c87ca4_model.torch
/tmp/tmpkixo4yu6/posterior.h5
cellbender:remove-background: Workflow hash does not match that of checkpoint.
cellbender:remove-background: No checkpoint loaded.
cellbender:remove-background: Running inference...
cellbender:remove-background: [epoch 001]  average training loss: 14675.4961
cellbender:remove-background: [epoch 002]  average training loss: 14490.5131  (4.7 seconds per epoch)
cellbender:remove-background: Will checkpoint every 91 epochs
cellbender:remove-background: [epoch 003]  average training loss: 14039.4146
cellbender:remove-background: [epoch 004]  average training loss: 13771.4528
cellbender:remove-background: [epoch 005]  average training loss: 13474.8539
cellbender:remove-background: [epoch 005] average test loss: 12868.1458
cellbender:remove-background: [epoch 006]  average training loss: 12871.9274
cellbender:remove-background: [epoch 007]  average training loss: 12841.7673
cellbender:remove-background: [epoch 008]  average training loss: 12514.1400
cellbender:remove-background: [epoch 009]  average training loss: 11788.6217
cellbender:remove-background: [epoch 010]  average training loss: 10988.7980
cellbender:remove-background: [epoch 010] average test loss: 10102.7906
cellbender:remove-background: [epoch 011]  average training loss: 10143.1838
cellbender:remove-background: [epoch 012]  average training loss: 9148.1344
cellbender:remove-background: [epoch 013]  average training loss: 7902.3890
cellbender:remove-background: [epoch 014]  average training loss: 6616.5984
cellbender:remove-background: [epoch 015]  average training loss: 5583.7710
cellbender:remove-background: [epoch 015] average test loss: 5690.0969
cellbender:remove-background: [epoch 016]  average training loss: 4985.9471
cellbender:remove-background: [epoch 017]  average training loss: 4201.4002
cellbender:remove-background: [epoch 018]  average training loss: 3723.4908
cellbender:remove-background: [epoch 019]  average training loss: 3432.2938
cellbender:remove-background: [epoch 020]  average training loss: 3355.3272
cellbender:remove-background: [epoch 020] average test loss: 3053.1523
cellbender:remove-background: [epoch 021]  average training loss: 3016.5788
cellbender:remove-background: [epoch 022]  average training loss: 2994.8024
cellbender:remove-background: [epoch 023]  average training loss: 2882.1518
cellbender:remove-background: [epoch 024]  average training loss: 2920.7040
cellbender:remove-background: [epoch 025]  average training loss: 2861.6916
cellbender:remove-background: [epoch 025] average test loss: 2933.0195
cellbender:remove-background: [epoch 026]  average training loss: 2845.1217
cellbender:remove-background: [epoch 027]  average training loss: 2758.0074
cellbender:remove-background: [epoch 028]  average training loss: 2710.4002
cellbender:remove-background: [epoch 029]  average training loss: 2722.9999
cellbender:remove-background: [epoch 030]  average training loss: 2715.0827
cellbender:remove-background: [epoch 030] average test loss: 2748.7761
cellbender:remove-background: [epoch 031]  average training loss: 2711.5582
cellbender:remove-background: [epoch 032]  average training loss: 2678.6040
cellbender:remove-background: [epoch 033]  average training loss: 2696.1657
cellbender:remove-background: [epoch 034]  average training loss: 2689.7411
cellbender:remove-background: [epoch 035]  average training loss: 2653.3561
cellbender:remove-background: [epoch 035] average test loss: 2777.5538
cellbender:remove-background: [epoch 036]  average training loss: 2699.3424
cellbender:remove-background: [epoch 037]  average training loss: 2647.4676
cellbender:remove-background: [epoch 038]  average training loss: 2644.5446
cellbender:remove-background: [epoch 039]  average training loss: 2636.4302
cellbender:remove-background: [epoch 040]  average training loss: 2644.4302
cellbender:remove-background: [epoch 040] average test loss: 2680.5927
cellbender:remove-background: [epoch 041]  average training loss: 2620.9037
cellbender:remove-background: [epoch 042]  average training loss: 2636.2525
cellbender:remove-background: [epoch 043]  average training loss: 2621.0014
cellbender:remove-background: [epoch 044]  average training loss: 2618.7684
cellbender:remove-background: [epoch 045]  average training loss: 2626.9548
cellbender:remove-background: [epoch 045] average test loss: 2606.0099
cellbender:remove-background: [epoch 046]  average training loss: 2620.6097
cellbender:remove-background: [epoch 047]  average training loss: 2616.1139
cellbender:remove-background: [epoch 048]  average training loss: 2607.7391
cellbender:remove-background: [epoch 049]  average training loss: 2607.1614
cellbender:remove-background: [epoch 050]  average training loss: 2591.2068
cellbender:remove-background: [epoch 050] average test loss: 2658.7587
cellbender:remove-background: [epoch 051]  average training loss: 2591.8224
cellbender:remove-background: [epoch 052]  average training loss: 2617.1158
cellbender:remove-background: [epoch 053]  average training loss: 2585.5146
cellbender:remove-background: [epoch 054]  average training loss: 2602.0190
cellbender:remove-background: [epoch 055]  average training loss: 2581.4484
cellbender:remove-background: [epoch 055] average test loss: 2597.3115
cellbender:remove-background: [epoch 056]  average training loss: 2592.6557
cellbender:remove-background: [epoch 057]  average training loss: 2575.7670
cellbender:remove-background: [epoch 058]  average training loss: 2555.5110
cellbender:remove-background: [epoch 059]  average training loss: 2575.8215
cellbender:remove-background: [epoch 060]  average training loss: 2551.8436
cellbender:remove-background: [epoch 060] average test loss: 2600.3903
cellbender:remove-background: [epoch 061]  average training loss: 2565.4564
cellbender:remove-background: [epoch 062]  average training loss: 2564.2613
cellbender:remove-background: [epoch 063]  average training loss: 2558.0774
cellbender:remove-background: [epoch 064]  average training loss: 2557.3271
cellbender:remove-background: [epoch 065]  average training loss: 2559.4135
cellbender:remove-background: [epoch 065] average test loss: 2560.8180
cellbender:remove-background: [epoch 066]  average training loss: 2549.5699
cellbender:remove-background: [epoch 067]  average training loss: 2567.8444
cellbender:remove-background: [epoch 068]  average training loss: 2557.8728
cellbender:remove-background: [epoch 069]  average training loss: 2556.0852
cellbender:remove-background: [epoch 070]  average training loss: 2533.2780
cellbender:remove-background: [epoch 070] average test loss: 2560.1339
cellbender:remove-background: [epoch 071]  average training loss: 2540.5296
cellbender:remove-background: [epoch 072]  average training loss: 2558.8281
cellbender:remove-background: [epoch 073]  average training loss: 2537.1853
cellbender:remove-background: [epoch 074]  average training loss: 2533.1375
cellbender:remove-background: [epoch 075]  average training loss: 2543.2141
cellbender:remove-background: [epoch 075] average test loss: 2600.6733
cellbender:remove-background: [epoch 076]  average training loss: 2538.7016
cellbender:remove-background: [epoch 077]  average training loss: 2524.9003
cellbender:remove-background: [epoch 078]  average training loss: 2535.6812
cellbender:remove-background: [epoch 079]  average training loss: 2538.3645
cellbender:remove-background: [epoch 080]  average training loss: 2531.1799
cellbender:remove-background: [epoch 080] average test loss: 2555.2675
cellbender:remove-background: [epoch 081]  average training loss: 2539.0727
cellbender:remove-background: [epoch 082]  average training loss: 2538.6352
cellbender:remove-background: [epoch 083]  average training loss: 2519.8349
cellbender:remove-background: [epoch 084]  average training loss: 2529.3971
cellbender:remove-background: [epoch 085]  average training loss: 2522.0476
cellbender:remove-background: [epoch 085] average test loss: 2555.5874
cellbender:remove-background: [epoch 086]  average training loss: 2538.0106
cellbender:remove-background: [epoch 087]  average training loss: 2524.6542
cellbender:remove-background: [epoch 088]  average training loss: 2524.0840
cellbender:remove-background: [epoch 089]  average training loss: 2526.2146
cellbender:remove-background: [epoch 090]  average training loss: 2524.4007
cellbender:remove-background: [epoch 090] average test loss: 2578.4325
cellbender:remove-background: [epoch 091]  average training loss: 2523.3172
cellbender:remove-background: Saving a checkpoint...
cellbender:remove-background: Saved checkpoint as /home/drodriguez/DOTools_py/cellbender/ckpt.tar.gz
cellbender:remove-background: [epoch 092]  average training loss: 2512.0225
cellbender:remove-background: [epoch 093]  average training loss: 2518.2174
cellbender:remove-background: [epoch 094]  average training loss: 2525.2599
cellbender:remove-background: [epoch 095]  average training loss: 2520.2310
cellbender:remove-background: [epoch 095] average test loss: 2542.4735
cellbender:remove-background: [epoch 096]  average training loss: 2517.7839
cellbender:remove-background: [epoch 097]  average training loss: 2520.2297
cellbender:remove-background: [epoch 098]  average training loss: 2521.3456
cellbender:remove-background: [epoch 099]  average training loss: 2509.0524
cellbender:remove-background: [epoch 100]  average training loss: 2517.8621
cellbender:remove-background: [epoch 100] average test loss: 2560.4585
cellbender:remove-background: [epoch 101]  average training loss: 2515.9401
cellbender:remove-background: [epoch 102]  average training loss: 2504.5356
cellbender:remove-background: [epoch 103]  average training loss: 2501.9461
cellbender:remove-background: [epoch 104]  average training loss: 2512.7085
cellbender:remove-background: [epoch 105]  average training loss: 2514.4698
cellbender:remove-background: [epoch 105] average test loss: 2513.5580
cellbender:remove-background: [epoch 106]  average training loss: 2515.8715
cellbender:remove-background: [epoch 107]  average training loss: 2502.9431
cellbender:remove-background: [epoch 108]  average training loss: 2504.1568
cellbender:remove-background: [epoch 109]  average training loss: 2503.7768
cellbender:remove-background: [epoch 110]  average training loss: 2499.8160
cellbender:remove-background: [epoch 110] average test loss: 2528.5352
cellbender:remove-background: [epoch 111]  average training loss: 2499.2512
cellbender:remove-background: [epoch 112]  average training loss: 2508.2677
cellbender:remove-background: [epoch 113]  average training loss: 2519.1829
cellbender:remove-background: [epoch 114]  average training loss: 2501.4045
cellbender:remove-background: [epoch 115]  average training loss: 2503.4466
cellbender:remove-background: [epoch 115] average test loss: 2530.2219
cellbender:remove-background: [epoch 116]  average training loss: 2500.8125
cellbender:remove-background: [epoch 117]  average training loss: 2500.9446
cellbender:remove-background: [epoch 118]  average training loss: 2497.3014
cellbender:remove-background: [epoch 119]  average training loss: 2503.9538
cellbender:remove-background: [epoch 120]  average training loss: 2499.7071
cellbender:remove-background: [epoch 120] average test loss: 2537.5837
cellbender:remove-background: [epoch 121]  average training loss: 2501.3804
cellbender:remove-background: [epoch 122]  average training loss: 2509.4123
cellbender:remove-background: [epoch 123]  average training loss: 2495.6759
cellbender:remove-background: [epoch 124]  average training loss: 2509.9991
cellbender:remove-background: [epoch 125]  average training loss: 2508.1714
cellbender:remove-background: [epoch 125] average test loss: 2539.3242
cellbender:remove-background: [epoch 126]  average training loss: 2508.7657
cellbender:remove-background: [epoch 127]  average training loss: 2506.5331
cellbender:remove-background: [epoch 128]  average training loss: 2508.9993
cellbender:remove-background: [epoch 129]  average training loss: 2497.9317
cellbender:remove-background: [epoch 130]  average training loss: 2500.6010
cellbender:remove-background: [epoch 130] average test loss: 2548.7130
cellbender:remove-background: [epoch 131]  average training loss: 2512.7220
cellbender:remove-background: [epoch 132]  average training loss: 2508.0341
cellbender:remove-background: [epoch 133]  average training loss: 2506.6236
cellbender:remove-background: [epoch 134]  average training loss: 2503.3845
cellbender:remove-background: [epoch 135]  average training loss: 2504.5293
cellbender:remove-background: [epoch 135] average test loss: 2537.1576
cellbender:remove-background: [epoch 136]  average training loss: 2504.8164
cellbender:remove-background: [epoch 137]  average training loss: 2504.0483
cellbender:remove-background: [epoch 138]  average training loss: 2505.2359
cellbender:remove-background: [epoch 139]  average training loss: 2508.4061
cellbender:remove-background: [epoch 140]  average training loss: 2512.9184
cellbender:remove-background: [epoch 140] average test loss: 2530.3597
cellbender:remove-background: [epoch 141]  average training loss: 2498.0776
cellbender:remove-background: [epoch 142]  average training loss: 2506.4781
cellbender:remove-background: [epoch 143]  average training loss: 2501.5357
cellbender:remove-background: [epoch 144]  average training loss: 2505.5651
cellbender:remove-background: [epoch 145]  average training loss: 2499.9594
cellbender:remove-background: [epoch 145] average test loss: 2584.0798
cellbender:remove-background: [epoch 146]  average training loss: 2504.8437
cellbender:remove-background: [epoch 147]  average training loss: 2503.1130
cellbender:remove-background: [epoch 148]  average training loss: 2501.8161
cellbender:remove-background: [epoch 149]  average training loss: 2497.3107
cellbender:remove-background: [epoch 150]  average training loss: 2508.8329
cellbender:remove-background: [epoch 150] average test loss: 2530.2059
cellbender:remove-background: Saving a checkpoint...
cellbender:remove-background: Saved checkpoint as /home/drodriguez/DOTools_py/cellbender/ckpt.tar.gz
cellbender:remove-background: 2025-06-13 15:21:15
cellbender:remove-background: Inference procedure complete.
cellbender:remove-background: Attempting to unpack tarball "ckpt.tar.gz" to /tmp/tmp627kh6lp
cellbender:remove-background: Successfully unpacked tarball to /tmp/tmp627kh6lp
/tmp/tmp627kh6lp/1a031bf435_optim.torch
/tmp/tmp627kh6lp/1a031bf435_optim.pyro
/tmp/tmp627kh6lp/1a031bf435_params.pyro
/tmp/tmp627kh6lp/1a031bf435_random.pyro
/tmp/tmp627kh6lp/1a031bf435_random.cuda
/tmp/tmp627kh6lp/1a031bf435_model.torch
/tmp/tmp627kh6lp/1a031bf435_train.loaderstate
/tmp/tmp627kh6lp/1a031bf435_args.npy
/tmp/tmp627kh6lp/1a031bf435_test.loaderstate
cellbender:remove-background: Posterior not currently included in checkpoint.
cellbender:remove-background: Computing posterior noise count probabilities in mini-batches.
cellbender:remove-background: Working on chunk (1/87)
cellbender:remove-background:     [0.03 mins per chunk]
cellbender:remove-background: Working on chunk (2/87)
cellbender:remove-background: Working on chunk (3/87)
cellbender:remove-background: Working on chunk (4/87)
cellbender:remove-background: Working on chunk (5/87)
cellbender:remove-background: Working on chunk (6/87)
cellbender:remove-background: Working on chunk (7/87)
cellbender:remove-background: Working on chunk (8/87)
cellbender:remove-background: Working on chunk (9/87)
cellbender:remove-background: Working on chunk (10/87)
cellbender:remove-background: Working on chunk (11/87)
cellbender:remove-background: Working on chunk (12/87)
cellbender:remove-background: Working on chunk (13/87)
cellbender:remove-background: Working on chunk (14/87)
cellbender:remove-background: Working on chunk (15/87)
cellbender:remove-background: Working on chunk (16/87)
cellbender:remove-background: Working on chunk (17/87)
cellbender:remove-background: Working on chunk (18/87)
cellbender:remove-background: Working on chunk (19/87)
cellbender:remove-background: Working on chunk (20/87)
cellbender:remove-background: Working on chunk (21/87)
cellbender:remove-background: Working on chunk (22/87)
cellbender:remove-background: Working on chunk (23/87)
cellbender:remove-background: Working on chunk (24/87)
cellbender:remove-background: Working on chunk (25/87)
cellbender:remove-background: Working on chunk (26/87)
cellbender:remove-background: Working on chunk (27/87)
cellbender:remove-background: Working on chunk (28/87)
cellbender:remove-background: Working on chunk (29/87)
cellbender:remove-background: Working on chunk (30/87)
cellbender:remove-background: Working on chunk (31/87)
cellbender:remove-background: Working on chunk (32/87)
cellbender:remove-background: Working on chunk (33/87)
cellbender:remove-background: Working on chunk (34/87)
cellbender:remove-background: Working on chunk (35/87)
cellbender:remove-background: Working on chunk (36/87)
cellbender:remove-background: Working on chunk (37/87)
cellbender:remove-background: Working on chunk (38/87)
cellbender:remove-background: Working on chunk (39/87)
cellbender:remove-background: Working on chunk (40/87)
cellbender:remove-background: Working on chunk (41/87)
cellbender:remove-background: Working on chunk (42/87)
cellbender:remove-background: Working on chunk (43/87)
cellbender:remove-background: Working on chunk (44/87)
cellbender:remove-background: Working on chunk (45/87)
cellbender:remove-background: Working on chunk (46/87)
cellbender:remove-background: Working on chunk (47/87)
cellbender:remove-background: Working on chunk (48/87)
cellbender:remove-background: Working on chunk (49/87)
cellbender:remove-background: Working on chunk (50/87)
cellbender:remove-background: Working on chunk (51/87)
cellbender:remove-background: Working on chunk (52/87)
cellbender:remove-background: Working on chunk (53/87)
cellbender:remove-background: Working on chunk (54/87)
cellbender:remove-background: Working on chunk (55/87)
cellbender:remove-background: Working on chunk (56/87)
cellbender:remove-background: Working on chunk (57/87)
cellbender:remove-background: Working on chunk (58/87)
cellbender:remove-background: Working on chunk (59/87)
cellbender:remove-background: Working on chunk (60/87)
cellbender:remove-background: Working on chunk (61/87)
cellbender:remove-background: Working on chunk (62/87)
cellbender:remove-background: Working on chunk (63/87)
cellbender:remove-background: Working on chunk (64/87)
cellbender:remove-background: Working on chunk (65/87)
cellbender:remove-background: Working on chunk (66/87)
cellbender:remove-background: Working on chunk (67/87)
cellbender:remove-background: Working on chunk (68/87)
cellbender:remove-background: Working on chunk (69/87)
cellbender:remove-background: Working on chunk (70/87)
cellbender:remove-background: Working on chunk (71/87)
cellbender:remove-background: Working on chunk (72/87)
cellbender:remove-background: Working on chunk (73/87)
cellbender:remove-background: Working on chunk (74/87)
cellbender:remove-background: Working on chunk (75/87)
cellbender:remove-background: Working on chunk (76/87)
cellbender:remove-background: Working on chunk (77/87)
cellbender:remove-background: Working on chunk (78/87)
cellbender:remove-background: Working on chunk (79/87)
cellbender:remove-background: Working on chunk (80/87)
cellbender:remove-background: Working on chunk (81/87)
cellbender:remove-background: Working on chunk (82/87)
cellbender:remove-background: Working on chunk (83/87)
cellbender:remove-background: Working on chunk (84/87)
cellbender:remove-background: Working on chunk (85/87)
cellbender:remove-background: Working on chunk (86/87)
cellbender:remove-background: Working on chunk (87/87)
cellbender:remove-background: Writing full posterior to /home/drodriguez/DOTools_py/cellbender/disease_out_posterior.h5
cellbender:remove-background: Succeeded in writing posterior to file /home/drodriguez/DOTools_py/cellbender/disease_out_posterior.h5
cellbender:remove-background: Added posterior object to checkpoint file.
cellbender:remove-background: 2025-06-13 15:25:46

cellbender:remove-background: Saved summary plots as /home/drodriguez/DOTools_py/cellbender/disease_out.pdf
cellbender:remove-background: Saved cell barcodes in /home/drodriguez/DOTools_py/cellbender/disease_out_cell_barcodes.csv
cellbender:remove-background: Computing target noise counts per gene for MCKP estimator
cellbender:remove-background: Using MCKP noise targets computed for FPR 0.01
cellbender:remove-background: Computing denoised counts using mckp estimator
cellbender:remove-background: Working on chunk (1/6)
cellbender:remove-background:     [1.17 mins per chunk]
cellbender:remove-background: Working on chunk (2/6)
cellbender:remove-background: Working on chunk (3/6)
cellbender:remove-background: Working on chunk (4/6)
cellbender:remove-background: Working on chunk (5/6)
cellbender:remove-background: Working on chunk (6/6)
cellbender:remove-background: 2025-06-13 15:33:06 Total MCKP estimation time = 412.85 sec
cellbender:remove-background: Succeeded in writing CellRanger format output to file /home/drodriguez/DOTools_py/cellbender/disease_out.h5
cellbender:remove-background: Succeeded in writing CellRanger format output to file /home/drodriguez/DOTools_py/cellbender/disease_out_filtered.h5
cellbender:remove-background: Saved output metrics as /home/drodriguez/DOTools_py/cellbender/disease_out_metrics.csv
[NbConvertApp] Converting notebook tmp.report.ipynb to notebook
[NbConvertApp] Writing 482531 bytes to tmp.report.nbconvert.ipynb
[NbConvertApp] Converting notebook tmp.report.nbconvert.ipynb to html
[NbConvertApp] Writing 1057186 bytes to tmp.report.nbconvert.html
cellbender:remove-background: Succeeded in writing report to /home/drodriguez/DOTools_py/cellbender/disease_out_report.html
cellbender:remove-background: Completed remove-background.
cellbender:remove-background: 2025-06-13 15:34:24


2025-06-13 15:34:27,709 - Finished running cellbender

After running the analysis we have several files in the output_folder, including a report file where we can check if there was a problem when running cellbender, a log file for each sample and a commands_Cellbender.txt file with the exact call used to run cellbender. We can now use the H5 files with ambient RNA correction for downstream analysis

import session_info

session_info.show(na=False, cpu=True, excludes=["backports"], std_lib=True, dependencies=True, html=True)
Click to view session information
-----
dotools_py          0.0.1
session_info        v1.0.1
sys                 3.10.16 (main, Dec 11 2024, 10:22:29) [Clang 14.0.6 ]
-----
Click to view modules imported as dependencies
Cython                      3.0.12
PIL                         11.2.1
adjustText                  1.3.0
anndata                     0.11.4
appnope                     0.1.2
argparse                    1.1
arrow                       1.3.0
attr                        25.3.0
attrs                       25.3.0
babel                       2.16.0
bbknn                       1.6.0
brotli                      1.0.9
celltypist                  1.6.3
certifi                     2025.04.26
cffi                        1.17.1
chardet                     4.0.0
charset_normalizer          3.3.2
cloudpickle                 3.1.1
comm                        0.2.1
csv                         1.0
ctypes                      1.1.0
cycler                      0.12.1
cython                      3.0.12
dask                        2024.11.2
dateutil                    2.9.0.post0
debugpy                     1.8.11
decimal                     1.70
decorator                   5.1.1
defusedxml                  0.7.1
distutils                   3.10.16
doubletdetection            4.3
exceptiongroup              1.2.0
executing                   0.8.3
formulaic                   1.1.1
formulaic_contrasts         1.0.0
gseapy                      1.1.8
h5py                        3.13.0
idna                        3.7
igraph                      0.11.8
interface_meta              1.3.0
ipaddress                   1.0
ipykernel                   6.29.5
ipywidgets                  8.1.7
jedi                        0.19.2
jinja2                      3.1.6
joblib                      1.4.2
json                        2.0.9
json5                       0.9.25
jsonpointer                 2.1
jsonschema                  4.23.0
jupyter_events              0.12.0
jupyter_server              2.15.0
jupyterlab_server           2.27.3
kiwisolver                  1.4.8
leidenalg                   0.10.2
llvmlite                    0.44.0
logging                     0.5.1.2
markupsafe                  3.0.2
marshal                     4
matplotlib                  3.10.0
matplotlib_inline           0.1.6
more_itertools              10.3.0
msgpack                     1.1.0
natsort                     8.4.0
nbformat                    5.10.4
numba                       0.61.0
numcodecs                   0.13.1
numpy                       1.26.4
packaging                   24.2
pandas                      2.2.3
parso                       0.8.4
patsy                       1.0.1
phenograph                  1.5.7
platform                    1.0.8
platformdirs                4.3.7
pluggy                      1.5.0
polars                      1.30.0
prompt_toolkit              3.0.43
psutil                      5.9.0
pure_eval                   0.2.2
pyarrow                     19.0.1
pycparser                   2.21
pydeseq2                    0.5.1
pygments                    2.19.1
pynndescent                 0.5.13
pyparsing                   3.2.3
pytz                        2025.2
re                          2.2.1
requests                    2.32.3
rfc3339_validator           0.1.4
rfc3986_validator           0.1.1
scanpy                      1.11.1
scipy                       1.15.2
seaborn                     0.13.2
setuptools                  75.8.0
simplejson                  3.20.1
six                         1.17.0
sklearn                     1.5.2
sniffio                     1.3.0
socketserver                0.4
socks                       1.7.1
sparse                      0.16.0
sqlite3                     2.6.0
stack_data                  0.2.0
statsmodels                 0.14.4
stdlib_list                 0.11.1
tarfile                     0.9.0
tblib                       3.1.0
texttable                   1.7.0
threadpoolctl               3.6.0
tlz                         1.0.0
tomli                       2.0.1
toolz                       1.0.0
torch                       2.6.0
tornado                     6.5.1
tqdm                        4.67.1
traitlets                   5.14.3
umap                        0.5.7
urllib3                     2.3.0
wcwidth                     0.2.5
websocket                   1.8.0
wrapt                       1.17.2
yaml                        6.0.2
zarr                        2.18.3
zlib                        1.0
zmq                         26.2.0
zstandard                   0.23.0
-----
IPython             8.30.0
jupyter_client      8.6.3
jupyter_core        5.7.2
jupyterlab          4.3.4
notebook            7.3.2
-----
Python 3.10.16 (main, Dec 11 2024, 10:22:29) [Clang 14.0.6 ]
macOS-15.5-arm64-arm-64bit
10 logical CPU cores, arm
-----
Session information updated at 2025-07-08 17:11