What problem does it solve? When combining single-cell data from multiple samples or donors, batch effects create artificial structure on UMAPs that confounds clustering and label transfer. This Skill applies the Harmony algorithm to remove batch effects directly on a per-cell embedding without touching the expression matrix. ## Core Features & Use Cases - RNA batch correction: Run harmony_integrate on X_pca after standard scanpy preprocessing, then build neighbors, UMAP, and Leiden clusters on the integrated embedding. - ATAC batch correction: Apply Harmony to spectral or LSI embeddings from snapatac2, with guidance on dropping depth-correlated LSI components. - Joint RNA+ATAC integration: Concatenate per-modality integrated embeddings or use muon's WNN to combine modalities across common cells. - Use Case: You merged six donor samples into one AnnData and the UMAP separates by donor instead of cell type. Run harmony_integrate with key="sample" on X_pca, then recompute neighbors on X_pca_harmony to recover biologically meaningful clusters. ## Quick Start Use the harmonypy batch integration skill to remove sample batch effects from my AnnData object's PCA embedding and recompute neighbors and UMAP on the corrected embedding.