系列文章目录

单细胞测序流程(一)简介与数据下载

单细胞测序流程(二)数据整理

单细胞测序流程(三)质控和数据过滤——Seurat包分析,小提琴图和基因离差散点图

单细胞测序流程(四)主成分分析——PCA

单细胞测序流程(五)t-sne聚类分析和寻找marker基因


 本期主讲内容——单细胞的细胞类型的注释

课前了解:GO:是一个数据库,旨在建立一个适用于各种物种的,对基因和蛋白质功能进行限定和描述的,并能随着研究不断深入而更新的语义词汇标准。GO 提供了一系列的语义用于描述基因功能,以及这些概念之间的关系。这些语义分为三种不同的种类:细胞学组件(CC),用于描述亚细胞结构、位置和大分子复合物,如核仁、端粒和识别起始的复合物等;分子功能(MF),用于描述基因、基因产物个体的功能,如与碳水化合物结合或ATP水解酶活性等;生物学途径(BP:),分子功能的有序组合,达成更广的生物功能,如有丝分裂或嘌呤代谢等。


一、课前准备

之前所使用的数据

R语言的IDE


二、过程

直接运行代码就可以出现结果,但是我们需要了解单细胞注释的目的是什么!

目的:将之前所进行聚类分群的细胞亚群进行注释,以便之后的研究。

注释方法:1.软件注释

2.人工注释

我们这次所进行的注释是通过使用R语言所进行细胞类型的注释。

代码如下:

#if (!requireNamespace("BiocManager", quietly = TRUE))
#    install.packages("BiocManager")
#BiocManager::install("singscore")
#BiocManager::install("GSVA")
#BiocManager::install("GSEABase")
#BiocManager::install("limma")#install.packages("devtools")
#library(devtools)
#devtools::install_github('dviraran/SingleR')
library(limma)
library(Seurat)
library(dplyr)
library(magrittr)
setwd("文件目录")             #设置工作目录#读取文件,并对重复基因取均值
rt=read.table("geneMatrix.txt",sep="\t",header=T,check.names=F)
rt=as.matrix(rt)
rownames(rt)=rt[,1]
exp=rt[,2:ncol(rt)]
dimnames=list(rownames(exp),colnames(exp))
data=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=dimnames)
data=avereps(data)#将矩阵转换为Seurat对象,并对数据进行过滤
pbmc <- CreateSeuratObject(counts = data,project = "seurat", min.cells = 3, min.features = 50, names.delim = "_",)
#使用PercentageFeatureSet函数计算线粒体基因的百分比
pbmc[["percent.mt"]] <- PercentageFeatureSet(object = pbmc, pattern = "^MT-")
pdf(file="04.featureViolin.pdf",width=10,height=6)           #保存基因特征小提琴图
VlnPlot(object = pbmc, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3)
dev.off()
pbmc <- subset(x = pbmc, subset = nFeature_RNA > 50 & percent.mt < 5)    #对数据进行过滤#测序深度的相关性绘图
pdf(file="04.featureCor.pdf",width=10,height=6)              #保存基因特征相关性图
plot1 <- FeatureScatter(object = pbmc, feature1 = "nCount_RNA", feature2 = "percent.mt",pt.size=1.5)
plot2 <- FeatureScatter(object = pbmc, feature1 = "nCount_RNA", feature2 = "nFeature_RNA",,pt.size=1.5)
CombinePlots(plots = list(plot1, plot2))
dev.off()#对数据进行标准化
pbmc <- NormalizeData(object = pbmc, normalization.method = "LogNormalize", scale.factor = 10000)
#提取那些在细胞间变异系数较大的基因
pbmc <- FindVariableFeatures(object = pbmc, selection.method = "vst", nfeatures = 1500)
#输出特征方差图
top10 <- head(x = VariableFeatures(object = pbmc), 10)
pdf(file="04.featureVar.pdf",width=10,height=6)              #保存基因特征方差图
plot1 <- VariableFeaturePlot(object = pbmc)
plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)
CombinePlots(plots = list(plot1, plot2))
dev.off()##PCA分析
pbmc=ScaleData(pbmc)                     #PCA降维之前的标准预处理步骤
pbmc=RunPCA(object= pbmc,npcs = 20,pc.genes=VariableFeatures(object = pbmc))     #PCA分析#绘制每个PCA成分的相关基因
pdf(file="05.pcaGene.pdf",width=10,height=8)
VizDimLoadings(object = pbmc, dims = 1:4, reduction = "pca",nfeatures = 20)
dev.off()#主成分分析图形
pdf(file="05.PCA.pdf",width=6.5,height=6)
DimPlot(object = pbmc, reduction = "pca")
dev.off()#主成分分析热图
pdf(file="05.pcaHeatmap.pdf",width=10,height=8)
DimHeatmap(object = pbmc, dims = 1:4, cells = 500, balanced = TRUE,nfeatures = 30,ncol=2)#1:4是热图分成几个,ncol是分为几列。
dev.off()#每个PC的p值分布和均匀分布
pbmc <- JackStraw(object = pbmc, num.replicate = 100)
pbmc <- ScoreJackStraw(object = pbmc, dims = 1:20)
pdf(file="05.pcaJackStraw.pdf",width=8,height=6)
JackStrawPlot(object = pbmc, dims = 1:20)
dev.off()
#
#
##TSNE聚类分析
pcSelect=20
pbmc <- FindNeighbors(object = pbmc, dims = 1:pcSelect)                #计算邻接距离
pbmc <- FindClusters(object = pbmc, resolution = 0.5)                  #对细胞分组,优化标准模块化
pbmc <- RunTSNE(object = pbmc, dims = 1:pcSelect)                      #TSNE聚类
pdf(file="06.TSNE.pdf",width=6.5,height=6)
TSNEPlot(object = pbmc, do.label = TRUE, pt.size = 2, label = TRUE)    #TSNE可视化
dev.off()
write.table(pbmc$seurat_clusters,file="06.tsneCluster.txt",quote=F,sep="\t",col.names=F)##寻找差异表达的特征
logFCfilter=0.5
adjPvalFilter=0.05
pbmc.markers <- FindAllMarkers(object = pbmc,only.pos = FALSE,min.pct = 0.25,logfc.threshold = logFCfilter)
sig.markers=pbmc.markers[(abs(as.numeric(as.vector(pbmc.markers$avg_logFC)))>logFCfilter & as.numeric(as.vector(pbmc.markers$p_val_adj))<adjPvalFilter),]
write.table(sig.markers,file="06.markers.xls",sep="\t",row.names=F,quote=F)top10 <- pbmc.markers %>% group_by(cluster) %>% top_n(n = 10, wt = avg_logFC)
#绘制marker在各个cluster的热图
pdf(file="06.tsneHeatmap.pdf",width=12,height=9)
DoHeatmap(object = pbmc, features = top10$gene) + NoLegend()
dev.off()#绘制marker的小提琴图
pdf(file="06.markerViolin.pdf",width=10,height=6)
VlnPlot(object = pbmc, features = c("IGLL5", "MBOAT1"))
dev.off()#绘制marker在各个cluster的散点图
pdf(file="06.markerScatter.pdf",width=10,height=6)
FeaturePlot(object = pbmc, features = c("IGLL5", "MBOAT1"),cols = c("green", "red"))
dev.off()#绘制marker在各个cluster的气泡图
pdf(file="06.markerBubble.pdf",width=12,height=6)
cluster10Marker=c("MBOAT1", "NFIB", "TRPS1", "SOX4", "CNN3", "PIM2", "MZB1", "MS4A1", "ELK2AP", "IGLL5")
DotPlot(object = pbmc, features = cluster10Marker)
dev.off()#
#
#这一章的代码从这里开始###################################07.注释细胞类型###################################
library(SingleR)
counts<-pbmc@assays$RNA@counts
clusters<-pbmc@meta.data$seurat_clusters
ann=pbmc@meta.data$orig.ident
singler = CreateSinglerObject(counts, annot = ann, "pbmc", min.genes = 0,species = "Human", citation = "",ref.list = list(), normalize.gene.length = F, variable.genes = "de",fine.tune = F, do.signatures = T, clusters = clusters, do.main.types = T,reduce.file.size = T, numCores = 1)
singler$seurat = pbmc
singler$meta.data$xy = pbmc@reductions$tsne@cell.embeddings
clusterAnn=singler$singler[[2]]$SingleR.clusters.main$labels
write.table(clusterAnn,file="07.clusterAnn.txt",quote=F,sep="\t",col.names=F)
write.table(singler$other,file="07.cellAnn.txt",quote=F,sep="\t",col.names=F)#准备monocle分析需要的文件
monocle.matrix=as.matrix(pbmc@assays$RNA@data)
monocle.matrix=cbind(id=row.names(monocle.matrix),monocle.matrix)
write.table(monocle.matrix,file="07.monocleMatrix.txt",quote=F,sep="\t",row.names=F)
monocle.sample=as.matrix(pbmc@meta.data)
monocle.sample=cbind(id=row.names(monocle.sample),monocle.sample)
write.table(monocle.sample,file="07.monocleSample.txt",quote=F,sep="\t",row.names=F)
monocle.geneAnn=data.frame(gene_short_name = row.names(monocle.matrix), row.names = row.names(monocle.matrix))
monocle.geneAnn=cbind(id=row.names(monocle.geneAnn),monocle.geneAnn)
write.table(monocle.geneAnn,file="07.monocleGene.txt",quote=F,sep="\t",row.names=F)
write.table(singler$other,file="07.monocleClusterAnn.txt",quote=F,sep="\t",col.names=F)
write.table(sig.markers,file="07.monocleMarkers.txt",sep="\t",row.names=F,quote=F)

三、结果

代码行从

#准备monocle分析需要的文件

这一行开始所产生的文件是下一个章节所用熬的文件和数据,需要记住位置和妥善保存。

这一章节的所有结果都是txt文件,我讲解会用截图进行讲解。

从这张图可以看出 每个细胞亚群的细胞类型,比如说10号亚群是B细胞

这个图的命名为CELLann代表着每个样本,每个细胞属于什么细胞类型,对细胞的类型进行注释

这个文件的命名为monocleMarkers.txt,这个文件代表着各亚群中的marker基因

这个文件可以看出每个样品中基因数,UMI数,线粒体数。

结尾

因为这次的结果很多取决于之前的数据,所以必须要把上一届的内容也要用到,我已放进代码块中,如果之前内容已经取得,不想重复获取,只需将之前代码中的PDF开头的代码行到dev.off()代码行全部删掉,就不会将上一张的图形再绘制出来。
单细胞测序流程(六)单细胞的细胞类型的注释到此就结束了
下一章会讲解单细胞的轨迹分析,这次很多取得的数据都会用于下次课程不要删除哦。
我所做的所有分析与教程的代码都会在我的个人公众号中,请打开微信搜索“生信学徒”进行关注,欢迎生信的研究人员和同学前来讨论分析。
ps:公众号刚刚建立比较简陋,但是该有的内容都不会少。

单细胞测序流程(六)单细胞的细胞类型的注释相关推荐

  1. 单细胞测序流程(七)单细胞的细胞类型轨迹分析

    系列文章目录 单细胞测序流程(一)简介与数据下载 单细胞测序流程(二)数据整理 单细胞测序流程(三)质控和数据过滤--Seurat包分析,小提琴图和基因离差散点图 单细胞测序流程(四)主成分分析--P ...

  2. 单细胞测序流程(九)单细胞的GO圈图

    系列文章目录 文章目录 单细胞测序流程(一)简介与数据下载 单细胞测序流程(二)数据整理 单细胞测序流程(三)质控和数据过滤--Seurat包分析,小提琴图和基因离差散点图 单细胞测序流程(四)主成分 ...

  3. 单细胞测序流程(八)单细胞的marker基因转化和​GO富集分析

    系列文章目录 单细胞测序流程(一)简介与数据下载 单细胞测序流程(二)数据整理 单细胞测序流程(三)质控和数据过滤--Seurat包分析,小提琴图和基因离差散点图 单细胞测序流程(四)主成分分析--P ...

  4. 单细胞测序流程(五)t-sne聚类分析和寻找marker基因

    系列文章目录 单细胞测序流程(一)简介与数据下载 单细胞测序流程(二)数据整理 单细胞测序流程(三)质控和数据过滤--Seurat包分析,小提琴图和基因离差散点图 单细胞测序流程(四)主成分分析--P ...

  5. SCS【6】单细胞转录组之细胞类型自动注释 (SingleR)

    点击关注,桓峰基因 桓峰基因公众号推出单细胞系列教程,有需要生信分析的老师可以联系我们!首选看下转录分析教程整理如下: Topic 6. 克隆进化之 Canopy Topic 7. 克隆进化之 Car ...

  6. 单细胞测序流程(四)主成分分析——PCA

    PCA PCA:线性降维,主要用于数据少的时候使用.看结果的时候,看打分的绝对值大小,而不是单独的看数据的大小,PCA 是最常用的降维方法,通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望 ...

  7. 单细胞测序流程(三)质控和数据过滤——Seurat包分析,小提琴图和基因离差散点图

    质控和数据过滤 准备工具:R. 准备数据:上期经过整理的数据geneMatrix. 注意事项:R的安装目录和文件所在位置都不可有英文. R 语言所需安装的包: #if (!requireNamespa ...

  8. 单细胞分析实录(7): 差异表达分析/细胞类型注释

    前面已经讲解了: 单细胞分析实录(1): 认识Cell Hashing 单细胞分析实录(2): 使用Cell Ranger得到表达矩阵 单细胞分析实录(3): Cell Hashing数据拆分 单细胞 ...

  9. 单细胞测序流程(一)简介与数据下载

    ** 简介 ** 单细胞测序:单细胞测序从宏观来讲是指在单个细胞水平上进行测序. 单细胞转录组测序是指对于单个细胞水平上将mRNA反转录扩增后进行高通量测序的技术.单细胞测序通过在单个细胞水平上进行测 ...

最新文章

  1. 004-SLF4J的简单使用
  2. 计算机高办报名时间,前方高能!计算机信息技术证报名入口、考试时间已发布...
  3. ubuntu下动态链接库的编译和使用实例
  4. JavaScript常用数组操作
  5. jQuery 的属性操作方法
  6. 使用DM框架实现一个小的计算器
  7. 24.两两交换链表中的节点(力扣leetcode) 博主可答疑该问题
  8. Unity LitJson的教程
  9. P3376 【模板】网络最大流【EK算法+Dinic算法解】
  10. aws ssh 证书配置_在AWS Lambda中运行netflix bless ssh证书颁发机构
  11. 微信小程序在线考试系统 毕业设计(2)分类
  12. sqlserver with ties
  13. hdoj4826Labyrinth【dp】
  14. 爱国者P8880,完美展示!
  15. echarts x 起始_echarts实现获取datazoom的起始值(包括x轴和y轴)
  16. 目标检测-Oriented RepPoints for Aerial Object Detection(CVPR 2022)
  17. HTML+CSS篮球静态网页设计(web前端网页制作课作业)NBA杜兰特篮球运动网页
  18. 一类用 LCT 维护信息的题目
  19. 全球经济寒冬将至?且看顶级资本大鳄的大数据分析预测
  20. 关于手机的三大谣传 千万不可信

热门文章

  1. Python 实现自动获取种子磁力链接
  2. invokeAny和invokeAll的使用思路
  3. 【社区图书馆】读《悲惨世界》有感
  4. 【百度智能云】教程:连接百度ai开放平台api接口并完成语音识别的任务
  5. 要有所得,就要先有所失去
  6. 我的第一篇博文,鼓励一下自己好好学习
  7. centOS7, nginx 502 bad gateway
  8. webug————显错注入
  9. torch.arange (不是 torch.range,不要用torch.range)
  10. python通关-集合操作方法详解