当前位置: 首页 > news >正文

设计的好网站wordpress主题访问慢

设计的好网站,wordpress主题访问慢,网站开发语言 .net,网页上做网会员网站备案怎么写许多大佬的软件想要构建一个大而美的生态,从 monocle2 开始就能做单细胞的质控、降维、分群、注释这一系列的分析,但不幸的是我们只知道 monocle 系列还是主要做拟时序分析,一方面是因为 Seurat 有先发优势,出名要趁早&#xff0c…

许多大佬的软件想要构建一个大而美的生态,从 monocle2 开始就能做单细胞的质控、降维、分群、注释这一系列的分析,但不幸的是我们只知道 monocle 系列还是主要做拟时序分析,一方面是因为 Seurat 有先发优势,出名要趁早,生态太过强大,另一方面 monocle2 和monocle3 软件有自身的问题,很难安装或者有很多 bug,远没有 Seurat 稳定。

在这里插入图片描述

什么是Monocle3?

不过怎么样Monocle3 还是最常用的单细胞轨迹分析工具之一,它能够通过算法学习细胞在动态生物学过程中基因表达变化的序列,从而构建出细胞状态转变的轨迹。与传统实验方法不同,Monocle3无需纯化处于中间状态的细胞,就能让我们清晰地看到细胞从一种功能“状态”向另一种状态的过渡。

当细胞过程存在多种结果时,Monocle3会构建出“分支”轨迹,这些分支对应着细胞的“决策”过程。它还提供了强大的工具来识别受这些决策影响以及参与决策的基因,帮助我们深入理解细胞命运决定的分子机制。

Monocle3核心思想

无需通过实验将细胞提纯为离散状态,而是借助算法学习细胞在动态生物学过程中必然经历的基因表达变化序列,进而掌握基因表达变化的整体 “轨迹”,并确定每个细胞在该轨迹中的准确位置。

核心工作流程

Monocle3的轨迹重建工作流程与聚类分析流程相似,但增加了几个关键步骤。下面我们详细介绍其核心流程:

安装

注意 linux、mac 安装都需要编译,那么就需要 gcc、gfortran等编译软件,确保已经安装

sudo apt install build-essential pkg-config libgdal-dev -y
BiocManager::install(c('BiocGenerics', 'DelayedArray', 'DelayedMatrixStats','limma', 'lme4', 'S4Vectors', 'SingleCellExperiment','SummarizedExperiment', 'batchelor', 'HDF5Array','ggrastr'))
BiocManager::install("bnprks/BPCells/r")
BiocManager::install('cole-trapnell-lab/monocle3')
library(monocle3)

1. 数据准备与初始化

首先,需要将数据加载到Monocle3的cell_data_set(CDS)对象中,这是Monocle3处理数据的基本单位。CDS对象包含三个关键部分:表达矩阵、细胞元数据和基因注释。

官网示例

library(monocle3)
# 加载数据
expression_matrix <- readRDS(url("https://depts.washington.edu:/trapnell-lab/software/monocle3/celegans/data/packer_embryo_expression.rds"))
cell_metadata <- readRDS(url("https://depts.washington.edu:/trapnell-lab/software/monocle3/celegans/data/packer_embryo_colData.rds"))
gene_annotation <- readRDS(url("https://depts.washington.edu:/trapnell-lab/software/monocle3/celegans/data/packer_embryo_rowData.rds"))# 创建CDS对象
cds <- new_cell_data_set(expression_matrix,cell_metadata = cell_metadata,gene_metadata = gene_annotation)

但是更多时候我们是从已经处理好的 Seurat 对象构建CDS对象

# srt是之前注释好的Seurat 对象
cds <- monocle3::new_cell_data_set(expression_data = SeuratObject::GetAssayData(srt, assay = "RNA", layer = "counts"),cell_metadata = srt@meta.data,gene_metadata = data.frame(gene_short_name = rownames(srt), row.names = rownames(srt))
)

2. 数据预处理

预处理步骤与聚类分析完全相同,包括数据标准化和批次效应校正等。在批次校正中,可以使用align_cds()函数,并通过alignment_group指定批次分组

# 数据预处理
cds <- preprocess_cds(cds, num_dim = 50)
# 批次校正
cds <- align_cds(cds, alignment_group = "batch")

3. 降维与可视化

接下来进行数据降维,对于轨迹分析,强烈建议使用UMAP方法(默认方法)。降维后可以使用plot_cells()函数可视化结果,通过不同的颜色编码展示细胞类型等信息。

# 降维
cds <- reduce_dimension(cds)

用 Seurat 对象中的 UMAP 替换 CDS 中的

cds.embed <- cds@int_colData$reducedDims$UMAP
int.embed <- Embeddings(srt, reduction = "umap")
int.embed <- int.embed[rownames(cds.embed), ]
cds@int_colData$reducedDims$UMAP <- int.embed

可视化 UMAP 图

plot_cells(cds, label_groups_by_cluster = FALSE, color_cells_by = "cell.type")

通过这一步骤,我们可以初步观察到数据中存在的轨迹结构,以及不同细胞类型在轨迹上的分布。

4. 细胞聚类

与聚类分析类似,使用cluster_cells()函数对细胞进行聚类。在轨迹分析中,每个细胞不仅被分配到一个聚类,还会被分配到一个分区(partition),每个分区最终会形成一个独立的轨迹。

不同的分区可以有不同的分化起始点,这也符合现实情况,因为很可能这些细胞是多起源的。

# 细胞聚类
cds <- cluster_cells(cds)
# 按分区可视化
plot_cells(cds, color_cells_by = "partition")

5. 学习轨迹图

使用learn_graph()函数在每个分区内拟合主图(principal graph),该图将用于后续的分支分析和差异表达分析等下游步骤。

# 学习轨迹图
cds <- learn_graph(cds)
# 可视化轨迹图
plot_cells(cds, color_cells_by = "cell.type", label_groups_by_cluster = FALSE, label_leaves = FALSE, label_branch_points = FALSE)

轨迹图的构建是Monocle3轨迹分析的核心步骤之一,它能够捕捉细胞状态之间的连续过渡关系。

6. 以伪时间(Pseudotime)排序细胞

伪时间是衡量单个细胞在细胞分化等过程中进展程度的指标。通过order_cells()函数,我们可以根据细胞在轨迹上的进展对其进行排序。

  • 什么是伪时间? 伪时间是一个抽象的进展单位,它表示细胞沿着学习到的轨迹从起始状态到结束状态所经历的距离。在许多生物学过程中,细胞的发育并不同步,伪时间很好地解决了这种不同步发育带来的分析难题。
# 按伪时间排序细胞
cds <- order_cells(cds)
# 按伪时间可视化
plot_cells(cds, color_cells_by = "pseudotime", ...)

在排序过程中,需要指定轨迹图的根节点(root nodes),可以通过图形界面手动选择,也可以通过编程方式指定。例如,可根据最早时间点的细胞分布来自动确定根节点:

下边这个函数可以帮助我们选择发育起点,比如我们可以修改为从某一类细胞发育作为 root,只需要修改embryo.time.bin 为 cell.type 和time_bin 为我们想要设定的细胞类型

# 编程方式指定根节点
get_earliest_principal_node <- function(cds, time_bin="130-170"){cell_ids <- which(colData(cds)[, "embryo.time.bin"] == time_bin)closest_vertex <-cds@principal_graph_aux[["UMAP"]]$pr_graph_cell_proj_closest_vertexclosest_vertex <- as.matrix(closest_vertex[colnames(cds), ])root_pr_nodes <-igraph::V(principal_graph(cds)[["UMAP"]])$name[as.numeric(names(which.max(table(closest_vertex[cell_ids,]))))]root_pr_nodes
}
cds <- order_cells(cds, root_pr_nodes = get_earliest_principal_node(cds))

值得注意的是,未从根节点可达的细胞会被分配无限伪时间(显示为灰色),因此通常应为每个分区至少选择一个根节点。

7. 时序相关差异表达分析

Monocle3提供了强大的差异表达分析工具,可用于寻找随着伪时间变化或在不同分支中表达发生变化的基因。例如:

可以选择前 10 个基因展示,官网教程是自己选择的与研究相关的基因

genes <- monocle3::graph_test(cds, neighbor_graph = "principal_graph", reduction_method = "UMAP", cores = 32)
top10 <- genes %>%top_n(n = 10, morans_I) %>%pull(gene_short_name) %>%as.character()

展示AFD_genes 基因随时间变化图

AFD_genes <- c("gcy-8", "dac-1", "oig-8")
AFD_lineage_cds <- cds[rowData(cds)$gene_short_name %in% AFD_genes,colData(cds)$cell.type %in% c("AFD")]
AFD_lineage_cds <- order_cells(AFD_lineage_cds)plot_genes_in_pseudotime(AFD_lineage_cds,color_cells_by="embryo.time.bin",min_expr=0.5)

8. 拟时序基因热图

这里演示下选择 50 个基因画热图用 junjun 老师的 R 包ClusterGVis绘制,虽然 monocle3 有自己的分模块热图,感觉没啥用也不好看,不如这个更醒目一些。

top50 <- genes %>%top_n(n = 10, morans_I) %>%pull(gene_short_name) %>%as.character()

绘制热图,cluster.num 分 5 个 cluster 需要自己设置,markGenes 随机选择 30 个展示,可以自己设置标注哪些基因

library(ClusterGVis)# kmeans
ck <- clusterData(mat,cluster.method = "kmeans",cluster.num = 5)# add line annotation
pdf('monocle3.pdf',height = 10,width = 8,onefile = F)
visCluster(object = ck,plot.type = "both",add.sampleanno = F,markGenes = sample(rownames(mat),30,replace = F))
dev.off()

注意:本图为示例图,并非上边代码执行结果

Reference

https://cole-trapnell-lab.github.io/monocle3/docs/differential/
https://mp.weixin.qq.com/s/7sYTrHlhnHj5490RyrdBug
http://www.dtcms.com/a/484946.html

相关文章:

  • 邯郸移动网站建设费用苏州公司网站建设公司
  • 学院网站建设进度情况说明90后做受网站
  • 注册公司网站模板网上挣钱
  • 网站收录很慢上海什么公司最有名
  • 植物提取网站做的比较好的厂家wordpress 置顶 评论
  • 网站做视频网络推广外包一年多少钱
  • 手机网站设计方案线上销售技巧
  • 西安网站设计开发人才如何在国内做网站
  • 东莞望牛墩网站建设nuxt做多页面网站
  • 广西网站建设公司网站定制深圳
  • 淘宝推广怎么做杭州 seo网站建设 网络服务
  • 帮客户做网站图片被告侵权金华vi设计公司
  • 企业网站用什么建站最快学做美食的视频网站有哪些
  • 设置网站关键词北京网站建设那家好
  • 制作商务网站wordpress改logo不显示
  • 宁波网站seo上海哪个公司做网站好
  • 珠海网站制作推荐甘肃网站排名公司
  • 卖视频会员个人网站怎么做郑州广告公司网站建设
  • 手机可以做网站吗?用自己电脑做网站服务器
  • 网站建设服务网站建设dedecms 食品网站
  • 2018年网站开发语言排行企业工商公示信息查询系统
  • 旅游网站开发团队网站程序源码下载
  • 怎么做仲博注册网站百度网络营销的概念和含义
  • 网站空间怎么备份网站系统 建设和软件岗位职责
  • c#网站购物车怎么做哪个网站可以做纸箱
  • 看谁做的好舞蹈视频网站元凤建盏简介
  • 网站建设案例机构企业名录搜索软件靓号怎么搜
  • 网站建设需什么视频网站焦点图
  • 文汇智能建站平台今天宁波最新消息
  • 即墨做网站的网站开发双语