10X空间转录组可视化之Spaniel

hello,前面几篇分享的内容有点难,这一篇来一个简单的,对10X空间转录组进行可视化,下面放一张效果图,当然,很多都可以自己指定。

图片.png

安装与加载,读取10X数据

BiocManager::install('Spaniel')
library(Spaniel)
library(DropletUtils)
library(scater)
library(scran)
pathToTenXOuts <- file.path(system.file(package = "Spaniel"), "extdata/outs")

sce <- createVisiumSCE(tenXDir=pathToTenXOuts, 
                            resolution="Low")

SCE Object

colData(sce)[, c("Barcode", "pixel_x", "pixel_y")]
## DataFrame with 3352 rows and 3 columns 
##                 Barcode   pixel_x   pixel_y
##             <character> <numeric> <numeric>
## 1    AAACAAGTATCTCCCA-1   436.575   217.384
## 2    AAACACCAATAACTGC-1   141.480   161.721
## 3    AAACAGAGCGACTCCT-1   408.176   440.086
## 4    AAACAGCTTTCAGAAG-1   105.955   260.706
## 5    AAACAGGGTCTATATT-1   120.155   235.972
## ...                 ...       ...       ...
## 3348 TTGTTCAGTGTGCTAC-1   301.497   378.227
## 3349 TTGTTGTGTGTCAAGA-1   347.711   334.957
## 3350 TTGTTTCACATCCAGG-1   223.270   167.917
## 3351 TTGTTTCATTAGTCTA-1   180.620   155.525
## 3352 TTGTTTCCATACAACT-1   169.931   248.313

The image dimensions are added to the metadata of the SCE object:

metadata(sce)$ImgDims
## [1] "599" "600" "Low"

The image is stored as a rasterised grob.

metadata(sce)$Grob
## rastergrob[GRID.rastergrob.11]

Quality Control

Assessing the number of genes and number of counts per spot is a useful quality control step. Spaniel allows QC metrics to be viewed on top of the histological image so that any quality issues can be pinpointed. Spots within the tissue region which have a low number of genes or counts may be due to experimental problems which should be addressed. Conversely, spots which lie outside of the tissue and have a high number of counts or large number of genes may indicate that there is background contamination.

Visualisation

The plotting function allows the use of a binary filter to visualise which spots pass filtering thresholds. We create a filter to show spots where 1 or more gene is detected. Spots where no genes are detected will be removed from the remainder of the analysis.
NOTE: The parameters are set for the subset of counts used in this dataset.

The filter thresholds will be experiment specific and should be adjusted as necessary.

filter <- sce$detected > 0
spanielPlot(object = sce,
        plotType = "NoGenes", 
        showFilter = filter, 
        techType = "Visium", 
        ptSizeMax = 3)
图片.png
The filtered data can then be normalised using the “normalize” function from the “scater” package and the expression of selected genes can be viewed on the histological image.
sce <- logNormCounts(sce)

gene <- "ENSMUSG00000024843"
p2 <- spanielPlot(object = sce,
        plotType = "Gene", 
        gene = "ENSMUSG00000024843",
        techType = "Visium", 
        ptSizeMax = 3)

p2
图片.png

Cluster Spots

The spots can be clustered based on transcriptomic similarities. There are mulitple single cell clustering methods available. He we use a nearest-neighbor graph based approach available in the scran Bioconductor library.
library(scran)
sce <- logNormCounts(sce)
sce <- runPCA(sce)
sce <- runUMAP(sce)
g <- buildSNNGraph(sce, k = 70)

clust <- igraph::cluster_walktrap(g)$membership
sce$clust <- factor(clust)
p3 <- plotReducedDim(sce, "UMAP", colour_by="clust") 
p3
图片.png
p4 <- spanielPlot(object = sce,
        plotType = "Cluster", 
        clusterRes = "clust",
        showFilter = NULL, 
        techType = "Visium", 
        ptSizeMax = 1, customTitle = "Section A")  

p4
图片.png

画图的可扩展性很高,最有价值的展示方式就是两种细胞类型同时展示在一张图片上,看到两种细胞类型的空间关系,两种细胞类型的空间网络的连接关系,这些,就交给大家自由发挥了。

生活很好,有你更好

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容