
Recursive Hierarchical kNN with BiocParallel Ensemble
Source:R/model_training.R
predict_hierarchical_knn_recursive.RdRecursive Hierarchical kNN with BiocParallel Ensemble
Usage
predict_hierarchical_knn_recursive(
spe,
hier_ref,
hc_tree,
assay_name = "exprs",
threshold = 0.7,
agreement_threshold = 0.8,
k = 5,
repeats = 5,
dist_methods = c("pearson", "cosine"),
BPPARAM = BiocParallel::SerialParam(),
out_col = "hier_label",
chunk_size = 1000L,
unassigned_label = "Unassigned"
)Arguments
- spe
SpatialExperiment object.
- hier_ref
List of node-specific references from build_hierarchical_reference.
- hc_tree
hclust object defining the hierarchy.
- assay_name
Assay to use (default "exprs").
- threshold
Confidence threshold (average kNN probability).
- agreement_threshold
Minimum % of ensemble members that must agree (0-1).
- k
Number of neighbors for kNN.
- repeats
Number of bootstrap repeats per distance method.
- dist_methods
Vector of methods, e.g., c("pearson", "cosine").
- BPPARAM
BiocParallel parameter (default: SerialParam()).
- out_col
Column name for final labels.
- chunk_size
Integer specifying the number of cells processed per chunk during prediction. Increasing this value may improve speed but requires more memory. Default is
1000L- unassigned_label
character label for Unassigned cells (default "Unassigned")
Examples
# \donttest{
data("cytoGateR_example", package = "cytoGateR")
image_ids <- SummarizedExperiment::colData(cytoGateR_example)$image_name
spe <- cytoGateR_example[, image_ids == image_ids[1L]]
SummarizedExperiment::colData(spe)$cleaned_core_label <-
SummarizedExperiment::colData(spe)$core_group
SummarizedExperiment::colData(spe)$cleaned_core_label[
SummarizedExperiment::colData(spe)$cleaned_core_label == "Unassigned"
] <- "Unknown"
hc_tree <- build_lineage_hierarchy(
spe,
label_col = "cleaned_core_label"
)
hier_ref <- build_hierarchical_reference(
spe,
hc_tree,
label_col = "cleaned_core_label",
top_n = NULL,
unknown_label = "Unknown"
)
spe <- predict_hierarchical_knn_recursive(
spe,
hier_ref,
hc_tree,
repeats = 1,
dist_methods = "pearson",
k = 3
)
#> Starting recursive ensemble classification for 4363 cells (chunk_size=1000)...
head(SummarizedExperiment::colData(spe)$hier_label)
#> [1] "BnTcell" "Bcell" "BnTcell" "Unassigned" "BnTcell"
#> [6] "CD4"
# }