# 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.