海量单细胞技术涉及到三大底层技术:
- 微流控技术
- Barcode 技术
- UMI技术
故事要从第一届单细胞培训班开始讲起,还记得在讲完第一场单细胞技术简介及应用之后,问大家有没有什么问题可以讨论。有位老师问:请问什么叫Barcode?
我们知道海量单细胞技术是在微孔或液滴中物理隔离单个细胞,在这个小格子中裂解细胞,释放mRNA(或其他细胞内小分子信息),这里第一步就是用Barcode来对每个小格子里面的细胞来加标签。目前的技术是把成千上万的Barcode种在一个磁珠上,把这个磁珠放到小格子里标记细胞。
今天我们讨论的就是这个barcode。
- barcode 多长是合理的?
- barcode之间的汉明距离对单细胞实验的影响
- barcode 还可以标记其他生物信息吗?可以,已经在用了。
作为一种标记技术,DNA条形码(DNA barcode)是指生物体内能够代表该物种的、标准的、有足够变异的、易扩增且相对较短的DNA片段。DNA条形码已经成为生态学研究的重要工具,不仅用于物种鉴定,同时也帮助生物学家进一步了解生态系统内发生的相互作用。随着时间的推移,条形码越来越多地用于追踪单个细胞,并定量评估它们对克隆的贡献。尽管条形码定量完全依赖于计数测序读数,但对该方法准确性的详细研究仍然有限。
barcode 本质上是一串碱基序列,如AAAAA、ATCAAGTTC等等。作为细胞的标签,我们认为这段分子标签至少要是稳定的,如果是一段有许多GC碱基组成的序列,那么它的稳定性很可能达不到要求。这段分子标签要从细胞裂解,经过UMI标记分子,RT,建库测序。所以我们在设计这个段序列的时候,要考虑它的用处。同时还要考虑它的可合成性。
另一个主要的问题就是关于生产的,在固定了barcode的长度之后,就要考虑合成什么样的序列了,如果合成的序列太相似,就很可能把不同的磁珠标记上一样的barcede。这样磁珠一旦形成,就会使得不同的油滴或微孔形成带有一样的barcode,从而形成另一种双细胞(不是一个微孔或者液滴包含两个细胞的那种)。所以我们可以根据barcode的距离推断这种可能性,衡量序列相似性的一种方法就是汉明距离。
汉明距离是以理查德·卫斯里·汉明的名字命名的。在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。下面我们来算一下几个例子:
library(stringdist) # 至少你应该知道我用的是R语言
stringdist('ATGCCTAA','ATGCCTAA', method = "hamming")
[1] 0
stringdist('AAAAAAAA','ATGCCTAA', method = "hamming")
[1] 5
stringdist('AAAAAACC','ATGCCTAA', method = "hamming")
[1] 7
那么barcode列表的最小汉明距离越大,那么这个系统就更加稳定。目前市场上主流的两款技术10X和新格元的barcode列表都是可以在其开源软件查到的,所以可以比较一下。
新格元的barcode 列表在其定量软件CeleScope软件(可以在github或gitee)中的路径是:CeleScope/celescope/data/chemistry/scopeV2.0.0 #新格元的barcode是组合起来的,具体可以阅读CeleScope源码了解其结构。
10X 的定量软件Cellranger(可在其官网下载)中Barcode列表在:cellranger-X.X.X/lib/python/cellranger/barcodes
分享一个粗略的方法来寻在其barcode的最小值:
seq1 = barcodelist
library(tidyverse)
min(unlist(map(1:10000,function(i){
x = sample(seq1,1)
y = sample(seq1,1)
while(x==y){y=sample(seq1,1)}
stringdist(x,y, method = "hamming")
})))
汉明距离的另一个应用场景是用来做barcode的纠错,二代测序不是完美的测序技术肯定会有测错的情况,那么如何判断测出来的序列是不是一个细胞的barcode呢?一般的方法是在其定量软件里面内置一个白名单,拿测的序列和这个白名单比较,来矫正barcode。对于没有出现在白名单的barcode允许某个汉明距离的差异。
所以在你的单细胞系统里面,这些关键问题思考全面了吗?
Thielecke, L., Aranyossy, T., Dahl, A. et al. Limitations and challenges of genetic barcode quantification. Sci Rep 7, 43249 (2017). https://doi.org/10.1038/srep43249
https://bookdown.org/lambdamoses/museumst/current-techs.html
https://bioinformatics.stackexchange.com/questions/5183/why-are-there-more-barcodes-than-gems-in-10x-chromium-data
https://kb.10xgenomics.com/hc/en-us/articles/115003133812-How-does-cellranger-count-process-and-filter-UMIs-
https://kb.10xgenomics.com/hc/en-us/articles/115004037743-How-does-Cell-Ranger-correct-for-amplification-bias-
https://github.com/singleron-RD/CeleScope