哈啰大家好~看到熟悉的表情包就知道我又来啦!~
今天的小编在工作重压下忙得不可开交,但是更新的大话已经放出去了,如果交不了稿子会被主编追着打的。所以以上是本篇唯一一张表情包也是唯一一段废话,下面小编准备不卖关子不犹豫,大刀阔斧长驱直入地开始说正事儿了啊~【东北话四级书面测试预警】
这次小编来给大家介绍一个自己最近在用的R包工具,叫scmap 【咋样?够不够直接!】这个工具的主要用途就是用来投射单细胞数据集的。那么为啥要用到这个玩意儿呢?因为近几年单细胞测序的飞速发展,导致各种实验方法和计算分析方法不仅层出不穷还各不相同,这就衍生出了一个问题,就是不同平台来源的数据,或者存在较大批次差异的数据吧,在分群的时候或者分析的时候呢,它整不到一块儿去。如果恰好你的数据本身还具有较大的样本间异质性,比如像免疫细胞这种比较容易受到环境和供体状态影响的,再加上批次效应,那盲目分群的结果,可能是灾难性的……
就拿小编自己的数据来说吧,我手里有4个正常人样本,然后在半年多的时间跨度里,陆陆续续收了12个病人样本。当所有这些样本都分批完成测序步骤,将数据返回给我分析时,我整个人直接就蒙圈了。
中间粉色的一大块是正常人样本的聚合,其余分散在四周的,每种颜色都!是!一!个!病人样本!!你们能想象得到小编我在前一天晚上下班前美滋滋将程序跑上,然后第二天一早看到这个像稀粥一样的破图的时候的心情吗?那一刻我真的在砸碎屏幕和戳瞎自己之间犹豫不决。而就这个结果,还是在我已经执行过一定的去批次效应步骤之后得到的。
面对这种谁和谁都没啥overlap的结果,我是没法比较病人和正常人之间、病人和病人之间的分群差异的。那么这种情况下我到底该咋整呢?就在这个时候,我看到了scmap。
总的来说,scmap采用了一种类似于将reads mapping到参考基因组上的策略。首先,需要人为选择一个数据集作为所谓的reference,然后利用scmap将其他的数据集,逐一映射到这个参考数据集上。这样从“横向平铺”变成“纵向叠加”,就可以直接避免了因为样本间异质性和数据集之间的相互干扰而导致的分群混乱。
Scmap中有两种主要的方法,一种叫scmap-cluster,另一种叫scmap-cell。顾名思义,scmap-cluster的意思是对于特定的待分配细胞C,找到在reference数据集中最适合它的那个cluster,将细胞C分进去。而scmap-cell则是针对细胞C,在reference中找到和它最相似的细胞。举个栗子,好比有一个新入学的插班生小明,scmap-cluster就是给小明找一个他适合呆的班级,而scmap-cell则是给小明在新学校找个好朋友,搭伴学习一帮一的那种。
我们先来看scmap-cluster的操作方法,了解一下scmap是怎么给小明分班的,不对,是怎么给细胞C分群的。首先,对于reference数据集中每一个cluster(这个cluster是需要提前分好的,人为用不管什么方法定义出来,输入到scmap程序中的),scmap需要选择一定数量的gene集合(默认值为500),将它们的表达中值(median value)作为该cluster的质心(centroid)【就是给每个班级先选个班长,明白没?】这样在映射的时候,只需要计算待分群细胞C和每个cluster的质心之间的相似性即可。
Scmap-cluster一共使用三种相似性度量方法:皮尔森相关(Pearson)、斯皮尔曼相关(Spearman)和余弦相似性(cosine)。算法默认要求这三种相关性度量中,至少依据其中的两种将其分配到的群是相同的,否则认定该细胞为“unassigned”,并且,这三种方法中得到的最高值也要大于设定阈值(默认为0.7),否则依旧被判定为“unassigned”。
而scmap-cell则只用了一种相似性计算方法,即余弦相似性,用来找细胞C在reference数据集中的最近邻居(the nearest neighbor)。在找寻最近邻居的过程中,可以改变的参数是选择将细胞C周围的多少个相邻细胞进行计算。用小明的事情来举例就是说,如果要给小明选择一个最好的朋友,那么是从平时跟他玩儿的好的多少个小朋友中挑选。显而易见,数值越大,可能是真正好朋友的程度就越纯,好比“弱水三千,只取一瓢”这种感觉。
Scmap应用起来也十分简单。首先,需要导入想作为reference的数据集的表达谱,并且导入数据集的分群信息。在小编自己的数据中,我便将正常样本当做参考集,在没有病人样本干扰的情况下,正常人样本分群分得十分顺利。
下一步,scmap会把reference数据集建立成SingleCellExperiment对象格式,并对其进行取特征基因的计算selectFeature(选个班长,还记得吗?)
这之后,就可以对未知分群样本进行映射了。
我们可以在映射结果中,可以看到未知分群样本中的每一个细胞在已知reference数据集中对应的cluster标签,还有被分配到这个标签的最高相似性得分。
对于scmap-cell,也是一样的使用方法:
这种单命令傻瓜式操作,可以说是非常好上手了!
不过针对于scmap-cell小编要多说一句哈,高通量低覆盖率的数据,用scmap-cell的效果可能不如scmap-cluster的好。所以我建议大家在用自己数据的时候,把这两种方法都试一试,看看哪种能成功映射的比率更高就用哪种(这不是废话吗啊喂!)。那个……小编之所以敢出这个“馊主意”是因为这个方法还有一个巨大的优点就是——运行速度非常快!
Scmap-cluster能通过取特征值计算质心的策略把原始表达谱数据缩小5000倍以上,而scmap-cell也能将数据缩小500倍左右。用小编自己的数据来说,我16个样本将近80000个细胞,运行一遍scmap-cluster差不多只用了不到一分钟吧。所以我基本就是哪个方法好用就用哪个,也把我能调的参数都调了调,反正就这运行速度,真的是非常有恃无恐了(骄傲挺胸)。
好啦,关于scmap工具小编今天就简单介绍到这里。想知道更多细节和使用方法请移步官网https://www.sanger.ac.uk/science/tools/scmap ,R包下载请戳http://www.bioconductor.org/packages/release/bioc/html/scmap.html ,相关文献《scmap: projection of single-cell RNA-seq data across data sets》。
小编交稿后要继续投入工作,我们下期再见啰~(挥小手)
2019年,遇见更好的自己
更多套路咨询13120220117(微信同号)