曾老板在小红书上看到一个有意思的帖子发给了我,里面提到了一个单细胞数据的分析结果:「肝脏的单细胞分群注释的时候发现其中一个亚群8和t细胞在一起但不表达cd3和常见的maker,博主进行了求助问可能是什么类型的细胞!」这种问题的探索感觉是最有意思的了,下面就找个肝脏的数据来看看。
小红书上的那位博主的数据结果图:确实看起来很诡异,右下角是一个评论区让其绘制的几个基因的umap特征图,基因为 “PRKCH”,”DPYD”,”KLF12″,”MAML2″,”ARHGAP15″,但是这几个基因我查了一下没有什么特别的地方,看着就像是从博主提供的差异表格中摘取来的。
note:原贴大家可以使用这篇微信文章的标题去小红书搜就能搜到了。
找一个肝癌单细胞数据
探索上面的问题得有米啊,我这就自己去找了一个数据,搜到了一篇肝癌数据库类似的文献,2025年发表在Journal of Genetics and Genomics的文献《uniLIVER: a human liver cell atlas for data-driven cellular state mapping》,作者收集了来自5个公开数据集和一个内部数据集的79个正常人类肝脏样本,以及来自12个数据集的439个异常或疾病样本。构建了一个综合的、数据驱动的人类肝脏细胞图谱uniLIVER。
可以下载整合好的数据:http:///database/uniliver
左边可以下载买个文献单独的h5ad文件,右边可以下载整合好的数据h5ad文件。
我这里选择了其中的数据:https://www.ncbi.nlm./geo/query/acc.cgi?acc=GSE189903
数据包含:seven liver cancer patients (four hepatocellular carcinoma, HCC and three intrahepatic cholangiocarcinoma, iCCA)
GSE189903_Info.txt.gz 558.5 Kb (ftp)(http) TXT # 数据注释信息
GSE189903_RAW.tar 935.9 Mb (http)(custom) TAR (of H5) # H5文件,含有背景barcode
GSE189903_barcodes.tsv.gz 461.0 Kb (ftp)(http) TSV # 三个标准文件
GSE189903_genes.tsv.gz 194.7 Kb (ftp)(http) TSV
GSE189903_matrix.mtx.gz 372.8 Mb (ftp)(http)
采样如下:
a:不同区域组织取样示意图
b:不同样本颜色的恶性细胞tnse图,c图不同取样区域上色
d:不同样本的层次聚类图:同一个病人的样本会聚在一起
e:代表性MRI影像图
分析看看
首先将数据去读进来:
###
### Create: Jianming Zeng
### Update Log: 2024-12-09 by juan zhang ([email protected])
###
rm(list=ls())
options(stringsAsFactors = F)
library(ggsci)
library(dplyr)
library(future)
library(Seurat)
library(clustree)
library(cowplot)
library(data.table)
library(ggplot2)
library(patchwork)
library(stringr)
library(qs)
library(Matrix)
# 创建目录
getwd()
gse <- "GSE189903"
dir.create(gse)
# 方式一:标准文件夹
###### step1: 导入数据 ######
counts <- Read10X("GSE189903/GSE189903/", gene.column = 2)
dim(counts)
counts[1:5,1:5]
meta <- read.table("GSE189903/GSE189903_Info.txt.gz",header = T,sep = "t")
head(meta)
rownames(meta) <- meta$Cell

identical(rownames(meta),colnames(counts))
sce.all <- CreateSeuratObject(counts, min.cells = 3, meta.data = meta)
sce.all
head([email protected])
table(sce.all$Type)
library(qs)
qsave(sce.all, file="GSE189903/sce.all.qs")
数据带有做好的注释,但是这里的注释还有点奇怪,「有一堆数据注释成了:unclassified,是不是上面的同样的那群啊!」
预处理并降维聚类分群注释
简单QC一下并降为聚类分群,这里我没有惊醒harmony,因为作者的数据单纯merge在一起的分群结果就挺好:
library(harmony)
library(qs)
library(Seurat)
library(clustree)
###### step3: harmony整合多个单细胞样品 ######
dir.create("2-harmony")
getwd()
# 读取数据
sce.all.filt <- qread("1-QC/sce.all.filt.qs")
# 默认 ScaleData 没有添加"nCount_RNA", "nFeature_RNA"
sce.all.filt
print(dim(sce.all.filt))
head([email protected])
# 走标准流程
sce.all.filt <- NormalizeData(sce.all.filt, normalization.method = "LogNormalize",scale.factor = 1e4)
sce.all.filt <- FindVariableFeatures(sce.all.filt, nfeatures = 2000)
sce.all.filt <- ScaleData(sce.all.filt)
sce.all.filt <- RunPCA(sce.all.filt, features = VariableFeatures(object = sce.all.filt))
# 降维聚类,UMAP降维
sce.all.filt <- FindNeighbors(sce.all.filt, dims = 1:20)
sce.all.filt <- FindClusters(sce.all.filt, resolution = 0.5)
head(Idents(sce.all.filt), 5)
str([email protected])
head(sce.all.filt$RNA_snn_res.0.5)
head(sce.all.filt$seurat_clusters)
sce.all.filt <- RunUMAP(sce.all.filt, dims = 1:20, reduction = "pca")
p <- DimPlot(sce.all.filt, reduction = "umap",label=T,group.by = "Sample")
p
ggsave(filename='2-harmony/umap-by-orig.ident-before-harmony.png',plot = p, width = 6,height = 5.5)
不同样本上色umap图:
看看各种marker情况: