首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >脚本更新----空间邻域差异分析(针对visium、bin模式的Stereo-seq、HD)

脚本更新----空间邻域差异分析(针对visium、bin模式的Stereo-seq、HD)

原创
作者头像
追风少年i
发布2024-11-25 11:52:17
发布2024-11-25 11:52:17
5200
举报

作者,Evil Genius

有言在先了啊,盗版猖獗的话,就不再创作新内容了,以盗版为主了啊。反正大家也是买盗版,创作做的意义不大。

今日更新脚本,空间邻域差异分析(针对visium、bin模式的Stereo-seq、HD)

我们要实现下面的内容(在visium平台)

第一步,做好单细胞空间联合分析,无论什么方法(cell2location、RCTD为主),并且整理好h5ad数据。

代码语言:javascript
复制
import scanpy as sc
import spatialpy as sp
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 加载空间转录组数据 (Visium数据)
visium_data = sc.read_visium("path_to_visium_data/")

# 预处理数据:标准化、去除低表达基因等
sc.pp.filter_genes(visium_data, min_cells=3)
sc.pp.filter_cells(visium_data, min_genes=200)
sc.pp.normalize_total(visium_data, target_sum=1e4)
sc.pp.log1p(visium_data)

# 加载单细胞数据 (假设是10X数据)
sc_data = sc.read("path_to_single_cell_data/")

# 预处理单细胞数据:标准化、去除低表达基因等
sc.pp.filter_genes(sc_data, min_cells=3)
sc.pp.filter_cells(sc_data, min_genes=200)
sc.pp.normalize_total(sc_data, target_sum=1e4)
sc.pp.log1p(sc_data)

# 对单细胞数据进行PCA降维、聚类
sc.tl.pca(sc_data, svd_solver='arpack')
sc.pp.neighbors(sc_data)
sc.tl.leiden(sc_data)

# 假设sc_data的聚类结果是细胞类型
cell_types = sc_data.obs['leiden']

# 将单细胞的细胞类型信息映射到Visium数据
###cell2location大家自己做
# 假设我们已经有Visium样本的细胞类型信息
visium_data.obs['cell_type'] = np.random.choice(cell_types, size=visium_data.shape[0])  # 这里只是一个示例

第二步,visium的空间共定位分析以及邻域差异分析

代码语言:javascript
复制
# 使用KNN邻域方法计算空间邻域
spatial_neighbors = sp.nn.compute_knn(visium_data, n_neighbors=5)  # 选择合适的邻居数量

# 计算邻域内细胞类型的分布
neighbor_cell_types = visium_data.obs['cell_type'].iloc[spatial_neighbors]

# 计算不同细胞类型之间的邻域差异
# 例如:可以通过计算不同细胞类型的邻域重叠率来量化邻域差异
def compute_neighborhood_overlap(cell_type1, cell_type2, neighbors):
    overlap_count = np.sum((neighbors == cell_type1) | (neighbors == cell_type2), axis=1)
    return overlap_count / len(neighbors)

# 计算不同细胞类型之间的邻域重叠率
overlap_matrix = np.zeros((len(np.unique(cell_types)), len(np.unique(cell_types))))

for i, ct1 in enumerate(np.unique(cell_types)):
    for j, ct2 in enumerate(np.unique(cell_types)):
        overlap_matrix[i, j] = compute_neighborhood_overlap(ct1, ct2, neighbor_cell_types)

# 可视化邻域重叠矩阵
plt.imshow(overlap_matrix, cmap='viridis')
plt.colorbar()
plt.title("Neighborhood Type Overlap")
plt.xlabel("Cell Type")
plt.ylabel("Cell Type")
plt.show()

大家用心画画图,达到如下的效果

生活很好,有你更好

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者,Evil Genius
  • 有言在先了啊,盗版猖獗的话,就不再创作新内容了,以盗版为主了啊。反正大家也是买盗版,创作做的意义不大。
  • 今日更新脚本,空间邻域差异分析(针对visium、bin模式的Stereo-seq、HD)
  • 我们要实现下面的内容(在visium平台)
  • 第一步,做好单细胞空间联合分析,无论什么方法(cell2location、RCTD为主),并且整理好h5ad数据。
  • 第二步,visium的空间共定位分析以及邻域差异分析
  • 大家用心画画图,达到如下的效果
  • 生活很好,有你更好
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档