全网最详细单细胞保姆级分析教程

各位读者,好久不见,我又归来了,之后的一段时候我将以Rstudio分析单细胞的RNA-seq流程为主,希望各位读者朋友多多支持!

1. pbmc单样本分析

1.包的加载

library(multtest)
library(dplyr)
library(Seurat)
library(patchwork)
library(R.utils)

2. 清除环境变量

rm(list = ls))

3. 下载示例数据并加压

download.file(url='https://cf.10xgenomics.com/samples/cell/pbmc3k/pbmc3k_filtered_gene_bc_matrices.tar.gz','~/Desktop/pbmc/mypbmc.gz')
untar(gunzip("mypbmc.gz"))

4.读取数据

pbmc.data <- Read10X(data.dir = '~/Desktop/pbmc/filtered_gene_bc_matrices/hg19')

请添加图片描述

5.创建seurat对象

pbmc <- CreateSeuratObject(counts = pbmc.data,project = 'pbmc3k',min.cells = 3,min.features = 200)

请添加图片描述

6. 获取 RNA 测序数据的计数矩阵

counts_matrix <- GetAssayData(pbmc, assay = "RNA", slot = "counts")

7. 质控及数据可视化

添加线粒体基因的百分比,用作评估细胞质量的指标之一

pbmc[['percemt.mt']] <- PercentageFeatureSet(pbmc,pattern = 'MT-')
head(pbmc@meta.data)
#                  orig.ident nCount_RNA nFeature_RNA percemt.mt
# AAACATACAACCAC-1     pbmc3k       2419          779  3.0177759
# AAACATTGAGCTAC-1     pbmc3k       4903         1352  3.7935958
# AAACATTGATCAGC-1     pbmc3k       3147         1129  0.8897363
# AAACCGTGCTTCCG-1     pbmc3k       2639          960  1.7430845
# AAACCGTGTATGCG-1     pbmc3k        980          521  1.2244898
# AAACGCACTGGTAC-1     pbmc3k       2163          781  1.6643551

8. 数据可视化

8.1 小提琴图
VlnPlot(pbmc,features = c('nCount_RNA','nFeature_RNA','percemt.mt'),pt.size = 0)

请添加图片描述

FeatureScatter(pbmc,feature1 = 'nCount_RNA',feature2 = 'nFeature_RNA')
FeatureScatter(pbmc,feature1 = 'nCount_RNA',feature2 = 'percemt.mt')

请添加图片描述

9. 数据归一化

pbmc <- NormalizeData(pbmc,normalization.method = 'LogNormalize',scale.factor = 10000)

数据归一化是数据分析中的常见步骤,旨在消除数据集中不同特征之间的量纲差异,并使它们在相同的尺度上进行比较。通过归一化,可以提高后续分析的准确性和可靠性。在这个例子中,使用 LogNormalize 方法对数据进行对数转换,并使用缩放因子 10000 进行调整。这有助于将数据转换为更适合分析的形式。

10. 寻找特征基因

pbmc <- FindVariableFeatures(pbmc,selection.method = 'vst',nfeatures = 2000)
# 指定使用的特征选择方法为 vst(方差稳定变换)。vst 是一种常用的方法,用于识别在不同样本或条件下具有较高方差的特征。选取2000个基因# VariableFeatures(pbmc) -- 可变特征列表
top10 <- head(VariableFeatures(pbmc),10)
# [1] "PPBP"   "S100A9" "IGLL5"  "LYZ"    "GNLY"   "FTL"    "PF4"    "FTH1"   "FCER1A" "GNG11" plot1 <- VariableFeaturePlot(pbmc)
plot2 <- LabelPoints(plot = plot1,points = top10,repel = TRUE,xnudge = 0,ynudge = 0)

请添加图片描述

11. 数据缩放 – 标准化

数据缩放是数据分析中的常见步骤,旨在将数据的特征值调整到相似的范围,以避免某些特征对分析结果的过度影响。

pbmc <- ScaleData(pbmc,features = rownames(pbmc))

12. 主成分分析(PCA)

主成分分析是一种常用的数据降维和可视化技术,它可以将高维数据投影到低维空间中,同时保留数据的主要特征和变异性。

用途

  • 数据可视化:通过绘制PCA的前几个主成分,可以观察数据的分布和聚类情况。
  • 特征选择:根据主成分的重要性,可以选择对数据解释贡献较大的特征。
  • 数据降维:将高维数据投影到低维空间中,减少数据的复杂性,便于后续分析。
pbmc <- RunPCA(pbmc,features = VariableFeatures(object = pbmc))
print(pbmc[['pca']],nfeatures = 5)
PC_ 1 
Positive:  MALAT1, LTB, IL32, CD2, ACAP1 
Negative:  CST3, TYROBP, LST1, AIF1, FTL 
PC_ 2 
Positive:  CD79A, MS4A1, TCL1A, HLA-DQA1, HLA-DRA 
Negative:  NKG7, PRF1, CST7, GZMA, GZMB 
PC_ 3 
Positive:  HLA-DQA1, CD79A, CD79B, HLA-DQB1, HLA-DPB1 
Negative:  PPBP, PF4, SDPR, SPARC, GNG11 
PC_ 4 
Positive:  HLA-DQA1, CD79A, CD79B, HIST1H2AC, HLA-DQB1 
Negative:  VIM, S100A8, S100A6, S100A4, S100A9 
PC_ 5 
Positive:  GZMB, FGFBP2, NKG7, GNLY, PRF1 
Negative:  LTB, VIM, AQP3, PPA1, MAL 
12.1 维度载荷图

维度载荷表示每个特征在主成分中的贡献程度。通过可视化维度载荷,可以了解哪些特征对主成分的形成起到了重要作用,以及不同特征之间的相关性。

VizDimLoadings(pbmc,dims = 1:3,reduction = 'pca',ncol = 3)

请添加图片描述

12.2 散点图
DimPlot(pbmc,reduction = 'pca')

请添加图片描述

12.3 热图

热图中的颜色表示细胞在每个主成分上的表达水平,颜色越深表示表达越高,颜色越浅表示表达越低。通过观察热图,可以了解不同细胞在主成分上的分布情况,以及主成分与细胞特征之间的关系。

DimHeatmap(pbmc,dims = 1:15,cells = 500,balanced = TRUE)
# 设置为 TRUE 时,热图将根据细胞在主成分上的表达值进行平衡,以突出不同细胞之间的差异。

请添加图片描述

13. 数据评估

13.1 重抽样分析

JackStraw 函数用于评估主成分分析(PCA)中特征的显著性。通过重抽样,可以生成多个随机数据集,并计算每个特征在这些随机数据集中的统计量(如 p 值),并将结果储存在pbmc对象中。

pbmc <- JackStraw(pbmc,num.replicate = 100)
# num.replicate = 100:指定重抽样的重复次数。在这里,设置为 100 次。

重抽样分析的结果可以用于以下方面:

  1. 特征选择:根据重抽样分析得到的 p 值,可以确定哪些特征在 PCA中具有显著的贡献。
  2. 模型评估:通过比较原始数据和重抽样数据的结果,可以评估PCA模型的稳定性和可靠性。
13.2 打分

ScoreJackStraw 函数用于计算每个主成分的 JackStraw 得分。JackStraw 得分是一种用于评估主成分中特征的显著性的指标。

pbmc <- ScoreJackStraw(pbmc,dims = 1:15)

得分结果可以用于以下方面:

  1. 特征选择:根据得分的大小,可以确定哪些主成分中的特征具有较高的显著性,从而可以选择这些特征进行进一步的分析或建模。
  2. 主成分解释:得分可以帮助解释每个主成分的生物学意义,通过查看得分较高的特征,可以了解主成分所代表的生物学过程或细胞状态。

请添加图片描述

JackStrawPlot 函数会绘制每个主成分的 JackStraw 得分分布情况。通过观察这些分布,可以评估每个主成分中特征的显著性。通常,显著的特征会在 JackStraw 得分分布中表现出较高的峰值或明显的分离。这意味着这些特征在主成分中具有较强的贡献,并且可能与数据的潜在结构或生物学意义相关。

散点图

#散点图
ElbowPlot(pbmc)

请添加图片描述

14. 聚类分析

14.1 FindNeighbors

FindNeighbors 函数会根据指定的主成分维度计算数据点之间的距离,并找到每个数据点的邻居。邻居的定义可以根据距离阈值或其他相似性度量来确定。通过运行这段代码,FindNeighbors 函数将在 pbmc 对象中查找邻居,并将结果存储在对象中。

pbmc <- FindNeighbors(pbmc,dims = 1:10)

邻居信息可以用于后续的分析:

  1. 聚类分析:可以使用邻居信息来进行聚类,将相似的数据点分组在一起。
  2. 可视化:可以绘制邻居关系图,以了解数据点之间的连接和分布情况。
  3. 差异表达分析:可以比较不同邻居组之间的基因表达差异。
14.2 FindClusters – 分群

FindClusters 函数会根据数据点之间的相似性将其分组到不同的聚类中。具体的聚类算法和相似性度量方法可能因函数的实现而有所不同。

pbmc <- FindClusters(pbmc,resolution = 0.5)
# resolution指定聚类的分辨率参数。分辨率值越高,得到的聚类数量就越多;分辨率值越低,得到的聚类数量就越少。

聚类结果可以用于进一步的分析,例如:

  1. 可视化:可以使用各种可视化方法(如 t-SNE 或 UMAP)来展示聚类结果,以便更好地理解数据的结构和分组情况。
  2. 差异表达分析:可以比较不同聚类之间的基因表达差异,以发现与聚类相关的生物学特征。
  3. 功能富集分析:可以对聚类中的基因进行功能富集分析,以了解聚类所代表的生物学过程或通路。

15. 数据可视化

15.1 umap降维
pbmc <- RunUMAP(pbmc,dims = 1:10)
DimPlot(pbmc,reduction = 'umap')

请添加图片描述

15.2 tsne降维
pbmc <- RunTSNE(pbmc,dims = 1:10)
DimPlot(pbmc,reduction = 'tsne')

请添加图片描述

16. 寻找Marker并对Cluster进行命名

pbmc.markers <- FindAllMarkers(pbmc,only.pos = TRUE,min.pct = 0.25,logfc.threshold = 0.25)
# only.pos = TRUE:表示只寻找上调的标记基因(即表达增加的基因)。如果将其设置为 FALSE,则会同时寻找上调和下调的标记基因
# min.pct = 0.25:指定标记基因在至少多少百分比的细胞中表达。这里设置为 0.25,表示标记基因必须在至少 25%的细胞中表达
# logfc.threshold = 0.25:指定 log2 倍变化阈值。只有当基因的表达在不同组之间的差异达到或超过这个阈值时,才会被认为是标记基因# 这段代码使用了 dplyr 包中的函数对 pbmc.markers 数据框进行分组,并在每个组中选择前 n 个具有最大 avg_log2FC 值的行
pbmc.markers %>% group_by(cluster) %>% top_n(n = 2,wt = avg_log2FC)
# A tibble: 18 × 7
# Groups:   cluster [9]p_val avg_log2FC pct.1 pct.2 p_val_adj cluster gene         <dbl>      <dbl> <dbl> <dbl>     <dbl> <fct>   <chr>        1 1.10e- 81       2.35 0.432 0.111 1.51e- 77 0       CCR7         2 2.53e- 48       2.12 0.336 0.108 3.46e- 44 0       PRKCQ-AS1    3 5.80e-139       7.15 0.297 0.005 7.96e-135 1       FOLR3        4 1.39e-123       6.77 0.275 0.006 1.90e-119 1       S100A12      5 4.78e- 57       2.06 0.42  0.113 6.56e- 53 2       AQP3         6 4.21e- 46       2.14 0.289 0.064 5.77e- 42 2       CD40LG       7 2.40e-276       7.26 0.562 0.009 3.29e-272 3       LINC00926    8 6.96e-238       6.96 0.484 0.007 9.55e-234 3       VPREB3       9 4.29e-201       4.92 0.599 0.049 5.88e-197 4       GZMK         
10 2.45e- 81       3.61 0.381 0.059 3.35e- 77 4       GZMH         
11 2.77e-222       5.49 0.516 0.009 3.79e-218 5       CDKN1C       
12 1.77e-175       5.95 0.377 0.005 2.43e-171 5       CKB          
13 1.09e-259       5.88 0.966 0.072 1.49e-255 6       GZMB         
14 1.05e-190       6.25 0.493 0.013 1.44e-186 6       AKR1C3       
15 1.43e-267       8.04 0.833 0.009 1.96e-263 7       FCER1A       
16 3.99e-213       8.15 0.472 0.002 5.48e-209 7       SERPINF1     
17 0              14.2  0.533 0     0         8       LY6G6F       
18 6.60e-197      13.8  0.333 0     9.04e-193 8       RP11-879F14.2

FindAllMarkers 函数将返回一个包含标记基因信息的数据框。数据框的每一行代表一个标记基因,包含以下列:

  1. gene:基因名称。
  2. p_val:统计学显著性检验的 p 值。
  3. avg_log2FC:平均 log2 倍变化。
  4. pct.1pct.2:标记基因在两个组中的表达百分比。
  5. cluster:标记基因所属的聚类(如果进行了聚类分析)。

请添加图片描述

# 观测基因在不同类群中的分布情况
VlnPlot(pbmc,features = c("NKG7","PF4"),slot = "counts",log = TRUE)

请添加图片描述

# 特征基因的表达量
FeaturePlot(pbmc, features = c("MS4A1", "GNLY", "CD3E", "CD14", "FCER1A", "FCGR3A", "LYZ"))

请添加图片描述

top_10 <- pbmc.markers %>% group_by(cluster) %>% top_n(n = 10,wt = avg_log2FC)
DoHeatmap(pbmc,features = top_10$gene)

请添加图片描述

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

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

相关文章

深度解析蚂蚁 SEO 蜘蛛池:提升网站流量的有效利器

在当今数字化时代&#xff0c;网站流量对于企业和个人的在线业务成功至关重要。为了在竞争激烈的网络环境中脱颖而出&#xff0c;众多站长和 SEO 从业者不断探索各种优化策略&#xff0c;其中蚂蚁 SEO 的蜘蛛池成为备受关注的工具之一。 蚂蚁 SEO 蜘蛛池是一种创新的技术手段&a…

HarmonyOS鸿蒙开发入门 , ArkTS语言的了解

鸿蒙&#xff08;即HarmonyOS&#xff0c;开发代号Ark&#xff0c;正式名称为华为终端鸿蒙智能设备操作系统软件&#xff09;是由华为公司2012年以来开发的分布式操作系统&#xff0c;并于2019年8月正式发布。该系统利用“分布式”技术&#xff0c;将手机、电脑、平板、电视、汽…

画封装步骤

parameter参数 1.打开pad designer 2.设计单位mils改为millimeter&#xff0c;保留decimal layers 3.勾选☑️single layer mode

游戏厅ps5体验馆计时收费软件 佳易王电玩馆计时器定时语音提醒系统操作教程

前言&#xff1a; 游戏厅ps5体验馆计时收费软件 佳易王电玩馆计时器定时语音提醒系统操作教程 以下软件操作教程以&#xff0c;佳易王游戏厅电玩店计时计费管理系统软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 一、软件操作教程 1、计…

【Python】人生重开模拟器(实现代码)

一、游戏背景介绍 这是一款文字类小游戏。玩家输入角色的初始属性之后&#xff0c;就可以开启不同的人生经历。 完整的程序代码较多&#xff0c;此这里只实现其中的一部分逻辑&#xff08;主要目的&#xff1a;巩固前面学习的 Python 语法基础&#xff09;。 二、设置初始属性…

springboot企业人力资源管理系统-计算机毕业设计源码29005

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

Redis 主从复制,哨兵与集群

目录 一.redis主从复制 1.redis 主从复制架构 2.主从复制特点 3.主从复制的基本原理 4.命令行配置 5.实现主从复制 6.删除主从复制 7.主从复制故障恢复 8.主从复制完整过程 9.主从同步优化配置 二.哨兵模式&#xff08;Sentinel&#xff09; 1.主要组件和概念 2.哨…

基于复旦微V7 690T FPGA +ARM/海光X86+AI的全国产化数据采集人工智能平台

国产化FPGA&#xff1a;JFM7VX690T80主机接口&#xff1a;PCIe Gen3 x88Gbps/lane光纤通道&#xff1a;前面板4路SFP光纤&#xff0c;后面板1路QSFP光纤2组独立的DDR3 SDRAM 缓存&#xff0c;工作时钟频率800MHz2个FMC接口扩展&#xff1a;每个支持16路GTH&#xff0c;线速率10…

提示词工程(Prompt Engineering)是什么?

一、定义 Prompt Engineering 提示词工程&#xff08;Prompt Engineering&#xff09;是一项通过优化提示词&#xff08;Prompt&#xff09;和生成策略&#xff0c;从而获得更好的模型返回结果的工程技术。 二、System message 系统指令 System message可以被广泛应用在&am…

ORB-slam3 安装教程

1. 官网下载源码&#xff1a;GitHub - UZ-SLAMLab/ORB_SLAM3: ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM 2. 根据官网下载依赖&#xff1a; &#xff08;1&#xff09;eigen3:Eigen 解压后进入源码目录进行编译&#xff1a…

ensp实验:防火墙安全策略用户认证综合策略

实验要求&#xff1a; 示例图&#xff1a; 设备配置&#xff1a; LSW5 vlan配置&#xff1a; 防火墙网络配置&#xff1a; 安全区域配置&#xff1a; 地址组配置&#xff1a; 时钟配置: 一&#xff1a; 办公区策略&#xff1a; 生产区策略&#xff1a; 二&#xff1a; 游客区…

医院健康宣教二维码如何制作?以及应用案例分享

医院正在广泛应用二维码来向患者展示健康宣传教育方面的信息&#xff0c;从疾病预防内容、术后康复训练知识&#xff0c;到日常保健视频&#xff08;如八段锦&#xff09;、饮食注意事项…… 这些内容都能够以二维码的形式呈现&#xff0c;方便患者随时扫码查看获取健康知识&am…

plt.subplot2grid创建N行M列的子图网格,N不等于M

以下代码是实现不同频率的余弦信号绘制&#xff0c;并将它们显示在一个 3x2 的子图网格中。 import numpy as np import matplotlib.pyplot as pltfig plt.figure(figsize(10, 10)) a1 plt.subplot2grid((3, 2), (0, 0), colspan2) a2 plt.subplot2grid((3, 2), (1, 0)) a3…

C++技能基础:提升C++程序运行效率的方法总结

以下是一些编程方面的建议&#xff0c;目的是为了提升C程序的效率&#xff08;这里的效率以时间为评判标准&#xff09;&#xff0c;欢迎指正和补充 场景&#xff1a;当设计方法时&#xff0c;将方法设计成值传递还是引用或者指针传递建议&#xff1a;当变量所占内存大小与指针…

SpringBoot整合XXL_JOB示例

XXL-JOB 是一个分布式任务调度平台&#xff0c;主要用于管理和执行定时任务。它适用于各种场景&#xff0c;例如定时任务、批处理任务、分布式任务等。XXL-JOB 提供了丰富的功能&#xff0c;使得任务调度变得简单、高效和可靠。以下是 XXL-JOB 的一些主要功能和特点&#xff1a…

暑假第一次作业

第一步&#xff1a;给R1,R2,R3,R4配IP [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 24 [R1-Serial4/0/0]ip address 15.0.0.1 24 [R2-GigabitEthernet0/0/0]ip address 192.168.2.1 24 [R2-Serial4/0/0]ip address 25.0.0.1 24 [R3-GigabitEthernet0/0/0]ip address 192.…

程序员标准简历模板

链接: https://pan.baidu.com/s/1yMXGSSNba15b9hMXjA39aA?pwdb4ev 提取码: b4ev 3年工作经验简历 链接: https://pan.baidu.com/s/1OO7n1lRL6AkhejxYC9IyDA?pwdfmvv 提取码: fmvv 优秀学员简历 链接: https://pan.baidu.com/s/106Vkw_ulOInI47_5mDySSg?pwduudc 提取码: uu

Spring Expression表达式使用

Spring Expression 简介 Spring Expression Language&#xff08;简称 “SpEL”&#xff09;是一种功能强大的表达式语言&#xff0c;支持在运行时查询和操作对象图。其中最显著的是&#xff1a;方法调用和基本的字符串模板功能。 虽然SpEL是Spring产品组合中表达式评估的基础…

微信公众号注册流程

注册指引 官网 https://mp.weixin.qq.com/ 服务号/订阅号 微信官方注册流程 https://kf.qq.com/touch/faq/150804UVr222150804quq6B7.html?platform15

四个“一体化”——构建数智融合时代下的一站式大数据平台

随着智能化技术的飞速发展&#xff0c;尤其是以生成式AI为代表的技术快速应用&#xff0c;推动了数据与智能的深化融合&#xff0c;给数据基础设施带来了新的变革和挑战。如何简化日益复杂的系统架构&#xff0c;提高数据处理效率&#xff0c;降低开发运维成本&#xff0c;促进…