## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
    collapse = TRUE,
    comment = "#>"
)

options(
  rmarkdown.html_vignette.check_title = FALSE
)

## ----setup, message = FALSE, warning = FALSE----------------------------------
library(tidytof)
library(dplyr)

## -----------------------------------------------------------------------------
data(phenograph_data)

set.seed(203L)

phenograph_clusters <-
    phenograph_data |>
    tof_preprocess() |>
    tof_cluster(
        cluster_cols = starts_with("cd"),
        num_neighbors = 50L,
        distance_function = "cosine",
        method = "phenograph"
    ) |>
    tof_metacluster(
        cluster_col = .phenograph_cluster,
        metacluster_cols = starts_with("cd"),
        num_metaclusters = 3L,
        method = "kmeans"
    )

phenograph_clusters |>
    dplyr::select(sample_name, .phenograph_cluster, .kmeans_metacluster) |>
    head()

## -----------------------------------------------------------------------------
phenograph_clusters |>
    dplyr::count(phenograph_cluster, .kmeans_metacluster, sort = TRUE)

## ----eval = FALSE-------------------------------------------------------------
#  # use the kmeans algorithm
#  phenograph_data |>
#      tof_preprocess() |>
#      tof_cluster(
#          cluster_cols = contains("cd"),
#          method = "kmeans"
#      )
#  
#  # use the flowsom algorithm
#  phenograph_data |>
#      tof_preprocess() |>
#      tof_cluster(
#          cluster_cols = contains("cd"),
#          method = "flowsom"
#      )

## -----------------------------------------------------------------------------
# will result in a tibble with only 1 column (the cluster labels)
phenograph_data |>
    tof_preprocess() |>
    tof_cluster(
        cluster_cols = contains("cd"),
        method = "kmeans",
        augment = FALSE
    ) |>
    head()

## -----------------------------------------------------------------------------
sessionInfo()