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

系列文章目录

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

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

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

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


 本期主讲内容——t-sne聚类分析和寻找marker基因

介绍:T-SNE是一种用于探索高维数据的非线性降维算法。它将多维数据映射到适合于人类观察的两个或多个维度。

单细胞测序的意义:​根本在于细胞的异质性。就是说,细胞与细胞之间存在个体差异性,即便是出于同一位置的细胞,也可能在基因表达等方面存在一些差异。


一、课前准备

之前所使用的数据

R语言的IDE

二、过程

聚类分析的目的是根据细胞的差别所进行细胞分群,两个亚群的互相靠近代表着两个亚群之间的相关。

寻找marker基因目的是寻找在每个亚群中的标志基因,即提到那个基因立马想到对应的亚群。

直接运行代码就可以出线结果

代码如下

#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()

这张图可以看出这个基因在各个亚群之间的表达情况,颜色越深就代表表达越高,可以观察这个基因是不是差异基因。  

这个图是marker气泡图,它代表什么? 气泡的大小代表着基因在亚群中的占比颜色的深浅代表着她的表达程度,颜色越深表达程度越高。

 这个图就是利用T-SNE算法对所有的细胞进行分群,相互靠近的亚群代表着二者之间有联系。

这个图是基因在各个亚群中的小提琴图,一个黑点代表一个细胞,纵轴代表着表达水平,越高就代表着表达程度越高,

细胞亚群top20基因聚类热图,绘制这个图是为了进一步确认较为理想的分群结果,并确认比对找到可能作为亚群的特征基因。对每个亚群的top20的基因进行聚类分析观察结果。聚类分析不仅可以获得不同细胞亚群 top20 基因的表达模式,还可以判断同一亚群的基因是否能够聚集成类。因为这些同类的基因可能具有相似的功能,来自同一类型的细胞。


注意事项:因为这次的结果很多取决于之前的数据,所以必须要把上一届的内容也要用到,我已放进代码块中,如果之前内容已经取得,不想重复获取,只需将之前代码中的PDF开头的代码行到dev.off()代码行全部删掉,就不会将上一张的图形再绘制出来。

单细胞测序流程(五)t-sne聚类分析和寻找marker基因到这就结束了
下一章会讲解单细胞的细胞类型的注释
我所做的所有分析与教程的代码都会在我的个人公众号中,请打开微信搜索“生信学徒”进行关注,欢迎生信的研究人员和同学前来讨论分析。
ps:公众号刚刚建立比较简陋,但是该有的内容都不会少。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32784.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

突变检测数据分析专题

欢迎关注”生信修炼手册”! 随着NGS测序技术的发展&#xff0c;以WES, WGS, 靶向捕获测序为主的高通量数据分析广泛应用&#xff0c;本文整理了以SNP位点为主的突变检测数据分析资料。 首先是snp calling, 就不得不提gatk及其配套的最佳实践 外显子测序简介GATK4基本概念整理GA…

新冠病毒分型和突变分析(SARS-CoV2_ARTIC_Nanopore)

新冠病毒分型和突变分析&#xff08;SARS-CoV2_ARTIC_Nanopore&#xff09; 一. 本文使用Artic官方提供环境对Nanopore minion SARS-Cov-2测序数据&#xff0c;对新冠病毒突变及分型鉴定 二. 概览&#xff1a;按照惯例&#xff0c;先上一张概览图&#xff0c;浏览下分析流程步…

新版TCGA的甲基化数据分析

文章目录 加载数据甲基化差异分析甲基化可视化甲基化旭日图 TCGAbiolinks可以进行甲基化分析&#xff0c;但是功能不如 ChAMP强大&#xff0c;甲基化分析还是首推 ChAMP包。 不过为了了解TCGAbiolinks包&#xff0c;里面关于甲基化分析的部分还是要学习一下。 主要是甲基化差…

转录组-差异基因热图

top_de_exp<-dplyr::slice(de_result2,1:20)%>%#挑取差异最大的select(-c(2:8))%>%#去掉2-8列column_to_rownames(var"id")#列变行 de_result2为上一篇转录组-火山图得到的数据&#xff01; #第一种做图方式 library(pheatmap) pheatmap(log10(top_de_ex…

【bioinfo】二代测序在肿瘤突变检测中的错误来源和解决策略

文章目录 文献摘要NGS工作流程中的错误来源1&#xff09;FFPE样本&#xff1a;2&#xff09;DNA打断&#xff1a;3&#xff09;PCR扩增和聚合酶保真度&#xff1a;4&#xff09;测序平台&#xff1a;5&#xff09;数据分析&#xff1a; NGS工作流错误解决策略使用UID不使用UID …

Cell | 深度突变学习预测SARS-CoV-2受体结合域组合突变对ACE2结合和抗体逃逸的影响...

本文介绍一篇来自于苏黎世联邦理工学院的Joseph M. Taft在Cell上发表的工作——《Deep Mutational Learning Predicts ACE2 Binding and Antibody Escape to Combinatorial Mutations in the SARS-CoV-2 Receptor Binding Domain》。 SARS-CoV-2的持续变异以及对疫苗和中和抗体…

DNA 8. 癌症的突变异质性及寻找新的癌症驱动基因(MutSigCV)

点击关注&#xff0c;桓峰基因 桓峰基因 生物信息分析&#xff0c;SCI文章撰写及生物信息基础知识学习&#xff1a;R语言学习&#xff0c;perl基础编程&#xff0c;linux系统命令&#xff0c;Python遇见更好的你 120篇原创内容 公众号 桓峰基因公众号推出基于基因组变异数…

生物(一)ctDNA突变检测应用于肿瘤早期筛查

原创&#xff1a;yongzhe 提到cfDNA应用于肿瘤早期筛查&#xff0c;是一个充满希望和挑战的问题。目前的热门方向是甲基化&#xff0c;相当多一部分公司以此为研发方向&#xff0c;还包括ctDNA突变检测&#xff0c;cnv检测&#xff0c;CTC&#xff0c;外泌体检测等都在探索研究…

利用GATK4.1 mutect2寻找体细胞突变(SNV和INDEL)

今天梳理一下最最最最(最X100)常用的mutect2体细胞变异分析流程。主要用来分析肿瘤配对样本,寻找体细胞突变比如SNV和INDEL。官网上已经有了详细的英文版教程。 软件版本:GATK4.1.1.0 官网教程:https://gatk.broadinstitute.org/hc/en-us/articles/360035894731-Somatic…

GATK4 最佳实践-生殖细胞突变的检测与识别

欢迎关注"生信修炼手册"&#xff01; GATK4 对于体细胞突变和生殖细胞突变的检测分别给出了对应的pipeline: Germline SNPsIndelsSomatic SNVs Indels 本篇主要关注生殖细胞突变的分析流程Germline SNPsIndels。示意图如下&#xff1a; 图中红色方框部分的从Analysi…

GATK4最佳实践-体细胞突变的检测与识别

欢迎关注"生信修炼手册"&#xff01; 分析体细胞突变时&#xff0c;通常采用tumor_vs_nomal 的实验设计。在检测时&#xff0c;由于同时会检测出生殖细胞突变和体细胞突变&#xff0c;需要做的就是去除生殖细胞突变位点&#xff0c;那么剩下的就是体细胞突变位点了&a…

TCGA差异表达分析|2022.5.1更新

作者&#xff1a;Squirrelity 2022-07-18 补充说明 最近R更新了&#xff0c;很多包都用不了&#xff0c;如果遇到报错或者是运行不了有可能是因为版本问题。 一、加载对应的R包 这里用到十三个包&#xff08;距离上次更新之后又新增了不少方法/包&#xff09;&#xff1a; lib…

病理基因突变综述

颜锐, 梁智勇, 李锦涛, 任菲. 基于深度学习和H&E染色病理图像的肿瘤相关指标预测研究综述[J]. 计算机科学, 2022, 49(2): 69-82. YAN Rui, LIANG Zhi-yong, LI Jin-tao, REN Fei. Predicting Tumor-related Indicators Based on Deep Learning and H&E Stained Patholo…

maftools|TCGA肿瘤突变数据的汇总,分析和可视化

之前介绍了使用maftools | 从头开始绘制发表级oncoplot&#xff08;瀑布图&#xff09; R-maftools包绘制组学突变结果&#xff08;MAF&#xff09;的oncoplot或者叫“瀑布图”&#xff0c;以及一些细节的更改和注释。 本文继续介绍maftools对于MAF文件的其他应用&#xff0c;为…

生信-记一次NCBI-R语言-淋巴癌突变与未突变基因的差异分析

关键词&#xff1a;基因芯片、R、筛选、预处理、差异分析 NCBI-淋巴癌突变与未突变基因的差异分析 PS&#xff1a;好久没分享生信了&#xff0c;这是一年前做的一次生信task&#xff08;准确来说是2018年11月了&#xff09;&#xff0c;这里分享一下给大家&#xff0c;有助于一…

TCGA 亚型突变负荷代码

#1、准备文件/数据并加载相应的包 #1.1下载并加载相应的包&#xff0c;有就直接加载&#xff0c;没有就下载后再加载。 install.packages("pacman") library(pacman) p_load(TCGAbiolinks,DT,tidyverse) BiocManager::install("TCGAbiolinks") library(t…

四、肿瘤全基因组学体细胞点突变特征(The repertoire of mutational signatures in human cancer)

全文链接 一、肿瘤突变特征&#xff1a;碱基置换及插入、缺失突变 单碱基置换&#xff08;49种特征类型&#xff0c;single-base-substitution&#xff0c;SBS&#xff09; 双碱基置换&#xff08;11种特征类型&#xff0c;doublet-base-substitution&#xff0c;DBS&#xf…

TCGA_联合GTEx分析2_查看批次效应

在 TCGA_联合GTEx分析1_得到表达矩阵.tpm_老实人谢耳朵的博客-CSDN博客 中&#xff0c;获取了TCGA和GTEx中样本的表达矩阵数据&#xff0c;数据格式均为tpm。本文对二者进行合并后&#xff0c;通过PCA分析、绘制内参箱线图等方法&#xff0c;查看是否存在批次效应。 关于批次效…

提取TCGA 中体细胞突变数据的表达矩阵

#因为之前的命令调用GDCquery_Maf 发现用不了 #故找到了一些其他的方法&#xff0c;并且自己试着将其弄成了一个表达矩阵。 #代码如下 #1、下载加载相应的包 install.packages("pacman") library(pacman) p_load(TCGAbiolinks,DT,tidyverse) BiocManager::insta…

chatgpt赋能python:Python抢票的绝招

Python 抢票的绝招 随着互联网技术的不断发展&#xff0c;越来越多的人开始享受网购的便利。但是&#xff0c;随着一些热门事件的到来&#xff0c;如演唱会、体育比赛等&#xff0c;大家面临同一个问题&#xff1a;如何抢到热门事件的门票&#xff1f;这时&#xff0c;Python …