Subclustering of intergated cells from scRNA-seq data
1
0
Entering edit mode
15 months ago
fifty_fifty ▴ 70

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.

enter image description here

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:

enter image description here

What is the best way to subcluster T cells cluster to find T cell subtypes in this case?

scRNA-seq Seurat • 1.1k views
ADD COMMENT
0
Entering edit mode

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.

ADD REPLY
0
Entering edit mode

First of all, are you comfortable seeing separate S2_hcc cluster away from your S1_hcc and S3_hcc clusters? I m hinting you that there could be a batch effect in your study. You can use CellTypist to annotate your T Cells cluster. https://www.celltypist.org/tutorials

ADD REPLY
2
Entering edit mode
15 months ago
LChart 4.7k

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
ADD COMMENT
0
Entering edit mode

thank you. This is exactly what I was looking for

ADD REPLY

Login before adding your answer.

Traffic: 1530 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6