首页 > 其他分享 >分析优化----关于空间原位数据的邻域分析优化

分析优化----关于空间原位数据的邻域分析优化

时间:2024-10-16 15:45:59浏览次数:9  
标签:pp 优化 sq 邻域 细胞 ---- sc import adata

作者,Evil Genius

今天我们需要讨论一个问题,那就是关于邻域的问题,目前有两种思路,如下:

一种是选择某个点(cell)一定范围内距离最近的几个细胞,例如下面就是距离最近的10个细胞

另外一种是将一定范围内的所有细胞均纳入分析范围,如下图:

对于那种spot类型的数据,点之间的大小是固定的,自然也就没有什么区别,那如果是原位的分析,大家觉得哪种更好呢?尤其其中关键的问题,如果选择第二种,距离设置成多远呢?

其实大家应该都倾向于第二种的空间邻域分析方法,因为做了图像细胞分割的原因,对于原位数据有以下特点:

那就是细胞的分布密度不同,有的地方密度大,固定大小包含多个细胞,有的地方密度小,细胞分布就比较少了。

所有我们基于原位的数据需要优化,同时兼容像visium的数据。

我们先以visium 的数据为例,范围设置成100(注意这里的范围是像素),同时要做了单细胞空间的联合分析。

import scanpy as sc
import squidpy as sq

# 读取空间转录组数据 (例如 10X Visium 数据)
adata = sc.read_visium('/home/samples/DB/Spatial/visium_data/HCC_1L')

# 预处理数据
sc.pp.normalize_total(adata, inplace=True)
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata, flavor="seurat", n_top_genes=2000)
adata = adata[:, adata.var.highly_variable]

# 计算邻域信息 (必要时设置邻域大小)
sq.gr.spatial_neighbors(adata, coord_type="grid", radius=100)

# 进行细胞通讯分析
sq.gr.interaction_matrix(adata)

# 可视化通讯网络
sq.pl.spatial_interaction(adata, cluster_key="cluster")

高精度的原位数据同理,需要做好细胞类型的注释

import spatialdata as sd
from spatialdata_io import xenium

import matplotlib.pyplot as plt
import seaborn as sns

import scanpy as sc
import squidpy as sq

xenium_path = "./Xenium"
zarr_path = "./Xenium.zarr"
sdata = xenium(xenium_path)

sc.pp.filter_cells(adata, min_counts=10)
sc.pp.filter_genes(adata, min_cells=5)

adata.layers["counts"] = adata.X.copy()
sc.pp.normalize_total(adata, inplace=True)
sc.pp.log1p(adata)
sc.pp.pca(adata)
sc.pp.neighbors(adata)
sc.tl.umap(adata)
sc.tl.leiden(adata)

sq.gr.spatial_neighbors(adata, coord_type="generic", delaunay=True, radius=100)

sq.pl.nhood_enrichment(
    adata,
    cluster_key="leiden",
    figsize=(8, 8),
    title="Neighborhood enrichment adata",
    ax=ax[0],
)
sq.pl.spatial_scatter(adata_subsample, color="leiden", shape=None, size=2, ax=ax[1])

这里只做到了共定位,还有很多很个性化的分析需要探讨,我们以后再来讨论

生活很好,有你更好

标签:pp,优化,sq,邻域,细胞,----,sc,import,adata
From: https://blog.csdn.net/weixin_53637133/article/details/142984343

相关文章

  • jdk1.6,jdk1.7,jdk1.8安装共存问题
    1.今天遇到了需要编辑开发公司老项目的情况,之前本人电脑就装了1.6和1.8的jdk,现在老项目优需要安装jdk1.7运行,便有了这个问题,再次记录下2.首先需要安装对应的jdk,以及环境变量,我这里只展示三者共存的环境变量设置,其余单一的配置环境变量,网上都有就不在此啰嗦了3.用JAVA_H......
  • DevEco Studio:启动和关闭模拟器
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • Qt弹窗,点击非弹窗区域外,自动隐藏弹窗;
    //下面三个函数监听全局的隐藏事件,为了保证客户端不可见的时候日历隐藏boolCPlaybackCalendarWidget::eventFilter(QObject*watched,QEvent*eve){if(eve->type()==QEvent::ApplicationStateChange)//状态改变{if(qApp->a......
  • 【北京迅为】itop-3562机器视觉opencv开发手册使用OpenCV处理图像
              iTOP-3562开发板采用瑞芯微RK3562处理器,主频2.0GHz,采用四核A53+MaliG52架构,主频2GHz,内置1TOPSNPU算力,具有多个嵌入式硬件引擎,以优化高端应用的性能。     【公众号】迅为电子----------------------------------------------------3.1颜色......
  • 2024-10-16 前端图片加载方式优化(webp)
    把上传的图片文件格式转化为webp图片格式。前置条件:图片文件存在阿里云oss。阿里云的对象存储服务(OSS)支持在URL中直接指定图片处理参数,这样可以在不下载原始图片到服务器的情况下,直接由OSS服务端处理图片。假设你有一张存在阿里云的图片链接,那么只需要在该链接的末尾加上?x......
  • Montgomery Curves and Weierstrass Curves
    WeierstrassCurvesWeierstrassCurves形如\(y^2=x^3+Ax+B\)其中\(4A^3+27B^2≠0\),这种形式称为WeierstrassForm。WeierstrassCurves上的运算在椭圆曲线(此处即为WeierstrassCurves)上,可以定义点之间的加法运算,其满足:单位元\(O\)为无穷远点对于曲线上的两点\(P\)和\(Q\)......
  • 【PCIE738-0】基于PCIe总线架构的半高半长2路QSFP28 100G以太网光纤通道适配器
     板卡概述PCIE738-0是一款基于半高半长PCIE总线架构的2路QSFP28100G以太网光纤通道适配器,该产品为半高PCIe卡,适合于半高机箱的服务器或者工作站。板卡采用Xilinx16nmKintexUltraScale+系列FPGAXCKU5P作为主处理器,具有1组32位DDR4SDRAM作为高速数据缓存单元,板卡支持2路QS......
  • 2024.10.16总结
    本文于github博客同步更新。A:打表发现有决策单调性,考虑人类智慧,每次向后跳\(rand\%200\)个点,若更优则继续跳,然后就过了。正解是这样写的:设\(p[i\)]为当前层的最优决策点,把决策按顺序加入,同时更新\(p[i]\)把相同的\(p[i]\)合并成一个点,对这些点维护栈,每加入一个决策......
  • 门罗币之隐形地址
    主页微信公众号:密码应用技术实战博客园首页:https://www.cnblogs.com/informatics/GIT地址:https://github.com/warm3snow简介从2009年比特币的诞生,区块链技术已经发展了十多年,区块链技术的应用也从最初的数字货币扩展到金融、供应链、医疗、物联网等多个领域。区块链技术的......
  • PHP与C#混合用
    故事背景是这样的,有一套项目,服务器端是用C#写的,为了完成某种事情,它需要使用到一个组件,这个组件很小但很重要,很不巧的是,这个这个组件是用PHP语言写的,如果为了使用这个组件而专门搭建一个PHP的环境显得有点高射炮打蚊子(况且还有其他不可预见的阻力)。或许有读者会提出“抗议”:不是PHP......