I routinely use 100-200 classes for datasets with 2-3 million particles. I think 1000+ would be entirely too many classes in almost all cases. Not only would the job take much longer to run, I don’t know how anyone could visually group that many classes into groups by compositional or conformational heterogeneity.
Instead, I only use 2D classification for two reasons: 1) to get a quick sense of the overall quality of my dataset, and 2) to get rid of the most obvious, high-contrast junk. I do the bulk of my classification in 3D with ab initio reconstruction, heterogeneous refinement, and 3D classification. This thread has some helpful pointers.
In general, I don’t try to capture all the heterogeneity in my data from the start. Since compositional heterogeneity is usually a lot more discrete than conformational heterogeneity, I usually classify based on composition first just get to quickly get to a first set of consensus volumes (using ab initio and heterogeneous refinement). Next, for each consensus volume and its associated particle stack, I classify based on conformational heterogeneity (using 3D classification and 3D variability analysis).
Edit to add: I believe increasing the number of iterations gives more time for the classification to converge and assign particles to the correct class. This appears to be helpful for small, low-SNR particles. This thread has a helpful discussion on some of these parameters.