# \[suggestion\] what would be the appropriate pipeline to perform joint embedding of GEX and ATAC?

**URL:** https://discourse.scverse.org/t/suggestion-what-would-be-the-appropriate-pipeline-to-perform-joint-embedding-of-gex-and-atac/3275
**Category:** Multiome
**Tags:** integration, multivi, totalvi
**Created:** [October 1, 2024, 8:21pm UTC](https://discourse.scverse.org/t/suggestion-what-would-be-the-appropriate-pipeline-to-perform-joint-embedding-of-gex-and-atac/3275 "2024-10-01T20:21:20Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![yojetsharma](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.scverse.org/yojetsharma/32/1180_2.png) [@yojetsharma](https://discourse.scverse.org/u/yojetsharma)
#### Post date: [October 1, 2024, 8:21pm UTC](https://discourse.scverse.org/t/suggestion-what-would-be-the-appropriate-pipeline-to-perform-joint-embedding-of-gex-and-atac/3275/1 "2024-10-01T20:21:20Z")

</div>

I have processed my snRNA of multiome using scanpy and snATAC using snapatac2. Both have been annotated as well.  
I would like to perform joint embedding of rna and atac but the var attributes are different and so are the number of cells in both the modalities.  
The overarching goal after embedding is obtain cell\_data that will be used as an input for pycistopic-\>scenic+.

---

<div class="post-metadata">

### Author: ![gtca](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.scverse.org/gtca/32/1199_2.png) [@gtca](https://discourse.scverse.org/u/gtca)
#### Post date: [October 17, 2024, 1:09am UTC](https://discourse.scverse.org/t/suggestion-what-would-be-the-appropriate-pipeline-to-perform-joint-embedding-of-gex-and-atac/3275/2 "2024-10-17T01:09:33Z")

</div>

Hey @yojetsharma,

If that might help, this sounds like the setting described in the tutorials on mudata and muon, [e.g. here](https://muon-tutorials.readthedocs.io/en/latest/single-cell-rna-atac/index.html).

Briefly, you could store two modalities in a MuData object, and use methods like MOFA+ and MultiVI to compute a join embedding, which you can store in the same MuData object.
