2025.03.12【读书笔记】|monocle:快速安装及使用

在这里插入图片描述

1. 引言

Monocle 是一款专为单细胞 RNA-Seq 数据设计的 R 语言软件包,专注于差异表达分析和时间序列分析。它由 Cole Trapnell 实验室开发,旨在帮助研究人员理解细胞分化轨迹、识别关键基因,并探索细胞在时间或发育过程中的动态变化。

自 2016 年发布以来,Monocle 凭借其独特的时间序列分析能力,在单细胞研究领域获得了广泛应用。截至目前,该工具已发表 3 篇正式论文和 1 篇预印本,总引用次数超过 10000 次,充分体现了其在学术界的巨大影响力。

Monocle 提供了丰富的功能,包括:

  • 细胞排序(Ordering): 通过构建伪时间轴,揭示细胞的发育或分化轨迹。
  • 差异表达分析(Differential Expression): 识别在不同细胞状态或时间点上表达差异显著的基因。
  • 聚类(Clustering): 将相似的细胞分组,以便更好地理解细胞群体结构。
  • 降维(Dimensionality Reduction): 利用降维技术可视化高维单细胞数据。
  • 表达模式(Expression Patterns): 识别在伪时间轴上呈现特定表达模式的基因。
  • 标记基因(Marker Genes): 识别特定细胞状态或分化阶段的标记基因。
  • 可视化(Visualisation): 提供多种可视化方法,帮助用户探索和展示分析结果。

GitHub 链接(https://github.com/cole-trapnell-lab/monocle-release),方便读者访问和使用。

2. monocle的安装

2.1 环境要求

为了确保monocle工具能够顺利运行,我们需要配置合适的R语言环境和安装必要的依赖包。

  • R语言环境:monocle需要R语言环境,推荐使用R 3.5.0或更高版本。
  • 依赖包安装:monocle依赖于多个R包,包括Seurat、BiocManager等,我们将在安装monocle的过程中一并安装这些依赖。

2.2 安装方法

2.2.1 使用bioconductor安装

通过biocLite命令,我们可以方便地安装monocle工具,这是R社区广泛推荐的方法。

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("monocle3")
2.2.2 使用GitHub安装

如果你希望尝试monocle的最新版本或者定制化功能,从GitHub安装是一个不错的选择。

if (!requireNamespace("devtools", quietly = TRUE))
    install.packages("devtools")
devtools::install_github("cole-trapnell-lab/monocle-release")
2.2.3 在M1芯片的Mac上安装

对于使用M1芯片的Mac用户来说,安装monocle需要特别注意依赖的安装。

# 使用Homebrew安装依赖
brew install gcc
# 安装monocle3
devtools::install_github("cole-trapnell-lab/monocle-release")

3. monocle的快速使用

3.1 数据准备

3.1.1 读取单细胞数据集

在使用monocle之前,我们需要了解如何正确地读取和准备单细胞数据集。

library(monocle3)
data("pbmcs8k")
express_matrix <- pbmcs8k@assays$RNA@counts
3.1.2 数据预处理

数据预处理是单细胞分析的关键步骤,它直接影响到后续分析的结果和质量。

express_matrix <- preprocess_data(express_matrix)

3.2 质控与聚类

3.2.1 质控参数设置

质控是确保数据质量的重要步骤,我们需要学会如何设置合适的参数。

express_matrix <- set_config(express_matrix, config_nmin=3, config_max_number_of_clusters=14)
3.2.2 聚类分析

聚类分析帮助我们将相似的细胞分组,为后续分析打下基础。

express_matrix <- cluster_cells(express_matrix)

3.3 差异表达分析

3.3.1 利用fit_models()函数

fit_models()函数是monocle中用于差异表达分析的核心工具。

express_matrix <- fit_models(express_matrix)
3.3.2 结果解释

正确解释差异表达分析的结果对于理解细胞状态变化至关重要。

results <- celldex(fitmodels(express_matrix))

3.4 构建细胞轨迹

3.4.1 使用orderCells()函数

orderCells()函数帮助我们构建细胞发育轨迹,揭示细胞状态的动态变化。

express_matrix <- order_cells(express_matrix)
3.4.2 解读拟时间分析结果

拟时间分析结果的解读是理解细胞发育过程的关键。

pseudotime <- get_pseudotime(express_matrix)

4. 实战案例

4.1 案例介绍

通过一个具体的实战案例,我们可以更直观地了解monocle工具的应用。

4.2 分析流程

4.2.1 数据导入与预处理

数据导入和预处理是分析流程的第一步,也是至关重要的一步。

# 数据导入
HSMM_expr_matrix <- read.table("fpkm_matrix.txt")
HSMM_sample_sheet <- read.delim("cell_sample_sheet.txt")
HSMM_gene_annotation <- read.delim("gene_annotations.txt")

pd <- new("AnnotatedDataFrame", data = sample_sheet)
fd <- new("AnnotatedDataFrame", data = gene_annotation)
cds <- newCellDataSet(expr_matrix, phenoData = pd, featureData = fd)

# 数值转换
pd <- new("AnnotatedDataFrame", data = HSMM_sample_sheet)
fd <- new("AnnotatedDataFrame", data = HSMM_gene_annotation)

# First create a CellDataSet from the relative expression levels
HSMM <- newCellDataSet(as.matrix(HSMM_expr_matrix),
                phenoData = pd,
                featureData = fd,
                lowerDetectionLimit = 0.1,
                expressionFamily = tobit(Lower = 0.1))

# Next, use it to estimate RNA counts
rpc_matrix <- relative2abs(HSMM, method = "num_genes")

# Now, make a new CellDataSet using the RNA counts
HSMM <- newCellDataSet(as(as.matrix(rpc_matrix), "sparseMatrix"),
                phenoData = pd,
                featureData = fd,
                lowerDetectionLimit = 0.5,
                expressionFamily = negbinomial.size())
4.2.2 质控与聚类

质控和聚类是单细胞分析中不可或缺的步骤,它们确保了数据的质量和分析的准确性。

# 质控参数设置
HSMM <- detectGenes(HSMM, min_expr = 0.1)
print(head(fData(HSMM)))

# 聚类分析
MYF5_id <- row.names(subset(fData(HSMM), gene_short_name == "MYF5"))
ANPEP_id <- row.names(subset(fData(HSMM),
    gene_short_name == "ANPEP"))

cth <- newCellTypeHierarchy()
cth <- addCellType(cth, "Myoblast", classify_func =
    function(x) { x[MYF5_id,] >= 1 })
cth <- addCellType(cth, "Fibroblast", classify_func = function(x)
 { x[MYF5_id,] < 1 & x[ANPEP_id,] > 1 })

HSMM <- classifyCells(HSMM, cth, 0.1)

table(pData(HSMM)$CellType)

pie <- ggplot(pData(HSMM),
aes(x = factor(1), fill = factor(CellType))) + geom_bar(width = 1)
pie + coord_polar(theta = "y") +
theme(axis.title.x = element_blank(), axis.title.y = element_blank())

请添加图片描述

#t-SNE聚类分析
HSMM <- reduceDimension(HSMM, max_components = 2, num_dim = 6,
                reduction_method = 'tSNE', verbose = T)
HSMM <- clusterCells(HSMM, num_clusters = 2)
plot_cell_clusters(HSMM, 1, 2, color = "CellType",
    markers = c("MYF5", "ANPEP"))

请添加图片描述

5. 结语

Monocle 凭借其构建伪时间轴的能力,为我们深入理解细胞发育和分化过程提供了强有力的工具。它在识别关键基因、揭示细胞状态转变以及探索时间依赖性的表达模式等方面,具有显著优势。虽然随着单细胞技术的快速发展,涌现出许多新的分析工具,但 Monocle 依然是研究人员进行细胞轨迹分析和时间序列分析的重要选择。尤其是在以下情况下,Monocle 能够提供独到的见解:

研究细胞发育过程中的动态变化
识别在细胞分化过程中起关键作用的基因
探索细胞状态转变的分子机制
因此,即使在今天,Monocle 仍然是单细胞研究工具箱中一个不可或缺的经典工具,为我们探索生命奥秘提供了重要的技术支持。


🌟 非常感谢您抽出宝贵的时间阅读我的文章。如果您觉得这篇文章对您有所帮助,或者激发了您对生物信息学的兴趣,我诚挚地邀请您:

👍 点赞这篇文章,让更多人看到我们共同的热爱和追求。

🔔 关注我的账号,不错过每一次知识的分享和探索的旅程。

📢 您的每一个点赞和关注都是对我最大的支持和鼓励,也是推动我继续创作优质内容的动力。

📚 我承诺,将持续为您带来深度与广度兼具的生物信息学内容,让我们一起在知识的海洋中遨游,发现更多未知的奇迹。

💌 如果您有任何问题或想要进一步交流,欢迎在评论区留言,我会尽快回复您。

🌐 点击下方的微信名片,加入交流群,与志同道合的朋友们一起探讨、学习和成长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆易青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值