thank you. This is exactly what I was looking for
I used SCTnormalization and Seurat integration to integrate 3 scRNA-seq datasets. After manual annotation using RNA assay, I have one particular cluster of cells with overexpressed different T cells markers.
So, to find heterogeneity of T cells I subclustered that particular cluster:
hcc_alv_Tcells <- subset(hcc_alv_sct, subset = cell_type == "T cells")
hcc_alv_Tcells <- CreateSeuratObject(hcc_alv_Tcells@assays$RNA@counts) |>
NormalizeData(normalization.method = "LogNormalize", scale.factor = 10000) |>
FindVariableFeatures(selection.method = "vst", nfeatures = 2000) |>
ScaleData(features = rownames(hcc_alv_Tcells))
hcc_alv_Tcells <- Seurat::RunPCA(hcc_alv_Tcells, verbose = FALSE)
hcc_alv_Tcells <- Seurat::RunUMAP(hcc_alv_Tcells, reduction = "pca", dims = 1:15)
hcc_alv_Tcells <- Seurat::FindNeighbors(hcc_alv_Tcells, reduction = "pca", dims = 1:15)
hcc_alv_Tcells <- Seurat::FindClusters(hcc_alv_Tcells, resolution = 0.1)
The resulting clusters were separated by samples:
What is the best way to subcluster T cells cluster to find T cell subtypes in this case?
1 answer
This step here:
hcc_alv_Tcells <- CreateSeuratObject(hcc_alv_Tcells@assays$RNA@counts)
creates an entirely new Seurat object from the raw counts. Notably neither FindIntegrationAnchors nor IntegrateData were used to create this object, or executed on this object to eliminate any batch effects. It should be no surprise that the batch effect you had initially corrected "came back."
If you want the batch effect to go away (using counts), you're stuck with the features produced by IntegrateData. That means either sticking with the original integrated features, or re-running FindIntegrationAchors and IntegrateData on only the cells from this cluster.
You can also use @assays$Integrated@data which is batch-corrected to overwrite the default normalization; e.g.
obj <- CreateSeuratObject(hcc_alv_Tcells@assays$RNA@counts)
NormalizeData(obj, normalization.method = "LogNormalize", scale.factor = 10000) # create the data slot
obj@data <- hcc_alv_Tcells@data
# proceed as before
Log in to answer this question.
This feels like an annotation issue more than anything else. Don't know how to fix - hence why this is a comment and not an answer- but look for a better annotation.
First of all, are you comfortable seeing separate
S2_hcccluster away from yourS1_hccandS3_hccclusters? I m hinting you that there could be a batch effect in your study. You can useCellTypistto annotate your T Cells cluster. https://www.celltypist.org/tutorials