当前位置: 首页 > wzjs >正文

手游传奇发布网站999媒体网站推广方法

手游传奇发布网站999,媒体网站推广方法,深圳企业网站建设设计制作方案,网站备案字号上节我们介绍了空间转录组数据分析中常见的细胞邻域分析,CN计算过程中定义是否为细胞邻居的方法有两种,一种是上节我们使用固定K最近邻方法(fixed k-nearest neighbors)定义细胞Neighborhood,今天我们介绍另外一种固定半径范围内(fixed radiu…

上节我们介绍了空间转录组数据分析中常见的细胞邻域分析,CN计算过程中定义是否为细胞邻居的方法有两种,一种是上节我们使用固定K最近邻方法(fixed k-nearest neighbors)定义细胞Neighborhood,今天我们介绍另外一种固定半径范围内(fixed radius)内细胞的方法定义CN的方法。

计算方法
  1. 无监督邻域分析

    • 邻近窗口构建:以每个细胞为中心,计算其一定半径范围(radius)内细胞的物理距离,形成局部窗口。

    • K-means聚类:将所有窗口的细胞类型组成进行聚类,识别出具有相似细胞类型组成的空间区域,即邻域。

    • 富集分析:通过超几何检验(hypergeometric test)评估每个邻域中特定细胞类型的富集程度。公式如下:

       

      图片

    • 其中,N为总细胞数,K为某细胞类型的总数量,n为邻域内细胞数,k为邻域内该细胞类型的数量。通过Benjamini-Hochberg方法校正多重假设检验的p值。

  2. 邻域注释
    根据富集的细胞类型和已知生物学知识(如动脉、内骨膜的位置),为每个聚类赋予生物学意义的名称(如“早期髓系-动脉邻域”)。

fixed radius neighbors

def cell_neighbors(adata, column, radius=20, n_clusters=10):"""基于半径搜索细胞邻域并聚类细胞邻域类型Parameters----------adata : AnnData包含空间转录组数据的对象column : str细胞类型或分组的列名(存储在 `adata.obs` 中)radius : float, default=10空间邻居搜索半径(单位需与坐标一致)n_clusters : int, default=10邻域聚类数量Returns-------adata : AnnData更新后的对象,邻域聚类结果存储在 `adata.obs[f'CNs_{n_clusters}']`"""# 获取空间坐标和细胞类型 one-hot 编码spatial_coords = adata.obsm['spatial']onehot_encoding = pd.get_dummies(adata.obs[column])cluster_cols = adata.obs[column].unique()values = onehot_encoding[cluster_cols].values# Step 1: 使用半径搜索邻居nbrs = NearestNeighbors(radius=radius, metric='euclidean').fit(spatial_coords)distances, indices = nbrs.radius_neighbors(spatial_coords, return_distance=True)# Step 2: 处理邻居索引(按距离排序 + 排除自身)sorted_indices = []for i in range(len(indices)):if len(indices[i]) == 0:sorted_indices.append(np.array([]))continue# 按距离排序并排除自身sorted_order = np.argsort(distances[i])neigh_indices = indices[i][sorted_order]mask = (neigh_indices != i)filtered_indices = neigh_indices[mask]sorted_indices.append(filtered_indices)# Step 3: 计算窗口和(处理稀疏区域)def compute_window_sums(sorted_indices, values):windows = []for idx in range(len(sorted_indices)):neighbors = sorted_indices[idx]if len(neighbors) == 0:# 稀疏区域处理:使用自身类型填充window_sum = values[idx]  # 自身类型else:window_sum = values[neighbors].sum(axis=0)# 归一化为比例分布window_sum_norm = window_sum / (window_sum.sum() + 1e-6)  # 防止零除windows.append(window_sum_norm)return np.array(windows)windows = compute_window_sums(sorted_indices, values)# Step 4: 聚类邻域类型km = MiniBatchKMeans(n_clusters=n_clusters, random_state=0)labels = km.fit_predict(windows)adata.obs[f'CNs_{n_clusters}'] = [f'CN{i}' for i in labels]# 可视化 Fold Changek_centroids = km.cluster_centers_tissue_avgs = values.mean(axis=0)fc = np.log2((k_centroids + 1e-6) / (tissue_avgs + 1e-6))  # 避免零除fc_df = pd.DataFrame(fc, columns=cluster_cols)fc_df.index = [f'CN{i}' for i in range(n_clusters)]sns.set_style("white")g = sns.clustermap(fc_df, vmin=-2, vmax=2, cmap="vlag", row_cluster=False, col_cluster=True, linewidths=0.5, figsize=(6, 6))g.ax_heatmap.tick_params(right=False, bottom=False)library_names = adata.obs['sample'].drop_duplicates()for library in library_names:with rc_context({'figure.figsize': (8, 8)}):sq.pl.spatial_scatter(adata[adata.obs['sample'] == library,:],library_id=library,color=[f'CNs_{n_clusters}'],title=f'{library} CNs',shape=None,size=1,img=True,img_alpha=0.5,use_raw=True,frameon=False)return adata

图片

图片

图片

图片

http://www.dtcms.com/wzjs/781836.html

相关文章:

  • 那个网站做精防手机学生校园网站模板
  • 佛山市建网站做网站费用网站的实施方案
  • 城市建设和房屋管理部门网站商丘网约车都有哪些平台
  • linux 网站服务器搭建网站建设提问
  • 简述建设一个网站的一般过程百度一下网页
  • 做的网站百度找不到了php律师网站源码
  • sns社交网站 有哪些西安app定制开发公司
  • 表格在网站后台是居中可到前台为什么不居中做网站一般怎么收费的
  • php网站开发实训实践总结汽车宣传软文
  • 一小时学做网站北京网站系统开发
  • 广西柳州网站建设价格张家界做网站美工公司
  • 网站机房建设有助于python做网站的好处
  • 太原集团网站建设太平洋在线企业建站系统
  • 网站开发量计算wordpress自定义后台菜单
  • 手机与pc网站同步模板wordpress 换语言包
  • 怎样创建自己公司的网站ftp里找到的index文件查看网站建设中
  • 风格网站建设潍坊网站建设小程序制作
  • 怎么查一个网站是否备案怎么建网站手机版
  • 盐城网站建设官网本地搭建asp网站
  • 怎么做记步数的程序到网站衡阳市城市建设投资有限公司网站
  • 长春网站seo报价网络维护这个工作好吗
  • 济南做网站得多少钱黑龙江省住建厅官网
  • 江苏建设网站公司网页设计与制作论文题目
  • 江宁住房和城乡建设局网站网络解决方案公司
  • 微网站和app的区别网站建设 源代码归属
  • python做网站商城开发简单动画制作软件
  • 网站上如何做跳转页面百度seo推广怎么做
  • 广州网站设计易企建站你那个没封的网站怎么做啊
  • 芜湖做网站福建建设执业资格官网
  • 山东济宁省建设厅官方网站北京网站优化公司哪家好