# PeakVI preprocessing for multi-timepoint scATAC-seq when peak coordinates differ slightly across samples

**URL:** <https://discourse.scverse.org/t/peakvi-preprocessing-for-multi-timepoint-scatac-seq-when-peak-coordinates-differ-slightly-across-samples/3967>\
**Category:** scvi-tools\
**Tags:** peakvi\
**Created:** [April 20, 2026, 4:30pm UTC](https://discourse.scverse.org/t/peakvi-preprocessing-for-multi-timepoint-scatac-seq-when-peak-coordinates-differ-slightly-across-samples/3967 "2026-04-20T16:30:48Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![khagani](https://avatars.discourse-cdn.com/v4/letter/k/ee59a6/32.png) [@khagani](https://discourse.scverse.org/u/khagani)\
**Post date:** [April 20, 2026, 4:30pm UTC](https://discourse.scverse.org/t/peakvi-preprocessing-for-multi-timepoint-scatac-seq-when-peak-coordinates-differ-slightly-across-samples/3967/1 "2026-04-20T16:30:48Z")

</div>

I am working with a scATAC-seq / multi-timepoint reprogramming dataset and want to run PeakVI on a combined AnnData object across samples/timepoints. The issue is that peaks were called separately for each sample, so the peak coordinates differ slightly between samples even when they appear to represent the same biological region.

For example, for what looks like the same locus, I see:  
\* Day0: `chr1:3210643-3211508`  
\* Day4: `chr1:3210640-3211510`  
\* Day7: `chr1:3210651-3211509`

When I compare exact peak names across samples, the overlap is almost zero, even though biologically these regions seem to correspond to the same accessible site.

Example overlap counts:  
\* total peaks:  
\* Day0: 292,251  
\* Day4: 253,628  
\* Day7: 198,323

\* exact intersections:  
\* Day0 ∩ Day4: 20  
\* Day0 ∩ Day7: 14  
\* Day4 ∩ Day7: 25

So exact string matching is clearly not the right way to harmonize features here. My question is: What is the recommended way to construct a shared feature space for PeakVI when peak boundaries differ slightly across samples?

More specifically: Using 10x / Cell Ranger / Cell Ranger ARC outputs, what is the best practice to harmonize peaks before building the final AnnData for PeakVI?

My concern is that if I use only the exact intersection of peaks, I will lose genuine timepoint-specific accessibility changes, which are biologically important in my context as a reprogramming trajectory. And also when running it as is I see 0 integration of timepoints (which should be happening based on what we know about the biology) with all different resolutions Any guidance on best practice for preprocessing before PeakVI would be very helpful.

---

<div class="post-metadata">

**Author:** ![ori-kron-wis](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.scverse.org/ori-kron-wis/32/1099_2.png) [@ori-kron-wis](https://discourse.scverse.org/u/ori-kron-wis)\
**Post date:** [April 23, 2026, 7:05am UTC](https://discourse.scverse.org/t/peakvi-preprocessing-for-multi-timepoint-scatac-seq-when-peak-coordinates-differ-slightly-across-samples/3967/2 "2026-04-23T07:05:27Z")

</div>

I can only suggest posting on [scATAC-seq - scverse](https://discourse.scverse.org/c/general/scatac-seq/29), as this is more of a pre-processing question rather than scvi per se.

---

<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 23, 2026, 9:19am UTC](https://discourse.scverse.org/t/peakvi-preprocessing-for-multi-timepoint-scatac-seq-when-peak-coordinates-differ-slightly-across-samples/3967/3 "2026-04-23T09:19:24Z")

</div>

Please check SnapATAC2 tutorials for coherent peak calling across your different samples: [Standard pipeline: analyzing 5K PBMC dataset from 10X genomics — SnapATAC2 2.9.0 documentation](https://scverse.org/SnapATAC2/tutorials/pbmc.html).
