seurat icon indicating copy to clipboard operation
seurat copied to clipboard

Visium cluster annotation

Open FraMont1 opened this issue 1 year ago • 1 comments

Hi, Seurat team! I wanted to thank you for creating such a powerful tool.

I am analyzing two Visium datasets: one before treatment and one after treatment of the same organ (I do not have a paired scRNA-seq). I am following your tutorial for the Visium analysis and I am trying to annotate the different cell clusters that I identified. In particular, I am interested in B-cells. When I run the FindAllMarkers command for the cell clusters annotation, I am not able to identify all the canonical markers for B-cells. Considering that each spot could represent more than one cell, is it correct to subset the cells based on the expression of the canonical markers for B-cells and annotate them as B-cells?

This is the code that I used:

#Load
A_Treatment <- Load10X_Spatial('~/Desktop/VISIUM/8653/',filename = "filtered_feature_bc_matrix.h5", slice = "tissue_hires_image.png")
#QC
A_Treatment <- PercentageFeatureSet(A_Treatment, "^MT-", col.name = "percent_mito")
VlnPlot(A_Treatment, features = c("nCount_Spatial", "nFeature_Spatial", "percent_mito"), pt.size = 0.1, ncol = 2) + NoLegend()
SpatialFeaturePlot(A_Treatment, features = c("nCount_Spatial", "nFeature_Spatial", "percent_mito"))
A_Treatment <- A_Treatment[, A_Treatment$nFeature_Spatial > 200 & A_Treatment$nCount_Spatial > 200 & A_Treatment$percent_mito < 30]
SpatialFeaturePlot(A_Treatment, features = c("nCount_Spatial", "nFeature_Spatial", "percent_mito"))
#run SCTransform
A_Treatment <- SCTransform(A_Treatment, assay = "Spatial", verbose = FALSE)

#Load
B_Treatment <- Load10X_Spatial('~/Desktop/VISIUM/7085/',filename = "filtered_feature_bc_matrix.h5", slice = "tissue_hires_image.png")
#QC
B_Treatment <- PercentageFeatureSet(B_Treatment, "^MT-", col.name = "percent_mito")
VlnPlot(B_Treatment, features = c("nCount_Spatial", "nFeature_Spatial", "percent_mito"), pt.size = 0.1, ncol = 2) + NoLegend()
SpatialFeaturePlot(B_Treatment, features = c("nCount_Spatial", "nFeature_Spatial", "percent_mito"))
B_Treatment <- B_Treatment[, B_Treatment$nFeature_Spatial > 200 & B_Treatment$nCount_Spatial > 200 & B_Treatment$percent_mito < 30]
SpatialFeaturePlot(B_Treatment, features = c("nCount_Spatial", "nFeature_Spatial", "percent_mito"))
#run SCTransform
B_Treatment <- SCTransform(B_Treatment, assay = "Spatial", verbose = FALSE)

#Create a list
Treatment_list <- list(Object_name1 = A_Treatment, 
                 Object_name2 = B_Treatment)

#Integrate
st.features = SelectIntegrationFeatures(Treatment_list, nfeatures = 3000, verbose = FALSE)
Treatment_list <- PrepSCTIntegration(object.list = Treatment_list, anchor.features = st.features)
combined.anchors <- FindIntegrationAnchors(object.list = Treatment_list, normalization.method = "SCT",
                                            anchor.features = st.features)
Treatment.integrated <- IntegrateData(anchorset = combined.anchors, normalization.method = "SCT")
Treatment.integrated <- RunPCA(Treatment.integrated, verbose = FALSE)
Treatment.integrated <- FindNeighbors(Treatment.integrated, dims = 1:30)
Treatment.integrated <- FindClusters(Treatment.integrated, verbose = FALSE)
Treatment.integrated <- RunUMAP(Treatment.integrated, dims = 1:30)
DimPlot(Treatment.integrated, reduction = "umap", group.by = c("ident", "orig.ident"))
SpatialDimPlot(Treatment.integrated, ncol = 4)

#Identify markers
Treatment.integrated <- PrepSCTFindMarkers(Treatment.integrated)
de_markers <- FindAllMarkers(Treatment.integrated, only.pos = TRUE, assay = "SCT")
#subset B-cells
Treatment_B_cells <- subset(Treatment.integrated, subset = MS4A1 > 0 & CD79A > 0)

Thank you for the answer. Best, Francesco

FraMont1 avatar Sep 03 '23 17:09 FraMont1

@FraMont1 Hi, did you find a solution for this?

Thanks!

Umaarasu avatar Apr 25 '24 21:04 Umaarasu

Hi,

Thanks for your question! This a limitation of spatial data, as you mention, because it's not truly single-cell. You could try techniques like RCTD to deconvolve this spot further (see our spatial vignettes for more details).

In an effort to more promptly address user issues, we’ve started asking users to direct questions like this to our Discussions board, where community members and developers can provide more targeted assistance, as this seems like an active

We’re going to close this issue for now but strongly encourage you to repost your question in the other forum if you need more help!

mhkowalski avatar Jun 24 '24 15:06 mhkowalski