We create a toy data frame that maps tissues (BRAIN, STOMACH, HEART, T CELL, B CELL) to clustering (1-4)
df <- data.frame(
tissue = c(
"BRAIN", "BRAIN", "BRAIN",
"STOMACH", "STOMACH", "STOMACH", "STOMACH", "STOMACH", "STOMACH",
"HEART", "HEART", "HEART", "HEART", "HEART", "HEART", "HEART",
"T CELL", "T CELL",
"B CELL", "B CELL", "B CELL", "B CELL", "B CELL", "B CELL", "B CELL", "B CELL", "B CELL"
),
cluster = c(
1, 1, 2,
1, 2, 2, 2, 2, 2,
1, 3, 3, 3, 3, 3, 3,
4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4
)
)
graphing_columns <- c("tissue", "cluster")
# write.csv(df, file = "vignette_intro_df_ungrouped.csv", row.names = FALSE, quote = FALSE)
print(df)## tissue cluster
## 1 BRAIN 1
## 2 BRAIN 1
## 3 BRAIN 2
## 4 STOMACH 1
## 5 STOMACH 2
## 6 STOMACH 2
## 7 STOMACH 2
## 8 STOMACH 2
## 9 STOMACH 2
## 10 HEART 1
## 11 HEART 3
## 12 HEART 3
## 13 HEART 3
## 14 HEART 3
## 15 HEART 3
## 16 HEART 3
## 17 T CELL 4
## 18 T CELL 4
## 19 B CELL 4
## 20 B CELL 4
## 21 B CELL 4
## 22 B CELL 4
## 23 B CELL 4
## 24 B CELL 4
## 25 B CELL 4
## 26 B CELL 4
## 27 B CELL 4
Group by tissue and cluster, counting the values in a new column value
clus_df_gather <- prep_for_lodes(df, cols = graphing_columns)
# write.csv(clus_df_gather, file = "vignette_intro_df_grouped.csv", row.names = FALSE, quote = FALSE)
print(clus_df_gather)## # A tibble: 8 × 3
## tissue cluster value
## <chr> <chr> <int>
## 1 B CELL 4 9
## 2 BRAIN 1 2
## 3 BRAIN 2 1
## 4 HEART 1 1
## 5 HEART 3 6
## 6 STOMACH 1 1
## 7 STOMACH 2 5
## 8 T CELL 4 2
clus_df_gather_tsp <- sort_to_uncross(clus_df_gather, cols = graphing_columns, wt = "value", method = "tsp")## Warning: Using an external vector in selections was deprecated in tidyselect 1.1.0.
## ℹ Please use `all_of()` or `any_of()` instead.
## # Was:
## data %>% select(graphing_columns)
##
## # Now:
## data %>% select(all_of(graphing_columns))
##
## See <https://tidyselect.r-lib.org/reference/faq-external-vector.html>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## # A tibble: 8 × 3
## tissue cluster value
## <fct> <fct> <int>
## 1 B CELL 4 9
## 2 BRAIN 1 2
## 3 BRAIN 2 1
## 4 HEART 1 1
## 5 HEART 3 6
## 6 STOMACH 1 1
## 7 STOMACH 2 5
## 8 T CELL 4 2
# clus_df_gather_tsp <- clus_df_gather_tsp
stratum_to_color_mapping <- get_lode_clusters(clus_df_gather_tsp, cols = graphing_columns, wt = "value", method = "advanced")
print(stratum_to_color_mapping)## $cluster
## $cluster$`4`
## [1] 1
##
## $cluster$`1`
## [1] 2
##
## $cluster$`2`
## [1] 4
##
## $cluster$`3`
## [1] 3
##
##
## $tissue
## $tissue$`B CELL`
## [1] 1
##
## $tissue$BRAIN
## [1] 2
##
## $tissue$HEART
## [1] 3
##
## $tissue$STOMACH
## [1] 4
##
## $tissue$`T CELL`
## [1] 1
crossing_edges_out <- compute_crossing_objective(clus_df_gather_tsp, cols = graphing_columns, wt = "value")
print(crossing_edges_out$output_objective)## [1] 1
## R version 4.5.1 (2025-06-13)
## Platform: aarch64-apple-darwin20
## Running under: macOS Ventura 13.5.2
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.12.1
##
## locale:
## [1] C/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## time zone: America/Los_Angeles
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] wompwomp_0.99.0 ggalluvial_0.12.5 ggplot2_4.0.0 dplyr_1.1.4
##
## loaded via a namespace (and not attached):
## [1] gtable_0.3.6 jsonlite_2.0.0 crayon_1.5.3 compiler_4.5.1
## [5] tidyselect_1.2.1 stringr_1.5.2 tidyr_1.3.1 jquerylib_0.1.4
## [9] scales_1.4.0 yaml_2.3.10 fastmap_1.2.0 R6_2.6.1
## [13] labeling_0.4.3 generics_0.1.4 igraph_2.2.1 knitr_1.50
## [17] iterators_1.0.14 tibble_3.3.0 bslib_0.9.0 pillar_1.11.1
## [21] RColorBrewer_1.1-3 rlang_1.1.6 utf8_1.2.6 stringi_1.8.7
## [25] cachem_1.1.0 xfun_0.54 sass_0.4.10 S7_0.2.0
## [29] TSP_1.2-5 cli_3.6.5 withr_3.0.2 magrittr_2.0.4
## [33] foreach_1.5.2 digest_0.6.37 grid_4.5.1 lifecycle_1.0.4
## [37] vctrs_0.6.5 evaluate_1.0.5 glue_1.8.0 farver_2.1.2
## [41] codetools_0.2-20 rmarkdown_2.30 purrr_1.1.0 tools_4.5.1
## [45] pkgconfig_2.0.3 htmltools_0.5.8.1