Last updated: 2023-08-15

Checks: 7 0

Knit directory: SuperCellCyto-analysis/

This reproducible R Markdown analysis was created with workflowr (version 1.7.0). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.

Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.

Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.

The command set.seed(42) was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.

Great job! Recording the operating system, R version, and package versions is critical for reproducibility.

Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.

Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.

Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.

The results in this page were generated with repository version 7baf7b7. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.

Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:

Ignored files:
    Ignored:    .DS_Store
    Ignored:    .Rhistory
    Ignored:    .Rproj.user/
    Ignored:    analysis/.DS_Store
    Ignored:    code/.DS_Store
    Ignored:    code/b_cell_identification/.DS_Store
    Ignored:    code/batch_correction/.DS_Store
    Ignored:    code/explore_supercell_purity_clustering/.DS_Store
    Ignored:    code/explore_supercell_purity_clustering/functions/.DS_Store
    Ignored:    code/explore_supercell_purity_clustering/louvain_all_cells/.DS_Store
    Ignored:    code/label_transfer/.Rhistory
    Ignored:    data/.DS_Store
    Ignored:    data/bodenmiller_cytof/
    Ignored:    data/explore_supercell_purity_clustering/
    Ignored:    data/haas_bm/
    Ignored:    data/oetjen_bm_dataset/
    Ignored:    data/trussart_cytofruv/
    Ignored:    output/.DS_Store
    Ignored:    output/bodenmiller_cytof/
    Ignored:    output/explore_supercell_purity_clustering/
    Ignored:    output/label_transfer/
    Ignored:    output/oetjen_b_cell_panel/
    Ignored:    output/trussart_cytofruv/

Untracked files:
    Untracked:  code/b_cell_identification/cluster_singlecell.R
    Untracked:  code/b_cell_identification/rescale_supercell.R
    Untracked:  code/b_cell_identification/runtime_benchmark/
    Untracked:  code/batch_correction/benchmark_cycombine.R
    Untracked:  code/batch_correction/rescale_supercell.R
    Untracked:  code/batch_correction/runtime_benchmark/
    Untracked:  code/bodenmiller_data/benchmark_supercell_runtime.R
    Untracked:  code/compare_da_test_runtime.R
    Untracked:  code/krieg_melanoma/
    Untracked:  code/label_transfer/harmony_knn_singlecell.R
    Untracked:  code/label_transfer/seurat_rpca_singlecell.R
    Untracked:  output/krieg_melanoma/

Unstaged changes:
    Modified:   SuperCellCyto-analysis.Rproj
    Modified:   code/batch_correction/run_batch_correction_supercells.R
    Modified:   code/label_transfer/harmony_knn.R
    Modified:   code/label_transfer/seurat_rpca.R

Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.

These are the previous versions of the repository in which changes were made to the R Markdown (analysis/index.Rmd) and HTML (docs/index.html) files. If you’ve configured a remote Git repository (see ?wflow_git_remote), click on the hyperlinks in the table below to view the files as they were in that past version.

File Version Author Date Message
html a55c3ba Givanna Putri 2023-07-28 Build site.
html 366514e Givanna Putri 2023-07-28 Build site.
Rmd 402358b Givanna Putri 2023-07-28 wflow_publish(c("analysis/*Rmd"))
Rmd aeae8b0 Givanna Putri 2023-07-28 Start workflowr project.


The rapid advancements in cytometry technologies have enabled the quantification of up to 50 proteins across millions of cells at a single-cell resolution. The analysis of cytometry data necessitates the use of computational tools for tasks such as data integration, clustering, and dimensionality reduction. While numerous computational methods exist in the cytometry and single-cell RNA sequencing (scRNAseq) fields, many are hindered by extensive run times when processing large cytometry data containing millions of cells. Existing solutions, such as random subsampling, often prove inadequate as they risk excluding small, rare cell subsets. To address this, we propose a practical strategy that builds on the SuperCell framework from the scRNAseq field. The supercell concept involves grouping single cells with highly similar transcriptomic profiles, and has been shown to be an effective unit of analysis for scRNAseq data. We show that for cytometry datasets, there is no loss of information by grouping cells into supercells. Further, we demonstrate the effectiveness of our approach by conducting a series of downstream analyses on six publicly available cytometry datasets at the supercell level, and successfully replicating previous findings performed at the single cell level. We present a computationally efficient solution for transferring cell type labels from single-cell multiomics data which combines RNA with protein measurements, to a cytometry dataset, allowing for more precise cell type annotations. Our SuperCellCyto R package and the associated analysis workflows are available on our GitHub repositories ( and


Givanna H. Putri1, George Howitt2, Felix Marsh-Wakefield3, Thomas Ashhurst4, Belinda Phipson1

1 The Walter and Eliza Hall Institute of Medical Research, Parkville, VIC, Australia

2 Peter MacCallum Cancer Centre and The Sir Peter MacCallum Department of Oncology, The University of Melbourne, Parkville, VIC, Australia

3 Centenary Institute of Cancer Medicine and Cell Biology, Sydney, NSW, Australia

4 Sydney Cytometry Core Research Facility and School of Medical Sciences, The University of Sydney, Sydney, NSW, Australia

Analysis Overview

  1. Supercells Preserve Biological Heterogeneity and Facilitate Efficient Cell Type Identification
  2. Supercells Combined with Clustering Can Identify Rare B Cell Subsets
  3. Mitigating Batch Effects in the Integration of Multi-Batch Cytometry Data at the Supercell Level
  4. Recovery of Differentially Expressed Cell State Markers Across Stimulated and Unstimulated Human Peripheral Blood Cells
  5. Identification of Differentially Abundant Rare Monocyte Subsets in Melanoma Patients
  6. Efficient Cell Type Label Transfer Between CITEseq and Cytometry Data
  7. Analysis of Run Times

R version 4.2.3 (2023-03-15)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Monterey 12.6

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/lib/libRlapack.dylib

[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] workflowr_1.7.0

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.10      compiler_4.2.3   pillar_1.8.1     bslib_0.4.2     
 [5] later_1.3.0      git2r_0.31.0     jquerylib_0.1.4  tools_4.2.3     
 [9] getPass_0.2-2    digest_0.6.31    jsonlite_1.8.4   evaluate_0.20   
[13] lifecycle_1.0.3  tibble_3.1.8     pkgconfig_2.0.3  rlang_1.0.6     
[17] cli_3.6.0        rstudioapi_0.14  yaml_2.3.7       xfun_0.39       
[21] fastmap_1.1.0    httr_1.4.4       stringr_1.5.0    knitr_1.42      
[25] fs_1.6.1         vctrs_0.5.2      sass_0.4.5       rprojroot_2.0.3 
[29] glue_1.6.2       R6_2.5.1         processx_3.8.0   fansi_1.0.4     
[33] rmarkdown_2.20   callr_3.7.3      magrittr_2.0.3   whisker_0.4.1   
[37] ps_1.7.2         promises_1.2.0.1 htmltools_0.5.4  httpuv_1.6.9    
[41] utf8_1.2.3       stringi_1.7.12   cachem_1.0.6