# Workflow advice for totalVI in CITE-seq Multiplexed data

**URL:** <https://discourse.scverse.org/t/workflow-advice-for-totalvi-in-cite-seq-multiplexed-data/3613>\
**Category:** scvi-tools\
**Tags:** totalvi\
**Created:** [April 17, 2025, 5:05pm UTC](https://discourse.scverse.org/t/workflow-advice-for-totalvi-in-cite-seq-multiplexed-data/3613 "2025-04-17T17:05:01Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![eason-sjtu](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.scverse.org/eason-sjtu/32/1368_2.png) [@eason-sjtu](https://discourse.scverse.org/u/eason-sjtu)\
**Post date:** [April 17, 2025, 5:05pm UTC](https://discourse.scverse.org/t/workflow-advice-for-totalvi-in-cite-seq-multiplexed-data/3613/1 "2025-04-17T17:05:01Z")

</div>

Hi all,

I’m working with CITE-seq data where **4 samples were multiplexed, stained with antibodies in a single tube, and then distributed across 4 sequencing lanes**. I’d like advice on the optimal analysis workflow.

Specifically:

1. **At which step should I split by lanes and then merge adata objects from the same biological sample?**
2. Is the following processing order reasonable?

- Ambient RNA removal (CellBender)
- Doublet removal
- QC
- Protein normalization (DSB)
- HVG selection
- totalVI integration (raw count)

1. Since CellBender, DSB, and totalVI all perform some form of denoising, **are there any conflicts between them**?
2. Should I use **DSB normalization** before totalVI, or instead **normalize denoised\_protein values from totalVI** afterwards?

Any recommendations, best practices, or reference papers would be greatly appreciated. Thanks!

---

<div class="post-metadata">

**Author:** ![cane11](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.scverse.org/cane11/32/241_2.png) [@cane11](https://discourse.scverse.org/u/cane11)\
**Post date:** [April 17, 2025, 7:20pm UTC](https://discourse.scverse.org/t/workflow-advice-for-totalvi-in-cite-seq-multiplexed-data/3613/2 "2025-04-17T19:20:41Z")

</div>

Cellbender and totalVI are fully compatible. TotalVI expects unnormalized counts and does its own normalization. So you shouldn’t combine DSB and totalVI in the same pipeline.

---

<div class="post-metadata">

**Author:** ![easyeryiji](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.scverse.org/easyeryiji/32/1424_2.png) [@easyeryiji](https://discourse.scverse.org/u/easyeryiji)\
**Post date:** [June 6, 2025, 1:21am UTC](https://discourse.scverse.org/t/workflow-advice-for-totalvi-in-cite-seq-multiplexed-data/3613/3 "2025-06-06T01:21:49Z")

</div>

> [@eason-sjtu](#):
>
> At which step should I split by lanes

What’s the purpose of **splitting** your sequencing lanes data?

---

<div class="post-metadata">

**Author:** ![cane11](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.scverse.org/cane11/32/241_2.png) [@cane11](https://discourse.scverse.org/u/cane11)\
**Post date:** [June 19, 2025, 5:53pm UTC](https://discourse.scverse.org/t/workflow-advice-for-totalvi-in-cite-seq-multiplexed-data/3613/4 "2025-06-19T17:53:52Z")

</div>

Batch effect between lanes is indeed minimal in my hands and also for Cellbender it doesn’t make much difference. I usually run it on the sample directly.
