单细胞亚群降维聚类分群
大家好,这里是想做生信大恐龙🦖的生信小白,今天的暗杀目标是一个叫做‘降维聚类分析’的小boss,看完记得一键三连(点赞收藏+评论)。文章参考微信公众号“生信技能树”,也学生信的小伙伴可以关注哦!
前言
在单细胞和多细胞生物中,单个细胞之间的差异可以产生较大的功能影响。单细胞RNA测序方法揭示了组织组成、转录动态和基因之间的调控关系方面的新的生物学。不但如此,单细胞RNA测序可以指导细胞分类,更精确地确定细胞种类。
一、数据准备
1.打开 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE173087网站。
2. 下载17.4Mb的http文件,保存至一个没有中文名称的路径。
二、实现分类(过程记录)
1.引入相关库
引入相关库代码如下:
library(Seurat) #引入单细胞数据的质量控制和分析包
library(data.table) #引入data.frame包的拓展
如果没有下载这些包的小伙伴,可以使用下列代码下载相关的R包:
install.packages('Seurat')
install.packages('data.frame')
下载好相关包之后,运行出现了版本不兼容的警告。
使用下列代码更新R语言版本:
install.package('installr') #最好RGui中操作
library(installr)
updateR()
更新之后,紧接着出现了报错了
大概的意思是要我们使用install.packages(‘R.utils’)安装’R.utils’。按照它的要求进行。运行下列代码即可进行:
install.package('R.utils')
2.数据处理
接下来对数据进行处理,运行下列代码
library(Seurat) #引入单细胞数据的质量控制和分析包
library(data.table) #data.frame包的拓展类型
# 读入文件
ct=fread( 'C:/Users/86184/Desktop/exp/bioinf_student/single_data/GSE173087_Maize_rootsc_counts.txt.gz',data.table = F)
ct[1:4,1:4]
rownames(ct)=ct[,1]
ct=ct[,-1]
#使用原始数据初始化Seurat对象
maize <- CreateSeuratObject(counts = ct,
project = "maize",
min.cells = 3,
min.features = 200)
maize
#得到规范的数据
maize <- NormalizeData(maize, normalization.method = "LogNormalize",
scale.factor = 10000)
maize <- NormalizeData(maize)
#识别2000个高度变异的基因
maize <- FindVariableFeatures(maize, selection.method = "vst", nfeatures = 2000)
## 此外,缩放数据
all.genes <- rownames(maize)
maize <- ScaleData(maize, features = all.genes)
maize <- RunPCA(maize, features = VariableFeatures(object = maize),
verbose = FALSE)
maize <- FindNeighbors(maize, dims = 1:10, verbose = FALSE)
maize <- FindClusters(maize, resolution = 0.5, verbose = FALSE)
maize <- RunUMAP(maize, dims = 1:10, umap.method = "uwot", metric = "cosine")
table(maize$seurat_clusters)
phe=maize@meta.data
save(phe,file = 'phe-by-basic-seurat.Rdata')
# maize.markers <- FindAllMarkers(maize, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25, verbose = FALSE)
DimPlot(maize, reduction = "umap", group.by = 'seurat_clusters',
label = TRUE, pt.size = 0.5)
结果如下图:
可以看到2000个单细胞被分成了十八类。虽然对于Seurat原理我还不是很理解,但是对于R中的这个库的使用还是理解了一点。
总结
以上就是本次的内容,本文记录了学习“生信技能树”公众号的学徒任务中的单细胞降维聚类分群,大家有相关的想法可以评论交流,尤其是关于生物上的和语言上的,🦖都很感兴趣的。最后看到这里的小伙伴不妨一键三连啊(点赞评论+关注)