针对基因和细胞,单细胞转录组两个高级分析分别是:scenic和velocyto。这两个都是R和python都支持的,同时R的实现都不是十分完美。特别是velocyto,在R里面虽然有velocyto.R(win 10 似乎安装不上还) 但是限于计算平台和效率等,也往往使研究者困在第一步。针对这种情况,生物学家开发了velociraptor ,velociraptor 提供了Bioconductor的单细胞 SingleCellExperiment数据结构和用于RNA速度计算的Python 包 scvelo之间的轻量级接口。该接口可与许多其他SingleCellExperiment兼容,允许用户将RNA速度整合到现有的Bioconductor分析框架之中。
velociraptor 内部是调用scvelo,所以在运行的时候会为您配置相应的python环境。所以可以想象,并没有理想的那么好用,且不说velocyto的输出是loom文件,既然在R里面调用python库为什么不直接用python分析呢?感兴趣的小伙伴可以尝试一下啦。
一般有了教程之后,其实主要的工作是在做数据格式的转化,一波操作之后,发现velociraptor做出来的方向很是一致啊:
这个显然是和数据有关系的,例如作者给的示例文件:
library("velociraptor")
library(scuttle)
library(scater)
sce1 <- mockSCE()
sce2 <- mockSCE()
spliced <- counts(sce1)
spliced[1:4,1:4]
Cell_001 Cell_002 Cell_003 Cell_004
Gene_0001 406 97 119 14
Gene_0002 270 225 470 1080
Gene_0003 94 35 498 26
Gene_0004 187 578 29 0
> unspliced <- counts(sce2)
> unspliced[1:4,1:4]
Cell_001 Cell_002 Cell_003 Cell_004
Gene_0001 32 73 285 233
Gene_0002 0 0 5 66
Gene_0003 455 27 6 0
Gene_0004 200 812 453 749
out2 <- scvelo(list(X=spliced, spliced=spliced, unspliced=unspliced))
sce <- SingleCellExperiment(assays = list(counts = (spliced)))
sce <- scater::logNormCounts(sce)
sce <- scater::runPCA(sce)
sce <- runTSNE(sce, dimred="PCA")
sce$velocity_pseudotime <- out2$velocity_pseudotime
plotTSNE(sce, colour_by="velocity_pseudotime")
embedded <- embedVelocity(reducedDim(sce, "TSNE"), out2)
grid.df <- gridVectors(reducedDim(sce, "TSNE"), embedded)
library(ggplot2)
plotTSNE(sce, colour_by="velocity_pseudotime") +
geom_segment(data=grid.df, mapping=aes(x=start.1, y=start.2,
xend=end.1, yend=end.2), arrow=arrow(length=unit(0.05, "inches"))) + theme_bw()
https://kevinrue.github.io/velociraptor/index.html
单细胞转录组数据分析|| scVelo 教程:RNA速率分析工具
velocyto||sc-RNA速率:一种细胞轨迹推断方法
网友评论