ixxmu / mp_duty

抓取网络文章到github issues保存
https://archives.duty-machine.now.sh/
116 stars 30 forks source link

替身文学 | 不想用原始数据跑RNA velocity怎么办?来试试VECTOR拟时序方法! #4316

Closed ixxmu closed 9 months ago

ixxmu commented 9 months ago

https://mp.weixin.qq.com/s/tkvNg_xnLem7GoWgabwFxw

ixxmu commented 9 months ago

替身文学 | 不想用原始数据跑RNA velocity怎么办?来试试VECTOR拟时序方法! by 生信作曲家

前言

RNA velocity(RNA速率)分析已成为单细胞重要的分析方式,但是速率分析需要我们对单细胞原始数据进行操作,比较繁琐,很多同学往往不想去获取原始数据。

2023年最后一篇推送,我们给大家介绍发表在cell reports上的VECTOR算法,该算法可以获得与速率分析相仿的图,且具备多种附加功能。运行速度快,出图质量高

Vector包目的是通过根据UMAP中与起始细胞(Starting Cells)的网格距离来推断细胞发育方向的向量。作者发现细胞主成分值的分位数极化与其在发育层次结构中的状态密切相关,因此为确定起始细胞提供了一种无监督的解决方案。基于这一发现,作者开发了一个名为VECTOR的工具,用于推断在Uniform Manifold Approximation and Projection(UMAP)中细胞的发育方向矢量。

代码实操

# 确保下面的包已装好
#library(igraph)
install.packages('circlize')   # 0.4.11
install.packages('gatepoints'# 0.1.3
install.packages('stringr')    # 1.4.0
install.packages('igraph')     # 1.2.6
install.packages('gmodels')    # 2.18.1
#library(gmodels)

scRNA=readRDS('scRNA_T.RDS')
table(scRNA$T_celltype)
library(Seurat)

DimPlot(scRNA)
# 左边为幼稚细胞,右下角为耗竭细胞
## 获取降维信息
VEC = scRNA@reductions$umap@cell.embeddings
rownames(VEC) = colnames(scRNA)
PCA =scRNA@reductions$pca@cell.embeddings

source('https://raw.githubusercontent.com/jumphone/Vector/master/Vector.R')

# 消除 PC 之间基于量值的共线性 
PCA=vector.rankPCA(PCA)


# 正式运行 后面跟这跑就可以
# 定义像素
OUT=vector.buildGrid(VEC, N=30,SHOW=TRUE)
# 构建网络
OUT=vector.buildNet(OUT, CUT=1, SHOW=TRUE)
# 计算量子极化 (QP) 分数
OUT=vector.getValue(OUT, PCA, SHOW=TRUE)
# 获取像素的 QP 分数
OUT=vector.gridValue(OUT,SHOW=TRUE)
# 找起始点
OUT=vector.autoCenter(OUT,UP=0.9,SHOW=TRUE)
# 推断向量
OUT=vector.drawArrow(OUT,P=0.9,SHOW=TRUE, COL=OUT$COL, SHOW.SUMMIT=TRUE)

## 运行过程图展示如下

# OUT$P.PS 获得拟时序
OUT$P.PS

附加功能

VECTOR提供:基因表达量可视化、手动选起点、手动选区、基因和拟时序相关性图,下面的推送将为大家一一解析。加管理员Bio_com获取可复制代码

附加功能1:基因表达量可视化