作者,Evil Genius
果然粉丝很多都是硕士博士高学历人才,真的是糊弄不了一点,Seurat V5 整合没封装,都被人说,云飞你敷衍了啊~~~
今天我们继续分享关于空间转录组的内容,我们今天的课题是空间转录组降噪,之前分享过一个方法,SpotClean,文章在
10X空间转录组去污染分析之SpotClean
原发性和转移性胰腺癌的空间转录组学解析肿瘤微环境异质性
课前准备----10X HD数据基础分析
空间系列课程上也讲过,在第七课:空间转录组联合分析与形态学识别
空转第十一课空间污染spotclean和生态位基因模块banksy
今日参考文献
知识积累
- 空间分辨转录组学(SRT)将基因表达谱与细胞在自然状态下的物理位置相结合,但由于细胞在冷冻切片和暴露于染色试剂和mRNA释放过程中受到不可预测的空间噪声的影响。
- 空间分辨转录组学(SRT)技术将高通量基因测序与组织学技术相结合,提供空间背景下的基因表达数据
- 理想情况下,在特定位置的每个测序unit(在不同技术中称为bin或spot)应该专门捕获原位细胞释放的转录本。然而,SRT也可能由于在液体实验环境中的随机扩散而捕获非原位转录本。这种扩散在SRT数据中引入了复杂的噪声,超出了单细胞RNA测序(scRNA-seq)中常见的dropout现象。
- 造成SRT数据噪声的主要因素有三个
1、在组织冷冻切片后,将冷冻切片贴在空间转录组学芯片表面进行渗透。尽管这些芯片捕获细胞释放的mRNA,但不完全的细胞通透性会阻碍细胞下方的芯片点捕获mRNA,导致这些点上方的mRNA随机漂移。相反,过度的细胞通透性导致大量释放的mRNA,这些mRNA可以被相邻的spot捕获。此外,由于细胞渗透发生在液体环境中,mRNA漂移是一个随机事件,因为热运动和不可预测的分子运动。
2、在RNA-seq的逆转录和扩增过程中,转录物扩散可能发生。RNA与逆转录酶之间形成复合体可能导致部分RNA损伤或渗漏。在cDNA合成过程中,不适当的结合或反应条件可诱导RNA通过引物扩散。
3、在SRT数据处理过程中,不适当的算法、参数或质量控制标准会增加假阳性噪声。此外,组织和背景之间的转录本交换在SpotClean中得到了广泛的研究。
空间排污方法,旨在通过统计方法模拟SRT数据中的转录物扩散模式,并修改原始UMI计数。
分析目标:建议将SRT数据中具有明显空间聚集性的基因分类为有效信号(“有效”基因),将具有高扩散水平的基因分类为噪声(“无效”基因)。为了减轻转录物扩散噪声的影响,我们通过排除高扩散水平的无效基因来增强有效基因。
结果1、SRT数据包含妨碍下游分析的噪声
转录物扩散噪声在SRT数据中普遍存在(Stereo-seq和10x Visium)。
- SRT数据存在广泛的扩散,导致该基因原有的空间特异性丧失,无法对细胞聚集或细胞类型注释做出合理的判断。
在进行下游生物信息学分析之前,对SRT数据进行有效的去噪是必不可少的。
结果2、SpotGF对SRT数据去噪
利用最优运输(OT)算法定量评估基因扩散模式,从而过滤掉扩散的基因并减少噪声影响。
SpotGF在过滤无效基因中起着关键作用,这些无效基因具有跨组织区域广泛且均匀表达的特点,不利于细胞聚类、细胞类型注释和差异表达基因(DEGs)鉴定等关键任务。与依赖于数学统计模型的传统去噪算法不同,SpotGF保留了原始测序数据中有效基因的UMI计数,而无需修改,并专注于过滤掉阻碍下游分析的无效基因。
10X和华大数据的分析表现
结果3、SpotGF有效滤除SRT数据中的扩散基因(大豆根系的Stereo-seq数据)
结果4、SpotGF增强了在SRT数据中识别上调基因的准确性
结果5、SpotGF促进细胞聚类和细胞类型推断(10X Visium兰花数据)
结果6、SpotGF提高了人类结直肠癌肿瘤细胞识别的准确性
SRT技术提供了一个独特的机会,将病理图像与基因表达数据相结合,增强肿瘤诊断和实现精确治疗。
SpotGF增加了上调基因的特异性,提高了识别肿瘤细胞的准确性,促进了肿瘤细胞中潜在标记基因的发现。
SRT数据解决生物学问题已经取得了很大的势头,但SRT数据的质量问题必须得到更多的关注。SpotGF去噪算法是专门为SRT数据量身定制的,是处理流程中至关重要的第一步。
示例代码
conda安装
conda create --name GF
conda activate GF
# conda config --add channels conda-forge ##If you do not have this channel added before#
conda install python=3.7 pandas pot=0.8.2 numpy scipy matplotlib descartes
#Then, download this repo and install it.
git clone [repo_path]
cd [path/to/GeneFilter-main]
pip install .
运用方法
import GeneFilter as GF
gem_path = '../arbi-image1-cellbin.gem'
binsize = 5
proportion = 0.6
auto_threshold = True
GF = GF.GeneFilter(gem_path,binsize,proportion,auto_threshold,lower,upper,max_iterations) #initial class
GF_df = GF.calculate_GFscore(gem_path,binsize)#acquire GF socres distribution figure to help choose proportion parameter
new_gem = GF.generate_GFgem(gem_path,GF_df,proportion,auto_threshold ) #denoised SRT data