Deep generative models for single-cell gene expression analysis