前情回顾
Seurat 4.0 ||单细胞数据分析工具箱有更新
Seurat 4.0 ||单细胞多模态数据整合算法WNN
Seurat 4.0 || 分析scRNA和表面抗体数据
Seurat 4.0 || WNN整合scRNA和scATAC数据
Seurat 4.0 || 单细胞PBMC多模态参考数据集
Seurat 4.0 || 单细胞BMNC多模态参考数据集
Seurat教程上新||Mixscape : 用多模态单细胞数据筛选免疫检查点
2020年10月,纽约基因组所( New York Genome Center )的 Satija Lab团队开发的单细胞分析工具Seurat升级到了4.0,其特性之一是开发了加权邻近(weighted-nearest neighbor,WNN)算法来分析多模态数据。所谓多模态(multimodal )是指同时在一个细胞内测量分属于(广义?)中心法则不同过程的特征(如,RNA,ATAC,膜蛋白等)。直观地说,这可以从多个侧面反映细胞的真实状态,也会进一步细化我们对细胞行为与状态的理解,这对我们研究生命发育、疾病形成的重要作用是不言而喻的。我们知道,如果是单一模态的数据,如RNA,只是一个侧面;如果只是独立研究,如分别研究RNA和膜蛋白,许多时候不能很好的相互解释。在单细胞面前我们都是贪玩的孩子,不能只摸到象牙就说这是根筷子。
Seurat 4.0 提出WNN是在这样的考虑之下的,重要的是目前的技术已经允许我们同时测量多模态数据了,如CITE-seq可以同时测得RNA和表面蛋白,2020年10X公司也推出了同时测RNA和ATAC的商业解决方案,空转(ST)2019年也已经面市。数据产生需要新的数学框架来整合他们。
WNN算法细节以及应用实例可以在Satija Lab团队的(预印本)文章Integrated analysis of multimodal single-cell data中查看阅读。本文是在学习Seurat 4.0 教程之后的体会,以飨关心单细胞技术发展的华语同行。谬误在所难免,承蒙斧正,不胜感激。
不变
Seurat的框架基本是没变的。这对单细胞数据分析来说是一件好事,因为我们遇到过糟糕的情况:除了R包名字没变之外,一切都变了的情况。如monocle的2和3,与其说是不同版本不如说是不同的R包了。熟悉Seurat v3的同行应该能够平稳地过渡到Seurat v4。虽然引入了大量的新功能,但v3的工作流程、函数和语法,可视化方案在这次更新中基本没有变化。此外,以前在Seurat v3中生成的Seurat对象可以无缝地装载到Seurat v4中以进行进一步分析。
有一点提示下,这几乎是语义上的:“整合”。Seurat V3 一度被认为是整合(Integrate,CCA+MNN)不同RNA数据集的标杆工具,在其文章Comprehensive Integration of Single-Cell Data中提到:Seurat v3引入了集成多个单细胞数据集的新方法。这些方法的目的是识别存在于不同数据集的共享的细胞状态,即使它们是从不同的个体、实验条件、技术平台甚至物种,用到的函数是FindIntegrationAnchors
。业内有不少拿它和去批次的工具在一起做benchmark,其实这不是一回事。强调,整合与批次不是一回事。在V4 中整合不同的RNA数据集你依然可以用‘FindIntegrationAnchors’。在V4的WNN中也有一个“整合”,这里的整合多为多模态数据之间的整合,用到的函数FindMultiModalNeighbors
。可见,这个函数在v3中对应的位置应该是FindNeighbors
,即构建细胞间的图结构用的部分。
我们可以用pacman
包来看看新旧版本有哪些函数的变化。
packageVersion("Seurat")
[1] '3.9.9.9005'
library(pacman)
v4fun<-p_functions("Seurat")
setdiff(v4fun,v3fun) # 我存的v3的所有函数
[1] ".__C__IntegrationAnchorSet" ".__C__ModalityWeights" ".__C__TransferAnchorSet" "CalcPerturbSig"
[5] "DEenrichRPlot" "FindMultiModalNeighbors" "FindSubCluster" "FoldChange"
[9] "Graphs" "IntegrateEmbeddings" "MappingScore" "MapQuery"
[13] "MixscapeHeatmap" "MixscapeLDA" "NNPlot" "PlotPerturbScore"
[17] "PredictAssay" "PrepLDA" "ProjectUMAP" "RunLDA"
[21] "RunMixscape" "RunSPCA"
几多
看了预印本的文章Integrated analysis of multimodal single-cell data之后觉得WNN简直就是单细胞界的统一场论:可以把单细胞内的隐藏表达矩阵都可以整合到一个Seurat对象中,伟大。但是在重现了V4的教程之后,特别是看到教程RNA+膜蛋白和教程RNA+ATAC是分开的之后,觉得V4没有那么激进:不是一个教程同时整合RNA+ 膜蛋白+ ATAC+空转。这也许不是算法上的,而是技术上的:目前还没有技术可以这么测。现阶段WNN的定位应该是为【scRNA+】提供解决方案。
几才算多呢?
在WNN中所谓的加权主要是给不同模态的数据以不同的权重,比如RNA和膜蛋白中,膜蛋白的权重要高一些,因为它更接近真实状态(RNA不容易看到?)。在算法中,多模态数据可以看作是一个多分类的过程,如果把每一个模态看作我们对细胞的一层感知机,多模态就是多层感知机(机器学习的同行看过来)。随着模态的增加,就像我们提示过的:要以数据库的思维来理解单细胞数据。
又如本文的封面所述,在单细胞技术的早期,数据分析像一本精装书(Hardcover)很精美很细致,每个技术的进步都带来惊喜。随着数据的积累,成本的降低,技术普及,特别是多模态技术的发展,要把多模态的数据解释清楚也就愈发需要生物学的知识,此时的单细胞数据分析就像一本简装书(Paperback):可能需要一个团队来读。这也是我们一直主张的:建立自己的单细胞数据分析团队。
启示录
单细胞技术本身是在NGS技术基本成熟条件下发展出来的,所以数据可以超指数增长;NGS的测序和生信大部分可以扩展到单细胞水平上,所以获得数据和分析工具并不难。单细胞数据分析可以快速入门,一如某上联所述:降维聚类必知必会。但是,当我们把单细胞数据分析的物理要素(数据,服务器,软件)配齐后,我们依然面临:数据如何挖,故事如何讲的科学问题。多模态技术的发展,对生物学背景提出了进一步的要求。之前的scRNA数据,就是表达量咯,不管是均一化,标准化,表达量高的还是高的,低的还是低的,一聚类,高的和高的在一起。如果你是一个数据科学家,翻开自己工具箱,很容易去分析单细胞数:一个矩阵而已。但是,RNA和ATAC可不是直接比较表达量就可以的呀,这时候,打开工具箱,还需要另一个装满生物学问题的急救包。
一如前苏联百科全书式的教授柳比歇夫所比喻的:蠕虫那么长,人生啊可是那么短!在这里,我惊叹:单细胞那么大,宇宙可是那么小呀!
亚历山大·亚历山德罗维奇·柳比歇夫(1890年4月5日--1972年8月31日),前苏联的昆虫学家、哲学家、数学家。毕业于圣彼得堡国立大学,一生发布了70余部学术著作,从分散分析、生物分类学到昆虫学等。业余时间研究地蚤的分类,还写过不少科学回忆录。 各种各样的论文和专著,他一共写了五百多印张。五百印张,等于一万二千五百张打字稿。即使以专业作家而论,这也是个庞大的数字。他不顾政治迫害,做了大量工作来反对和批评当时属于苏联生物遗传学主流的李森科主义。还应用数学方法来研究生物分类学。感兴趣可以读一本小书:《奇特的一生》。
https://www.njtierney.com/post/2017/10/27/change-pkg-name/
https://r-pkgs.org/namespace.html