# Registered Functions — GPU Support Overview ## Legend - [x] Supported: GPU acceleration available (native, parameter-enabled, or auto-enabled by environment). - [ ] Not supported: CPU-only implementation. - To enable GPU, initialize the environment first if needed: `ov.settings.gpu_init()` (RAPIDS) or `ov.settings.cpu_gpu_mixed_init()` (mixed). Actual GPU usage also depends on whether dependencies are installed with GPU support. ## Settings - [x] `ov.settings.gpu_init`: Initialize RAPIDS/GPU mode. - [x] `ov.settings.cpu_gpu_mixed_init`: Initialize CPU–GPU mixed mode. ## Preprocessing (ov.pp) - [x] `ov.pp.anndata_to_GPU`: Move AnnData to GPU (RAPIDS). - [ ] `ov.pp.anndata_to_CPU`: Move data back to CPU. - [x] `ov.pp.preprocess`: End-to-end preprocessing (gpu rapids). - `mode='shiftlog|pearson'` - [x] normalize_total/log1p (gpu rapids). - [x] HVGs = pearson_residuals (gpu rapids). - `mode='pearson|pearson'` - [x] normalize_pearson_residuals (gpu rapids). - [x] HVGs = pearson_residuals (gpu rapids). - [x] `ov.pp.scale`: Scaling (gpu rapids). - [x] `ov.pp.pca`: PCA (gpu rapids | cpu-gpu-mixed[torch|mlx]). - [ ] `ov.pp.neighbors`: KNN graph (by `method`). - [ ] `method='umap'` (UMAP-based neighbor estimation, CPU). - [ ] `method='gauss'` (Gaussian kernel, CPU). - [x] `method='rapids'` (gpu rapids). - [ ] `ov.pp.umap`: UMAP (by implementation). - [ ] Scanpy UMAP (`settings.mode='cpu'`). - [x] RAPIDS UMAP (`settings.mode='gpu'`, gpu rapids). - [x] PyMDE/torch path (`settings.mode='cpu-gpu-mixed'`, cpu-gpu-mixed[torch]). - [x] `ov.pp.qc`: Quality control (gpu rapids | cpu-gpu-mixed[torch]). - [ ] `ov.pp.score_genes_cell_cycle`: Cell cycle scoring. - [x] `ov.pp.sude`: SUDE dimensionality reduction (cpu-gpu-mixed[torch]). ## Utils (ov.utils) - [x] `ov.utils.mde`: Minimum Distortion Embedding (all[torch]). - [ ] `ov.utils.cluster`: Multi-algorithm clustering (per algorithm below). - [x] Leiden (cpu[igraph]cpu-gpu-mixed[pyg]). - [ ] Louvain (Scanpy, CPU). - [ ] KMeans (scikit-learn, CPU). - [ ] GMM/mclust (scikit-learn, CPU). - [ ] mclust_R (R package mclust, CPU). - [ ] schist (schist library, CPU). - [ ] scICE (currently invoked with `use_gpu=False`). - [ ] `ov.utils.refine_label`: Neighborhood voting label refinement. - [ ] `ov.utils.weighted_knn_trainer`: Train weighted KNN. - [ ] `ov.utils.weighted_knn_transfer`: Weighted KNN label transfer. ## Single-cell (ov.single) - [ ] `ov.single.batch_correction`: Batch correction (per method below). - [ ] harmony (Harmony, CPU). - [ ] combat (Scanpy Combat, CPU). - [ ] scanorama (Scanorama, CPU). - [x] scVI (all[torch]). - [ ] CellANOVA (CPU). - [x] `ov.single.MetaCell`: SEACells (all[torch]). - [ ] `ov.single.TrajInfer`: Trajectory inference (per method below). - [ ] palantir (CPU). - [ ] diffusion_map (CPU). - [ ] slingshot (CPU). - [x] `ov.single.Fate`: TimeFateKernel (all[torch]). - [x] `ov.single.pyCEFCON`: CEFCON driver discovery (all[torch]). - [x] `ov.single.gptcelltype_local`: Local LLM annotation (all[torch]). - [x] `ov.single.cNMF`: cNMF (all[torch]). - [ ] `ov.single.CellVote`: Multi-method voting. * [ ] `scsa_anno` (SCSA, CPU). * [ ] `gpt_anno` (online GPT, CPU/network). * [ ] `gbi_anno` (GPTBioInsightor, CPU/network). * [ ] `popv_anno` (PopV, CPU). - [ ] `ov.single.gptcelltype`: Online GPT annotation. - [ ] `ov.single.mouse_hsc_nestorowa16`: Load dataset. - [ ] `ov.single.load_human_prior_interaction_network`: Load prior network. - [ ] `ov.single.convert_human_to_mouse_network`: Cross-species symbol conversion. ## Spatial (ov.space) - [x] `ov.space.pySTAGATE`: STAGATE spatial clustering (all[torch]). - [ ] `ov.space.clusters`: Multi-method spatial clustering (per method below). - [x] STAGATE (all[torch]). - [x] GraphST (all[torch]). - [x] CAST (all[torch]). - [x] BINARY (all[torch]). - [ ] `ov.space.merge_cluster`: Merge clusters. - [ ] `ov.space.Cal_Spatial_Net`: Build spatial neighbor graph. - [x] `ov.space.pySTAligner`: STAligner integration (all[torch]). - [x] `ov.space.pySpaceFlow`: SpaceFlow spatial embedding (all[torch]). - [ ] `ov.space.Tangram`: Tangram deconvolution (per mode below). - [x] `mode='clusters'` (all[torch]). - [x] `mode='cells'` (all[torch]). - [ ] `ov.space.svg`: Spatially variable genes (stats-based, not explicit GPU). - [x] `ov.space.CAST`: CAST integration (all[torch]). - [ ] `ov.space.crop_space_visium`: Crop spatial image/coordinates. - [ ] `ov.space.rotate_space_visium`: Rotate spatial image/coordinates. - [ ] `ov.space.map_spatial_auto`: Auto mapping (per method below). - [x] `method='torch'` (all[torch]). - [ ] `method='phase'` (NumPy, CPU). - [ ] `method='feature'` (feature-based matching, CPU). - [ ] `method='hybrid'` (hybrid pipeline, CPU). - [ ] `ov.space.map_spatial_manual`: Manual offset mapping. - [ ] `ov.space.read_visium_10x`: Read Visium data. - [x] `ov.space.visium_10x_hd_cellpose_he`: H&E segmentation (`gpu=True`). - [ ] `ov.space.visium_10x_hd_cellpose_expand`: Label expansion. - [x] `ov.space.visium_10x_hd_cellpose_gex`: GEX segmentation/mapping (`gpu=True`). - [ ] `ov.space.salvage_secondary_labels`: Merge labels. - [ ] `ov.space.bin2cell`: Bin-to-cell conversion. ## External (ov.external) - [x] `ov.external.GraphST.GraphST`: GraphST (`device` supports GPU). - [ ] `ov.bulk.pyWGCNA`: WGCNA (CPU implementation). ## Plotting (ov.pl) - [ ] `ov.pl.*` (`_single/_bulk/_density/_dotplot/_violin/_general/_palette`): plotting APIs. ## Bulk (ov.bulk) - [ ] `ov.bulk.*` (`_Deseq2/_Enrichment/_combat/_network/_tcga`): statistics, enrichment, and network analysis.