Spateo-空间转录组分析流程2:空间可变基因

文摘   2024-12-04 07:01   北京  

这是一个系列教程:前几天介绍了第一篇,这次接着分析:

Spateo-空间转录组的瑞士军刀-教程1:细胞分割

单细胞分析的一个重要步骤就是高可变基因(highly variable genes,HVG)。这类基因是单细胞研究中重点关注的基因,通常可以反映细胞类型或者细胞的状态差异,与技术噪音和背景无关。在空间转录组分析中,同样也需要寻找高可变基因,但是这个步骤考虑了基因的位置信息,也就是空间可变基因(spatially variable genes,SVG)。这类基因的通常在组织或样本的不同空间位置上呈现显著差异的基因。通常与组织结构、细胞类型分布或微环境特性密切相关。分析和识别空间可变基因对于理解组织的空间异质性和功能动态具有重要意义。

Spateo 提供通过最优传输进行空间可变基因识别的功能。用户可以识别那些在空间上表达不均匀的基因,或者在切片内具有与特定给定基因相似空间表达模式的基因。该功能还扩展支持了在两个切片之间进行空间可变基因的识别。

简单整理了一下单切片和多切片寻找SVG的代码,方便大家学习。

切片内空间可变基因识别

%load_ext autoreload%autoreload
import syssys.path.insert(0,"/home/panhailin/software/source/git_hub/spateo-release_add_svg/")import spateo as st
import pickle


读取填充缺失值后的adata

空间可变基因(SVGs)的识别可以在任何类型的数据上完成,这里我们使用平滑处理后的数据来展示如何识别SVGs。平滑数据可以通过st.svg.imputation()函数生成。

e16_sm = st.read_h5ad('E16.5.smooth.h5ad')e16_sm

随机采样400个细胞

e16 = st.svg.downsampling(e16_sm, downsampling=400)e16

通过与均匀分布比较识别空间可变基因(SVGs)

e16_w, _ = st.svg.cal_wass_dis_bs(e16, bin_size=1, processes=7, n_neighbors=8, bin_num=100, min_dis_cutoff=500, max_dis_cutoff=1000, bootstrap=100)

筛选出显著的空间可变基因(SVGs)

# Add positive rate before smoothing for each genest.svg.add_pos_ratio_to_adata(e16_sm, layer='raw')e16_w['pos_ratio_raw'] = e16_sm.var['pos_ratio_raw']
# We obtain 529 significant SVGssig_df = e16_w[(e16_w['log2fc']>=1) & (e16_w['rank_p']<=0.05) & (e16_w['pos_ratio_raw']>=0.05) & (e16_w['adj_pvalue']<=0.05)]sig_df

展示top20基因

st.pl.space(e16_sm, color=sig_df.sort_values(by='log2fc', ascending=False).index[0:20], pointsize=0.1, show_legend="upper left", space='spatial')


识别与特定基因具有相似空间表达模式的基因

e16_gene_w, _ = st.svg.cal_wass_dis_target_on_genes(e16, n_neighbors=8, target_genes=["Neurod1", 'Fabp7'], processes=7, bootstrap=100, min_dis_cutoff=500, max_dis_cutoff=1000,)
# Top 10 genes are similar to Neurod1e16_gene_w['Neurod1'].sort_values(by='Wasserstein_distance').head(10)
# Show example genesst.pl.space(e16_sm, color=['Neurod1', 'Epha3', 'Phf21b', 'Mef2d'], pointsize=0.1, show_legend="upper left", space='spatial')

# Top 10 genes are similar to Fabp7e16_gene_w['Fabp7'].sort_values(by='Wasserstein_distance').head(10)
# Show example genesst.pl.space(e16_sm, color=['Fabp7', 'Lockd', 'Hmgn2', 'Zbtb20'], pointsize=0.1, show_legend="upper left", space='spatial')

这次生信的大纲内容进行全面的调整,想了解生信的,跟班的,可以看下面👇这个文章

这次可不是只学单细胞,基本上从基础到多组学、空间、机器学习一条龙全打通了

单细胞数据分析需求的可以看👇这个文章

没有服务器,单细胞数据搞不定?我们目前做好了这些pipeline,可以帮你做


生信钱同学
北京大学在读博士生,记录自己的学习日常🌞分享生信知识:如单细胞和空间测序、多组学分析、宏基因组、病理组学、影像组学等生物信息学、机器学习和深度学习内容🌬
 最新文章