Hi!

I am currently working with the vaec module. I decided to use this model to be able to reconstruct specific gene responses given the condition (e.g. cell type) I pass it in the decoder. I imagine that this could work similarly to e.g. a CVAE used for MNIST with the label condition corresponding to the integer value in the image which then can be reconstructed. However, I am having some troubles to better understand the module. I am not aware of a paper describing this module, like for scvi or totalvi. If there is a paper I would greatly appreciate if you can reference the paper to me

First of all, I am having difficulties to grasp what the difference between VAEC and SCVI exactly is. From the source code I understand that the main difference is that you can pass additional label information to VAEC which is not possible in SCVI. However, I do not understand how these labels are exactly treated by the model, e.g. are they concatenated with the gene expression x? More specifically, given I define the labels as the batch_index, how is VAEC then different to SCVI as SCVI also considers batch difference?

Besides that I am struggling to understand if I can pass multiple conditions as labels. For example, passing cell types and drug responses. Is this only possible by creating a vector with the combinatorial numbers, so passing a 1d vectors as *y* that can take values from 1 to *n_cell_types* x *n_batches*) or can I pass a 2d vector, each dimension indexing one condition?

Thanks already in advance!