ProtoCloud : a generative prototypical self-explanatory model for cell type annotation