单细胞交响乐
  • 前言:我与《单细胞交响乐》的缘分
  • 1 准备篇:背景知识
    • 1.1 数据结构
    • 1.2 总览 | 从实验到分析
  • 2 积累篇:文献阅读
    • 2.1.1 综述 | 2019-单细胞转录组分析最佳思路
    • 2.1.2 综述 | 2018-单细胞捕获平台
    • 2.1.3 综述 | 2017-scRNA中的细胞聚类分群
    • 2.1.4 综述 | scRNA已经开发出超过1000款工具了,你用过几种?
    • 2.1.5 综述 | 2021-单细胞测序的微流控技术应用
    • 2.2.1 研究 | 2018-单细胞转录组探索癌症免疫治疗获得性抗性机理
    • 2.2.2 研究 | 2018-人类结直肠癌单细胞多组学分析
    • 2.2.3 研究 | 2020-单细胞分析揭示葡萄膜黑色素瘤新的进化复杂性
    • 2.2.4 研究 | 2020-COVID-19病人支气管免疫细胞单细胞测序分析
    • 2.2.5 研究 | 2020-原汁原味读--单细胞肿瘤免疫图谱
    • 2.2.6 研究 | 2021-多发性骨髓瘤发展过程中肿瘤和免疫细胞的共同进化
    • 2.2.7 研究 | 2021-多个组织的成纤维细胞图谱
    • 2.2.8 研究 | 2021-多组学分析肺结核队列的记忆T细胞状态
    • 2.2.9 研究 | 2021-CancerSCEM: 人类癌症单细胞表达图谱数据库
    • 2.2.10 研究| 2021-单细胞转录组分析COVID-19重症患者肺泡巨噬细胞亚型
    • 2.2.11 研究 |2021-单细胞转录组揭示肺腺癌特有的肿瘤微环境
    • 2.2.12 研究 | 2021-单细胞转录组揭示乳头状甲状腺癌起始与发展
    • 2.2.13 研究 | 2021-解析食管鳞癌化疗病人的单细胞转录组
    • 2.2.14 研究 | 2021-单细胞水平看骨髓瘤的细胞状态和基因调控
    • 2.3.1 算法|2020-BatchBench比较scRNA批次矫正方法
    • 2.3.2 算法 | 2021-scPhere——用地球仪来展示降维结果
    • 2.3.3 算法 | 2021-单细胞差异分析方法评测
    • 2.3.4 算法 | 2021-细胞分群新方法——CNA(co-varying neighborhood analysis)
    • 2.3.5 工具 | 2018-iSEE:单细胞数据可视化辅助网页工具
    • 2.3.6 工具 | 2021-MACA: 一款自动注释细胞类型的工具
    • 2.3.7 工具 | 2021-一个很有想法的工具——Ikarus,想要在单细胞水平直接鉴定肿瘤细胞
  • 3 流程篇:分析框架
    • 3.1 质控
    • 3.2 归一化
    • 3.3 挑选表达量高变化基因
    • 3.4 降维
    • 3.5 聚类
    • 3.6 Marker/标记基因检测
    • 3.7 细胞类型注释
    • 3.8 批次效应处理
    • 3.9 多样本间差异分析
    • 3.10 检测Doublet
    • 3.11 细胞周期推断
    • 3.12 细胞轨迹推断
    • 3.13 与蛋白丰度信息结合
    • 3.14 处理大型数据
    • 3.15 不同R包数据的相互转换
  • 4 实战篇:活学活用
    • 4.1 实战一 | Smart-seq2 | 小鼠骨髓
    • 4.2 实战二 | STRT-Seq | 小鼠大脑
    • 4.3 实战三 | 10X | 未过滤的PBMC
    • 4.4 实战四 | 10X | 过滤后的PBMC
    • 4.5 实战五 | CEL-seq2 | 人胰腺细胞
    • 4.6 实战六 | CEL-seq | 人胰腺细胞
    • 4.7 实战七 | SMARTer | 人胰腺细胞
    • 4.8 实战八 | Smart-seq2 | 人胰腺细胞
    • 4.9 实战九 | 不同技术数据整合 | 人胰腺细胞
    • 4.10 实战十 | CEL-seq | 小鼠造血干细胞
    • 4.11 实战十一 | Smart-seq2 | 小鼠造血干细胞
    • 4.12 实战十二 | 10X | 小鼠嵌合体胚胎
    • 4.13 实战十三 | 10X | 小鼠乳腺上皮细胞
    • 4.14 | 实战十四 | 10X | HCA计划的38万骨髓细胞
  • 5 补充篇:开拓思路
    • 5.1 10X Genomics概述
      • 5.1.1 10X Genomics 问题集锦
    • 5.2 CellRanger篇
      • 5.2.1 CellRanger实战(一)数据下载
      • 5.2.2 CellRanger实战(二) 使用前注意事项
      • 5.2.3 CellRanger实战(三) 使用初探
      • 5.2.4 CellRanger实战(四)流程概览
      • 5.2.5 CellRanger实战(五) 理解count输出的结果
    • 5.3 Seurat的使用
      • 5.3.1 Seurat V3 | 实战之2700 PBMCs分析
      • 5.3.2 Seurat V3 | 如何改造Seurat包的DoHeatmap函数?
      • 5.3.3 scRNA的3大R包对比
      • 5.3.4 Seurat两种数据比较:integrated vs RNA assay
      • 5.3.5 seurat 的几种findmaker比较
    • 5.4 Monocle的使用
      • 5.4.1 Monocle V3实战
    • 5.5 多个数据集的整合
      • 5.5.1 使用Seurat的merge功能进行整合
      • 5.5.2 如何使用sctransform去除批次效应
由 GitBook 提供支持
在本页
  • Q1:3' and 5’ Gene Expression文库的差别
  • Q2:到底怎么建库测序的?机器的工作原理是怎样的?
  • Q3:什么是barcode whitelist?
  • Q4:cellranger怎样校正barcode测序错误的?
  • Q5:利用cellranger分析SRA数据
  • Q6:利用seurat检验10X Aggr整合的数据

这有帮助吗?

  1. 5 补充篇:开拓思路
  2. 5.1 10X Genomics概述

5.1.1 10X Genomics 问题集锦

刘小泽写于19.5.13

上一页5.1 10X Genomics概述下一页5.2 CellRanger篇

最后更新于4年前

这有帮助吗?

使用一个新的工具肯定会遇到各种问题,但是一个好的工具一定会有详细的问题解决办法,比如10X官方就做了一个问题集锦,他们将询问邮件搜集整理出来,然后以Q&A的形式放在官网

一般做单细胞还主要是想看表达量,因此我先翻译整理一下关于Single Cell Gene Expression 的问题

Q1:3' and 5’ Gene Expression文库的差别

来自:

Both solutions use polydT primer for reverse transcription, although in the 3' assay the polydT sequence is located on the gel bead oligo, while in the 5' assay the polydT is supplied as an RT primer.

Q2:到底怎么建库测序的?机器的工作原理是怎样的?

先看个图片,有个大体印象

10X 机器做了什么?

10X公司把微珠加DNA标签、微滴反应、酶反应以及高通量测序后的数据分析整合到了一起,做了一个基于油包水乳浊液酶反应原理的分析系统。

看到的10X机器就是制备油包水的乳浊液,它搭配芯片一起工作,这个机器制备一次乳浊液大约耗时7-9分钟,能产生500-8万个细胞

再看看芯片(上图二),芯片有4排8列,也就是32个孔。每一列孔对应一个样本,也就是说,一张芯片一次可以处理8个样本。图中1️⃣的孔是用来放样本的(sample well),编号2️⃣是用来放预制微珠(gel beads),编号3️⃣是用来放油的,最上面那一排是做好乳浊液以后,回收乳浊液的孔

目前单细胞测序主要还是基于对一群细胞中每个细胞的表达量分析

工作原理第一步:微珠上DNA引物设计

先预制凝胶微珠,也就是所说的gel beads,然后每个凝胶微珠"种上"特定的DNA片段,每个DNA序列分成几段:

  • 第一段是barcode,16bp碱基,大约350万种barcodes,一个微珠对应一个barcode,利用这么多barcode可以区分各个凝胶微珠。=》每个凝胶微珠的ID号

    其中任意两个barcode之间至少差两个或者两个以上的碱基,因为测序存在对碱基的误读,这样设计可以避免将两个barcode搞混(可以试想,如果两个barcode之差一个碱基,那么就有16分之一的概率将两个判断成一个)

  • 第二段是UMI序列,即unique molecular index,它是一段随机序列,也就是说每个DNA分子都有自己的UMI序列,UMI长为10bp,那么就有4^10=1,048,576也就是100多万种变化。它的作用就是经过了PCR+深度测序后,找到reads与原始cDNA的对应关系 =》 每个DNA标签分子的ID号

    它考虑到了这样一种情况:一个基因片段经过PCR扩增产生多个reads,但是不加标记我们是不知道的,并且不同基因的PCR扩增效率可能不同,因此一个基因最后得到的reads数就可能由于PCR扩增效率高而超过了另一个基因(而这两个基因的真实表达量可能差不多)。也就是排除"PCR bias"

  • 第三段是Poly(dT)序列,它起到的作用是与mRNA的poly(A)尾巴结合,作为逆转录的引物,将cDNA逆转录出来

工作原理第二步:芯片的液流管路

细胞混悬液在第一个十字交叉口,与凝胶微珠混合;接着进入第二个交叉口,这时加上油滴,把凝胶微珠+细胞混悬液包裹起来=》油包水的小液滴=》这些油包水的小微滴就组成了乳浊液

乳浊液中,有的是包含一个细胞的(红圈部分),也有的不包含细胞,还有的有两个以上细胞(这个叫"Doublets") ,一个小液滴中包含几个细胞是符合"泊松分布"的。

大部分细胞会匹配到一个小液滴中(细胞混悬液中大约有65%的细胞可以被成功包到有微珠的小液滴中=》也叫做细胞的捕获效率~65%),后续分析的reads就是从它们这里来的

工作原理第三步:测序文库构建

得到乳浊液后,就要脱掉细胞膜,让其中的mRNA游离出来=》

游离出来的mRNA与小液滴中的水相混合,水相中包括凝胶微珠上连着的核酸引物、逆转录酶、dNTP底物,发生逆转录反应=》

通过mRNA的polyA与凝胶微珠上的polyT互补,mRNA与凝胶微珠上带有标签的DNA分子结合起来,然后在逆转录酶作用下,逆转录出cDNA=》

这样得到的cDNA分子是带有微珠特定的barcode标签的,并且每个cDNA分子带有特定的UMI标签,有了这两个标签,就可以区分这个特定的cDNA与其他的cDNA=》

然后将乳浊液中所有的水相抽出来,也就是把带有标签的cDNA分子抽出来=》

cDNA分子加接头,PCR扩增,得到illumina文库

数据构成

一个样本一般就测几百或几千细胞,barcode种类却有3百多万,所以很少出现一个barcode对应两个细胞的情况。因此得到的数据可以通过barcode拆分,将测序reads回溯到每个细胞

当然,是有可能出现一个barcode对应两个甚至多个细胞的情况,这时如果按照barcode去拆分,就会将这两个或者多个细胞的reads组合成一个"pool"。因此,为了减少pool的出现,就要在细胞混悬液制备阶段,控制原始的细胞数量

所以这里看到,并不是制备的细胞数越多越好。原始细胞数越少,最后的混合pool就越少,这也是符合泊松分布的。一般来说一个样本混悬液的细胞数在1万以下比较好

利用UMI对reads进行简并,就可以看到细胞reads与基因数量之间的关系,比如这样:横坐标是细胞reads数,纵坐标是基因数,reads数越多能得到的基因也就越多。一般来说一个细胞读到30万条reads后,基因数量随reads数增加的速度会变慢=》基因数量"平台期"

一般一个细胞可以得到4万-8万个有效的UMI,平均一个细胞的一个基因有10个UMI;

一个细胞的一个基因的表达量是衡量这个细胞的一个维度,于是几千个被测基因的表达量形成了几千个维度。如果将成千上万个细胞放在一起分析,经过降维、聚类,放到一个三维空间并加上颜色,就形成了这样的分布形式

然后如果将三维空间的一团细胞拿出来,放大,继续细分,就能得到这团细胞的亚型

Q3:什么是barcode whitelist?

就是10X试剂盒中包含的全部已知的barcode序列,在构建文库时发挥作用。例如:在Single Cell 3' and V(D)J的应用中,有约737,000 cell barcodes在whitelist中,whitelist相当于一个"标准"

例如前10个:

AAACCTGAGAAACCAT
AAACCTGAGAAACCGC
AAACCTGAGAAACCTA
AAACCTGAGAAACGAG
AAACCTGAGAAACGCC
AAACCTGAGAAAGTGG
AAACCTGAGAACAACT
AAACCTGAGAACAATC
AAACCTGAGAACTCGG
AAACCTGAGAACTGTA

可以从软件安装包中找到:cellranger-2.1.0/cellranger-cs/2.1.0/lib/python/cellranger/barcodes/737K-august-2016.txt

Q4:cellranger怎样校正barcode测序错误的?

  1. 如果数据中的barcode也存在于whitelist中,就计算它们在数据中出现的频率

  2. 如果数据中的barcode不存在于whitelist中,就找与whitelist相差1-Hamming-distance的barcode:首先看看现在的barcode和whitelist中的barcode的碱基质量值,对它们不同的碱基计算后验概率;如果后验概率超过0.975,就找到后验概率值最大的那个barcode,将这个barcode替换成whitelist中的barcode

By definition from Wikipedia, the Hamming distance between two strings of equal length is the number of positions at which the corresponding symbols are different. In other words, it is the number of substitutions required to transform one string into another. 前提是两个字符串长度相等,然后hamming的距离就是这两个字符串之间的差异数量。这里说的1-Hamming-distance应该就是数据的barcode和标准的barcode之间差一个碱基

结果产生的BAM文件中,原始未校正的barcode被打上CR标签,校正后的是CB

Q5:利用cellranger分析SRA数据

利用fastq-dump的--split-files参数,可以生成两个fq文件,但是命名要注意

Q6:利用seurat检验10X Aggr整合的数据

另外还可以用seurat来整合10X数据:

https://kb.10xgenomics.com/hc/en-us/articles/115004506263
https://kb.10xgenomics.com/hc/en-us/articles/115003822406-How-does-Cell-Ranger-correct-barcode-sequencing-errors-
https://kb.10xgenomics.com/hc/en-us/articles/115003802691-How-do-I-prepare-Sequence-Read-Archive-SRA-data-from-NCBI-for-Cell-Ranger-
https://kb.10xgenomics.com/hc/en-us/articles/360004524851-How-can-I-identify-the-10x-library-sources-when-analyzing-an-aggr-matrix-using-Seurat-
https://satijalab.org/seurat/merge_vignette.html
https://kb.10xgenomics.com/hc/en-us
https://kb.10xgenomics.com/hc/en-us/categories/360000149952-Single-Cell-3-Gene-Expression
https://kb.10xgenomics.com/hc/en-us/articles/360000939852-What-is-the-difference-between-Single-Cell-3-and-5-Gene-Expression-libraries-
image-20190515175231589