

import scanpy as sc
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.neighbors import NearestNeighbors
# 加载空间转录组数据
adata = sc.read_h5ad('your_spatial_data.h5ad') # 替换为实际数据路径
# 假设数据中包含细胞的空间坐标,通常存储在adata.obsm['spatial']
# 如果空间坐标不在obsm中,请根据实际数据调整代码
# 提取空间坐标信息
spatial_coordinates = adata.obsm['spatial']
# 计算细胞之间的距离
# 使用最近邻算法来计算每个细胞的邻居
nbrs = NearestNeighbors(n_neighbors=6, algorithm='auto').fit(spatial_coordinates)
distances, indices = nbrs.kneighbors(spatial_coordinates)
# `distances` 为每个细胞到其邻居的距离,`indices` 为邻居的索引
# 例如,第0个细胞到其最近邻的距离可以通过 distances[0] 获得
# `indices[0]` 是这个细胞最近邻的索引
# 可视化细胞的邻近关系
# 使用距离矩阵生成热图(例如,显示最近邻的距离)
plt.figure(figsize=(8, 6))
plt.imshow(distances, cmap='viridis', aspect='auto')
plt.colorbar(label='Distance')
plt.title('Cell-Cell Proximity (Distance Matrix)')
plt.show()import scanpy as sc
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics.pairwise import cosine_similarity
# 加载空间转录组数据
adata = sc.read_h5ad('your_spatial_data.h5ad') # 替换为实际数据路径
# 提取基因表达矩阵和空间坐标
gene_expression_matrix = adata.raw.X # 假设基因表达数据存储在adata.raw.X
spatial_coordinates = adata.obsm['spatial']
# 计算基因表达的余弦相似性
# Cosine similarity用于评估细胞之间基因表达模式的相似性
cos_sim = cosine_similarity(gene_expression_matrix)
# 可视化细胞之间的基因表达相似性(余弦相似性矩阵)
plt.figure(figsize=(8, 6))
plt.imshow(cos_sim, cmap='coolwarm', aspect='auto')
plt.colorbar(label='Cosine Similarity')
plt.title('Cosine Similarity of Gene Expression between Cells')
plt.show()
# 进一步分析:基于空间信息进行聚类
# 将细胞根据其基因表达相似性进行聚类,可以使用如K-means聚类
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3) # 假设我们将细胞聚类为3个群体
adata.obs['gene_expression_cluster'] = kmeans.fit_predict(cos_sim)
# 可视化聚类结果,颜色代表不同的基因表达聚类
sc.pl.spatial(adata, color='gene_expression_cluster', title='Spatial Co-expression Clusters')
plt.show()
# 可视化每个聚类的基因表达情况(每个聚类中的细胞基因表达模式)
sc.pl.matrixplot(adata, var_names=adata.var_names[:5], groupby='gene_expression_cluster', use_raw=True)
plt.show()原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。