单细胞测序流程(三)质控和数据过滤——Seurat包分析,小提琴图和基因离差散点图
单细胞测序流程(四)主成分分析——PCA
单细胞测序流程(五)t-sne聚类分析和寻找marker基因
本期主讲内容——单细胞的细胞类型的注释
课前了解
:GO:是一个数据库,旨在建立一个适用于各种物种的,对基因和蛋白质功能进行限定和描述的,并能随着研究不断深入而更新的语义词汇标准。GO 提供了一系列的语义用于描述基因功能,以及这些概念之间的关系。这些语义分为三种不同的种类:细胞学组件(CC),用于描述亚细胞结构、位置和大分子复合物,如核仁、端粒和识别起始的复合物等;分子功能(MF),用于描述基因、基因产物个体的功能,如与碳水化合物结合或ATP水解酶活性等;生物学途径(BP:),分子功能的有序组合,达成更广的生物功能,如有丝分裂或嘌呤代谢等。
代码如下:
#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)
系列文章目录单细胞测序流程(一)简介与数据下载单细胞测序流程(二)数据整理单细胞测序流程(三)质控和数据过滤——Seurat包分析,小提琴图和基因离差散点图单细胞测序流程(四)主成分分析——PCA单细胞测序流程(五)t-sne聚类分析和寻找marker基因本期主讲内容——单细胞的细胞类型的注释课前了解:GO:是一个数据库,旨在建立一个适用于各种物种的,对基因和蛋白质功能进行限定和描述的,并能随着研究不断深入而更新的语义词汇标准。GO 提供了一系列的语义用于描述基因功能,以及这些.
对照起来进行鉴别,但是有些细胞簇有两个marker,有些细胞簇的marker有重合,所以鉴别这一步具有比较大的主观性,需要结合多个数据库或者文献进行判断。
在完成鉴别后,创建一个新的字符向量保存细胞名称,顺序从0-12一一对应。
以下是我自己的判断结果:
new.cluster.ids <- c("Memory T cell","C..
使用的是10X Genomics
5k Peripheral blood mononuclear cells (PBMCs) from a healthy donor (v3 chemistry)
Single Cell Gene Expression Dataset by Cell Ranger 3.0.2
1.保持好习惯,先清空一下环境
rm(list = ls())
2. 读取下载的数据,文件夹中包括三个文件:1. barcodes.tsv 2. features.tsv ...
01 前言
不知道大家是否知道创建对象有多少种方法呢?我们通常创建对象都是以字面量的形式,以 var o = { } 的方式创建的对象是会连接到Object的原型上面,但是我们要是想创建一个我们自定义的对象怎么办呢?这就要使用到我们接下来讲解的 Object.create()方法了。
02 Object.c...
本期我们介绍一下如何使用Seurat包进行差异分析,以及如何使用SingleR进行细胞注释。😘
2用到的包
rm(list = ls())library(Seurat)library(tidyverse)library(SingleR)library(celldex)library(RColorBrewer)library(SingleCellExperiment)
3示例数据
这里我们还是使用之前建好的srat文件,我之前保存成了.Rdata,这里就直接加载了。🧐
load("./srat2.
康奈尔单细胞肌肉项目 (scMuscle) 旨在收集、分析并向研究界提供骨骼肌转录组数据。
我们使用来自 14 个不同研究小组的 100 多个单细胞和单核 RNA 测序数据集来构建鼠骨骼肌的综合转录组参考。 由此产生的纲要大约有 365,000 个细胞/核,我们使用一套现有的软件工具对其进行了注释(有关更多详细信息,请参阅链接的预印本)。
在这里,您将找到用于分析和可视化的所有 R 脚本 ( R_scripts/ ) 以及我们生成的一些补充资源 ( R_scripts/ supplemental_data/ )。 这些资源包括元数据详细信息、差异基因表达分析的输出以及一些其他有用的基因列表。
您还将找到我们的使用的代码的开发版本 ( web_app/ ),以及不同版本数据的详细信息 ( data_versions/ )
来自 McKellar 等人的代码和补充数据, bioR
MAESTRO(S的基于Odel等M A nalys(E S)英格尔-T细胞的ranscriptome和R egulö我)是一个综合的单细胞RNA-SEQ和ATAC-SEQ分析西装使用内置 。 MAESTRO结合了数十种工具和软件包,以创建一个集成的管道,从而可以从原始测序数据(fastq文件)一直进行比对,质量控制,细胞过滤,归一化,无监督聚类,差异表达,从而对scRNA-seq和scATAC-seq进行分析以及峰调用,细胞类型注释和转录调控分析。 目前,MAESTRO支持用于scRNA-seq协议的 , , ; 和用于scATAC-seq协议。
v1.0.0
释放MAESTRO。
v1.0.1
提供docker映像以方便安装。 请注意,泊坞窗不包括cellranger / cellranger ATAC以及相应的基因组索引。 请按照安装说明安装cell
该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用!
1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。
3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。
下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
--------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
用于分析单细胞RNA测序数据的MATLAB代码。
转录组数据的主要包装类是GeneSet。 它包含许多可视化例程,以及一些旧的聚类方法(Harris等,bioRxiv 2015)。
要使用ProMMT算法进行聚类(Harris等,bioRxiv 2017),请使用MixNB类。
要使用nbtSNE算法,请使用GeneSet中的ComputetSNE函数
要运行潜在因素分析,请使用NBpca
注意:很有可能其中一些代码调用了github仓库中还没有的辅助函数。 给我发电子邮件,如果您遇到错误,我将上载它们。
在单细胞测序中,细胞注释亚簇是通过识别高变基因来辨别细胞类型的。然而,除了免疫细胞比较容易分析外,其他细胞类型可能会让人感到困惑。有时候,即使在单细胞标记基因库中,一些原则上比较特异的基因(如S100A8和S100A9)也会在不同的细胞上出现。虽然这些基因在基因库中多被认为是中性粒细胞的标记基因,但在单细胞中捕获中性粒细胞是非常困难的,因为中性粒细胞本身的含量较少且较为脆弱。因此,如果贸然下结论为某个细胞是中性粒细胞,可能不利于后期的分析。[1]
为了进行细胞注释亚簇,可以使用一些工具和软件。例如,celaref是一个R包,可以通过参考数据对单细胞RNA测序数据进行细胞簇标记。它可以帮助识别和注释细胞类型。[3]
在单细胞测序流程中,细胞类型的注释是一个重要的步骤。通过使用合适的工具和参考数据,可以对单细胞数据进行细胞注释亚簇,从而更好地理解细胞的功能和特性。
沙茶还是土笋冻:
单细胞测序流程(三)质控和数据过滤——Seurat包分析,小提琴图和基因离差散点图
沙茶还是土笋冻:
单细胞测序流程(九)单细胞的GO圈图
Q.Y.N.829: