Human Lung Cell Atlas (HLCA) reannotation with ISC
Author
Affiliation
Josep Garnica
University of Geneva
Published
July 16, 2026
1 Introduction
This case study reproduces the ISC-guided annotation refinement strategy presented for the Human Lung Cell Atlas (HLCA) in Figure 6 of the scTypeEval publication. This tutorial walks through each step of the scTypeEval workflow, comparing the original and refined annotation frameworks. The objective is to illustrate how inter-sample consistency (ISC) can be used to identify annotation levels that are robust across individuals and to guide biologically meaningful annotation refinement.
2 Dataset description
This tutorial uses the Human Lung Cell Atlas (HLCA) published by Sikkema et al., 2023, a large-scale integrated single-cell reference atlas of the human respiratory tract. The HLCA core contains healthy lung tissue from 107 individuals collected across multiple studies and includes consensus manual cell type annotations curated independently by six experts.
For this case study, raw gene expression counts and metadata are downloaded from Zenodo and cached locally. This core dataset from HLCA can also be found at CELLxGENE
Although the published HLCA provides an integrated low-dimensional embedding generated using scANVI, the analyses in this tutorial start from the raw count matrix. This allows the complete preprocessing, feature selection, dimensionality reduction, dissimilarity computation, and ISC evaluation workflow to be reproduced using scTypeEval.
library(dplyr)library(tidyr)library(ggplot2)library(scTypeEval)library(Seurat)theme_set(theme_bw(base_size =12))# Blacklisted genes that are inherently variable across samples# and should be excluded from ISC (scTypeEval) computationsdata(black_list)blacklist_genes <-c(black_list$TCR, black_list$Immunoglobulins, black_list$Ygenes)# These are the local and global ISC thresholds empirically described in the manuscript (Fig. 5)q_local <-0.4467538q_global <-0.7443436
5 Load HLCA object
6 Downsample dataset
For this tutorial, we downsample the dataset to a maximum of 200 cells per cell type and sample combination. This makes the analysis lighter while preserving cell type and sample representation.
obj <-readRDS(dataset_file)obj$Sample_annot <-paste(obj$sample, obj$cell_type)Idents(obj) <-"Sample_annot"# Set seed for downsampling# we'll keep max 200 cells per cell type and sampleset.seed(22)obj2 <-subset(obj, downsample =200)dim(obj2)
[1] 27957 198015
# split into counts and metadatacounts <-LayerData(obj2, layer ="counts")metadata <- obj2@meta.data
# for metadata keep only columns that will be used latercol_md_keep <-c("cell_type", # main annotation framework"ann_level_4", # information of lineage of cell types"sample", # sample or origin"donor_id","dataset", # batch id"tissue"# tissue of origin )metadata <- metadata %>%select(all_of(col_md_keep))
6.1 Dataset specifics
The HLCA core dataset contains:
584K cells - subsampled into 198K
166 samples (sample)
107 donors (donor_id)
14 different datasets of origin or batches (dataset)
3 different tissues of origin within the respiratory tract (tissue): lung parenchyma, respiratory airway, and nose
50 cell types in their main annotation framework (cell_type)
7 ISC on baseline annotations
We will explore ISC on the default annotation of the atlas: cell_type.
# remove data from single-cell grouping as we don't need itsceval_original@data$`single-cell`<-NULLset.seed(22)sceval_original <-run_pca(scTypeEval = sceval_original,ndim =30,verbose =FALSE)# Visualize PCA by cell type and sample groupsplot_pca(sceval_original)
Here we can see the 3 main cell type families in 3 major group of cell types/samples: 1) immune cells, epithelial-respiratory cells, and stromal/endothelial cells.
7.4 Compute dissimilarities
Build pairwise distance matrices between all cell types and sample pairs. We will use the dissimilarities that best capture cross-sample variability. For more information, see Benchmarking of ISC metrics.
# recip_classif:Match computation may take few minutessceval_original <-run_dissimilarity( sceval_original,method ="recip_classif:Match",reduction =FALSE,ncores =6,verbose =FALSE)sceval_original <-run_dissimilarity( sceval_original,method ="Pseudobulk:Cosine",reduction =TRUE,verbose =FALSE)
7.5 Compute consistency (get_consistency)
We then compute the consistency metrics from the previously generated distance matrices. We use global and local ISC, defined here as 2-label silhouette + pseudobulk cosine and silhouette + recip_classif:Match, respectively. For additional details, see Benchmarking of ISC metrics.
The ISC analysis shows that most cell type annotations in the HLCA exhibit high local and global consistency, indicating that these populations are reproducibly identified across individuals. In contrast, a subset of respiratory epithelial populations—including club cells, multiciliated epithelial cells, and bronchial and nasal goblet cells—display substantially lower ISC values. Low local ISC (ISCL) suggests that these populations overlap with neighboring cell states, whereas low global ISC indicates greater transcriptional variability between individuals. These observations suggest that the current annotation framework may not fully capture the underlying biological heterogeneity of these epithelial compartments, making them strong candidates for further refinement.
9 Refine selected epithelial annotations
The presence of low ISC values indicates that these epithelial populations exhibit substantial variability across individuals, but the underlying source of this variability remains unclear. Differences may reflect unresolved biological heterogeneity or limitations of the current annotation framework. Although reclustering low-ISC populations or improving dataset integration are possible approaches, integration methods can also remove meaningful biological variation and reduce interpretability. Therefore, before refining the annotations, we first examine the available metadata to identify whether the observed variability is associated with known biological or technical factors captured in the HLCA dataset.
9.1 Explore metadata
Explore cell type-sample pseudobulk representation of only the cell type with low ISC.
PCA visualization of only low ISC cell types reveals substantial variability across samples, with pseudobulk profiles clustering according to their tissue of origin rather than forming a single homogeneous population. This pattern indicates that tissue-specific transcriptional programs contribute strongly to the observed inter-sample variability, suggesting that the low ISC of these epithelial annotations reflects biologically distinct tissue-associated states rather than annotation inconsistency alone.
9.2 Propose a new annotation for low ISC cell types
Based on the tissue-associated variability observed in the pseudobulk space, we refine low-ISC epithelial annotations by subdividing existing cell types according to their tissue of origin, generating more specific labels that capture airway-, nasal-, and lung-associated epithelial states. Additionally, multi-ciliated epithelial cells can also be classified as Deuterosomal and non-Deuterosomal.
After refining the low-ISC epithelial annotations using tissue-associated information, we rerun the same scTypeEval workflow to evaluate whether the proposed labels improve annotation consistency. According to the ISC-guided refinement principle, successful refinements should increase the consistency metric that identified the original limitation: splitting biologically distinct populations should improve global consistency while preserving local consistency, whereas merging overly similar populations should improve local consistency without reducing global consistency.
We will use the newly proposed annotation (annot2) as ident. This keeps the author’s original cell_type labels unchanged except for the low-ISC labels that were refined.
sceval_refined <-run_processing_data(scTypeEval = sceval_refined,ident ="annot2", # proposed annotationsample ="sample",min_samples =5,min_cells =10,verbose =FALSE)# Obtain HVG for this new annotationsceval_refined <-run_hvg(scTypeEval = sceval_refined,var_method ="scran",ngenes =2000,sample =TRUE,aggregation ="single-cell",black_list = blacklist_genes,ncores =4,verbose =FALSE)# Get PCA embeddings# remove data from single-cell grouping as we don't need itsceval_refined@data$`single-cell`<-NULLsceval_refined <-run_pca(scTypeEval = sceval_refined,ndim =30,verbose =FALSE)# Run dissimilarity matrices# recip_classif:Match computation may take some minutessceval_refined <-run_dissimilarity( sceval_refined,method ="recip_classif:Match",reduction =FALSE,ncores =6,verbose =FALSE)sceval_refined <-run_dissimilarity( sceval_refined,method ="Pseudobulk:Cosine",reduction =TRUE,verbose =FALSE)
Finally, we compare how ISC values have changed for the improved annotations and for the remaining annotation labels that were left unchanged.
11.1 Improvement of Integrated ISC
We define the integrated score as the product of local and global ISC per cell type. Let’s explore how much this integrated score improved after the annotation changes we applied.
First, harmonize and unify consistency scores before (original) and after reannotation (refined).
We can see from both the boxplot and the ISC scatter plot that the proposed reannotation successfully increases the ISC of the modified epithelial populations while leaving the remaining cell type labels largely unchanged. In particular, club cells, initially characterized by low ISCL and ISCG, showed concurrent increases in both metrics upon splitting into tissue-resolved subtypes, reflecting recovery of both inter-sample compactness and replicability. Likewise, merging bronchial and nasal goblet cells into a common mucosa goblet cell label improves local consistency, suggesting that these annotations were previously over-partitioned. Together, these results illustrate how ISC can be used not only to identify annotations that warrant refinement, but also to quantitatively validate that targeted changes improve annotation consistency without perturbing well-defined cell types.
12 Interpretation
This case study shows that low ISC in HLCA epithelial annotations is not simply technical noise, but largely reflects biologically structured heterogeneity linked to tissue context. By using ISC diagnostics to target specific low-consistency labels and refining them with metadata-informed splits (and selective merges), the revised annotation framework increases consistency where expected while preserving stable annotations elsewhere. Overall, the workflow demonstrates a practical strategy to move from a broad consensus atlas annotation toward a more reproducible and biologically interpretable labeling scheme across individuals.