一. 序章杂记
- 一个单一的基因位点可以显示多种的可变剪切模式,这些剪切模式产生不同的转录本亚型,而这些亚型又可能具有不同的转录起始位点或者聚腺苷酸化位点
疑问: 为什么RNA-seq建库的时候需要逆转录构建cDNA库,而不能直接对mRNA进行扩增构建文库呢?- 一般RNA的降解速率比较快
- 现阶段的常规测序的酶和试剂都是在DNA体系下的。
- RNA还存在ployA尾巴,像illumina的P5,P7是不是会接不上去(这点有待商榷,不是很清楚,我觉得ployA尾,可以设计带有T长序列的引物的接头应该也是可以的接上去的)
- Smart-seq和Smart-seq2作为单细胞测序方案,他可以完整覆盖转录本的全长,实现了转录本异构体分析和SNV分析
10X是平台,使用的核心是drop-seq的技术,微流控。
-
10X的空间转录组,一般配备的是切片组织,常规的scRNA是细胞悬液。空间转录组对同一组织不同位置切片可以模拟三维结构。目前spot点每个获得1~10个细胞,无法精确到单细胞层面。
(多组学联合分析研究思路:- 单细胞分析找差异gene或者差异分群
- 空间转录组根据差异gene或者群体找空间位置
- Akoya去研究这些未知的特定差异gene结合的蛋白)
-
已经做了单细胞,为什么还要做Bulk-seq?
- 评估酶解对单细胞表达的影响
(在许多单细胞的研究中,细胞是通过组织分离(酶消化)和荧光激活细胞分选(FACS)来获取,但是酶解对细胞转录组会产生不同程度的影响。利用相同样本的Bulk RNA-seq数据进行评估,分析单细胞数据和Bulk数据表达相关性。) - 细胞构成分析
- 评估酶解对单细胞表达的影响
- 对特定的细胞表达谱进行分析(后期验证)
二. 单细胞测序数据分析
- 10X平台的数据量要求,对于V3试剂要求每个细胞至少测20k reads。5000个细胞至少要有30G的数据。
-
由于单细胞测序的数据量非常庞大,为了降低测序时Sample Index读取的偏好性,每个Sample Index含有四种8碱基长度序列(如下图)
3. cellranger专题:
(1) 首先一部分GEM包含了一个cell,很少部分GEM会包含多个cells,很大部分GEM是空胞。但是含有背景RNA,这些细胞被称为背景barcode
(2) cellranger3引入了新的算法,算法基本原理:
- Step1:识别高RNA含量。(取含量最高的前N个细胞的UMI数目的99%中位数的1/10为最低标准之一)
- Step2:根据RNA图谱找到更多的细胞(算法Enpty Drops)
4. Seurat分析专题:
Seurat对象结构
<font color=blue>Seurat官网
Seurat脚本
(1) 细胞过滤:
- 通常情况,使用PercentageFeatureSet对细胞进行线粒体(植物样本还要看叶绿体)含量评估,Vlnplot查看,若线粒体含量偏高,说明样本可能存在很多凋亡状态细胞,样本情况不是很好。
- 一般的过滤标准是细胞内基因数大于500小于5000,线粒体过滤标准在5-30%具体看项目样本的情况。
(2) 二次分析(降维,聚类,差异分析等)
- 基于上一步过滤后的数据在对数据进行标准化NormalizeData()
公式:标准化后基因表达量 = log1p(10000*基因counts/细胞总counts)
这一步是为了消除细胞之间不同测序深度的影响。是为了让细胞之间可以在同一层次相互比较,因为在实验过程中,无法保证每个细胞内部UMI结合效率等等因素。
- 基于上一步过滤后的数据在对数据进行标准化NormalizeData()
- FindVariableFeatures()鉴定高变基因
- 用ScaleData()对之前做的NormalizeData()函数的表达量数值进行z-score的转化,由于z-score的算法会将表达矩阵转换成(0,1)的正态分布,因为PCA所分析默认数据符合正态分布。
目的[https://www.jianshu.com/p/e98df9aa2a35]
转换每个基因的表达值,使每个细胞的平均表达为0
转换每个基因的表达值,使细胞间的方差为1
此步骤在下游分析中具有相同的权重,因此高表达的基因不会占主导地位
- 用ScaleData()对之前做的NormalizeData()函数的表达量数值进行z-score的转化,由于z-score的算法会将表达矩阵转换成(0,1)的正态分布,因为PCA所分析默认数据符合正态分布。
- PCA分析,使用RunPCA()聚类后(一般PCA降维聚类使用的是高变基因),再使用JackStraw()观察选取多少主成分分析为最佳。
- FindNeighbors()基于PCA空间中的欧氏距离计算
- Findcluster()中resolusion参数决定下游聚类分析得到的cluster数量。
- RunUMAP或者RuntSNE进行降维聚类
- Dimplot()查看聚类结果
- FindAllMarkers()寻找群体之间的差异基因 (FindAllMarkers的默认条件过滤了p值的,但是FindMarkers没有,如果FindMarkers的ident.2不写,而按照指定群体做差异,那么得到的结果中包含FindAllMarkers的基因,而且会多出p值超出0.01的gene)
- FindMarkers()找寻群体内部样本之间的差异基因
5. CCA批次校验
- 值得注意的是在Seurat中的FindIntegrationAnchors()寻找细胞之间锚点的函数中,reduction有两个参数,一个是cca,另一个是rpca(rpca一般用于处理大量样本,例如超过了10万细胞数的样本)
- 将数据集降维到一个低纬度空间,因为CCA降维后的空间距离不是相似性而是相关性相似性和相关性的区别,所以相同类型的细胞可以重叠在一起。
- CCA在降维后使用MNN(欧式几何距离算法)找到两个数据集之间的"距离"最近的细胞,这些细胞成为锚点
- 过滤不符合条件的锚点细胞
- 过滤后的锚点,Seurat会计算它们的差异向量,根据此向量校正这个锚点锚定细胞的表达值,校正后的数据实现了多个单细胞数据集的整合。(这个操作并不会在原有的表达量上直接修改数据,应该是生成了一个新的table来记录锚定的信息)
6. SingleR分析专题:
- SingleR脚本
- 他通过给定具体已知类型标签的细胞样本作为参考数据集,对测试数据集中与参考集相似的细胞进行细胞注释,例如人类使用的(HumanPrimaryCellAtlasData数据集)。具体来说,对于每个测试的细胞:
(1) 计算每个细胞的表达谱与参考表达谱之间的Spearman相关性。这是通过在所有标记之间识别的markergene的并集完成的。
(2) 其次,我们将每个标签的分数定义为相关分布的固定分位数(默认为0.8)
(3) 最后,我们对所有标签重复此操作,然后将得分最高的标签作为此细胞注释。
7. 细胞周期分析:
-
概念:
- 细胞周期(cell cycle)是指细胞从一次分裂完成到下一次分裂结束所经历的全部过程,分为间期和分裂期两个阶段
- 间期分为三个阶段:
(1) G1期,从有丝分裂到DNA复制前的一段时间,又称为合成期,此期间主要合成RNA和核糖体。该期特点是物质代谢活跃,迅速合成RNA和蛋白质,细胞体积显著增大。这一期的主要意义在于 下阶段S期的DNA复制准备好物质和能量的准备。
(2) S期,即DNA合成期,在此期,除了合成DNA外,同时还要合成组蛋白,DNA复制的酶也会在这期合成。
(3) G2期,为DNA合成后期,为有丝分裂做准备。在此期间,DNA合成终止,大量RNA和蛋白质合成,包括微管蛋白和促成熟因子等。
(4) M期,细胞分裂期,分为前中后末期。
- 细胞周期一般在质控的时候操作,通常情况下也不考虑这个因素,在Scale数据的时候要对S.score和G2M.score进行回归,在进行PCA降维,这是由于若不关注细胞周期的话,细胞周期起决定作用的gene可能会影响聚类分群的结果。这步操作在于抹平细胞周期的特征基因的影响。
- 细胞周期也可以进行个性化分析。
8. Monocle分析专题:
拟时序脚本
monocle3和monocle2练习
- <font color=blue>Monocle官网
-
应用场景:
- 细胞分化轨迹期望达到两个目标:
- 推导若干个可能存在分化/演化继承关系的细胞亚群间最可能的分化路劲。
- 找出驱动细胞亚群分化的关键基因。
- 该应用情景的必须基于两点:
- 对目标细胞亚群已经有清晰的鉴定和拆分。
- 预期其中若干细胞亚群存在谱系上的分化继承关系,并且期望通过分析确定它们的分化过程。
- 细胞分化轨迹期望达到两个目标:
-
计算过程:
-
Step1:信息筛选
- a) 细胞筛选:筛选潜在存在分化关系的细胞亚群。
- b) 基因筛选:保留存在差异较大或者变异较大的基因用于分析。
-
Step2:轨迹构建(核心步骤)
- a) 降维。
- b) 构建细胞间分化的轨迹,并将每个细胞映射到路劲中。
-
Step3:寻找细胞分化相关基因(本质是差异分析):
- a) 选择发育差异基因
- b) 选择Seurat对象降维聚类cluster中的差异基因
- c) 选择离散程度较高的差异基因(monocle包中有计算离散程度的函数estimateDispersions())
- d) 自定义发育gene
-
Step1:信息筛选
- 通过拟时序分析(pseudotime)分析,又称为细胞轨迹分析可以推断出发育过程中细胞的分化轨迹和细胞的演化过程,在发育相关研究中使用频率较高。
- 主要是基于关键基因表达模式,通过学习每个细胞必须经历的基因表达变化的序列,在拟时序中对单个细胞进行排序,模拟出时间发育过程的动态变化。而这种排序的技术表现为一种低纬空间排布的高维数据的降维技术。
- monocle可以从数据中用无监督学习或半监督学习获得这个轨迹,无监督学习是利用seurat对细胞进行聚类,通过cluster间的差异基因对细胞进行排序。
-
拟时序分析的研究目的:
- 对什么类型细胞的细胞进行拟时序分析,这类细胞在不同的分化轨迹或者细胞亚型的区别上是否明显。
- 可分析比较组间的差异和多样本间拟时序分析的差别。
- 需要注意的是:
- monocle包本身有质控和分群的功能,由于一般所给的对象已经经过了Suerat质控和分群过程,所以通常情况下进行拟时序分析时不需要再次操作。
- 什么是细胞通讯:
- 细胞通讯是指一个细胞发出的信息通过介质传递到另一个细胞产生的相应反应。细胞有三种通讯方式:
- 通过化学信号分子,这是动植物最普遍采用的通讯方式
- 通过临近细胞表面分子的粘着
- 通过细胞与细胞外基质的粘着
- 细胞通讯是指一个细胞发出的信息通过介质传递到另一个细胞产生的相应反应。细胞有三种通讯方式:
- 作用:
- 揭示发育过程中各类细胞的相互作用
- 探索肿瘤免疫微环境
- 挖掘疾病潜在的治疗靶点。
1. cellphoneDB(python模块):
- 自带数据库,基于表达量的富集分析。
2. cellchat(R模块):
cellchat练习脚本
-
功能:
- 它能沿着细胞发育轨迹分析细胞间通讯的连续状态
- 它可以通过结合社交网络分析、模式识别和流型学习的方法,使用集成方法对推断的cell-cell通讯网络进行定量表征和比较
- 它提供了一个易于使用的工具,用于提取和可视化推断网络的高阶信息。例如:它可以随时预测所有细胞群的主要信号输入和输出,以及这些细胞群和信号如何协调在一起以实现功能。
- 它提供了几个可视化输出,以便直观展示数据可读性
-
cellchat分析需要的文件:
- cellchat需要细胞的基因表达数据作为输入,并且将基因表达与信号的配受体以及辅助因子之间的相互作用用先验知识相结合来模拟细胞间的通讯概率
- 需要输入的文件包含了:1.细胞基因的表达矩阵;2.用户分配的细胞标签(也可以是Findcluster得到的细胞群体)或者无标签模式(这种模式cellchat通过基于低维空间或者伪时间轨迹空间中单元格距离构建共享邻居图来自动对单元格进行分组)
-
基本分析:
- 通常由于使用Seurat包进行前置分析,这里就需要转化成cellchat的专属对象。
- 配受体数据库的导入
- cellchat拥有自己人工整理的数据库,包含有文献支持的小鼠和人的配受体相互作用
-
数据的预处理以研究细胞之间的通讯分析:
- 为了推断细胞状态的特异性通讯,会在一个细胞群体中识别过表达的配受体对。
- 如果配受体对过表达,则识别过表达的配受体的相互作用
- 还可以将基因的表达数据投射到蛋白-蛋白网络(PPI)功能
- 细胞间通讯的推断
cellchat通过对每个交互分配一个概率值并执行排列测试来推断具有生物学意义的细胞间的通讯。
cellchat通过使用质量作用定律 (质量作用定律:化学反应速率与反应物的有效质量成正比)将基因表达与先前已知的信号配体、受体以及辅因子之间的相互作用的知识相结合,对细胞通讯的概率进行建模
-
操作的步骤:
- 计算通讯概率并推断细胞信号网络
- 在信号通路水平上推断细胞间的通讯
- 可视化
-
研究思路和可视化:
- 可以查看感兴趣的细胞群体之间的通讯关系,研究特定的配受体对以及所对应的通路信息
- 可以研究特定通路的每个配受体对,对通路的贡献,并且可视化
层次图左边图表示以左边实心点代表的中间的空心为接收(看中间target即可看出),所有群体对target的自分泌和旁分泌信号,右边图表示以右边实心点代表的中间的空心为接收。(看小标题可以知道含义)
- 可视化单个配受体对介导的细胞群体间的通讯
-
可视化由多个配受体或信号通路介导的细胞间的细胞通讯(这里显示了特定群体对其他群体所有重要的互作对)