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

CellCharter | 入门了解

Background — cellcharter

内容来源于以上链接,下面大多是原教程的翻译,稍加自己的思考。

这是第一期,后面会有第二期:详细教程

一、背景

空间聚类(Spatial Clustering)(或空间域识别,spatial domain identification)能确定以这些群体的特定混合为特征的细胞生态位(cellular niches)。它根据细胞的内在特征(也可以叫做分子特征,例如protein或 mRNA  expression)以及组织中邻近细胞(neighboring cells)的特征,将细胞分配到不同的cluster中。

CellCharter 能够自动identify spatial domains,并提供一套用于cluster characterization和comparision的方法。

二、功能


1、identify多个样本的niches:通过结合 scVI 和 scArches 的优势,CellCharter 能够同时为多个样本识别niche,即便存在batch effects也不例外。
2、Scalability:CellCharter 能够处理包含millions of cells和thousands of features的大型数据集。在 GPU 上运行它的可能性使其速度更快。
3、Flexibility:CellCharter 可用于不同类型的空间组学数据,如空间转录组学、蛋白质组学、表观基因组学和多组学数据。唯一的区别在于用于dimensionality reduction 和 batch effect removal的方法。
        1)Spatial transcriptomics:CellCharter 已在采用零膨胀负二项分布的 scVI 上进行了测试。
        2)Spatial proteomics:CellCharter 已在 scArches 的一个版本上进行了测试,该版本经过修改,使用均方误差损失代替默认的负二项损失。
        3)Spatial epigenomics:CellCharter 已在采用泊松分布的 scVI 上进行了测试。
        4)Spatial multiomics:可以使用诸如 MultiVI,或者使用来自不同模型结果的拼接。
4、最佳域数量候选:CellCharter 提供了一种寻找多个最佳域数量候选的方法(best candidates),该方法基于特定数量的domain在多次运行中的稳定性。
5、域特征分析:CellCharter 提供了一套用于 characterize 和 compare spatial domains 的工具,例如domain proportion、cell type enrichment、(differential)neighborhood enrichment、domain shape characterization等。
从 CellCharter 0.3.0 版本开始,我们将高斯混合模型(GMM)的实现从PyCave(已不再维护)迁移到了TorchGMM,这是 CSO 团队维护的 PyCave 的一个分支。这一变化使我们能够拥有一个更稳定且持续维护的 GMM 实现,该实现与最新版本的 PyTorch 兼容。

三、Getting Started

三个链接:

项目总位置:https://cellcharter.readthedocs.io/

  • API documentation.

  • Tutorials

四、Installation

1、创建 conda 或 pyenv 环境
2、安装 Python >= 3.8 和 PyTorch >= 1.12.0。如果计划使用 GPU,请确保先点这个链接Get Started并安装正确版本的 PyTorch。
3、根据你计划分析的数据类型,安装用于dimensionality reduction和batch effect removal的库:
        1)scVI 适用于空间转录组学和 / 或表观基因组学数据,例如 10x Visium 和 Xenium、Nanostring CosMx、Vizgen MERSCOPE、Stereo-seq、DBiT-seq、MERFISH 和 seqFISH 数据。
        2)scArches 的 TRVAE 模型的修改版本适用于空间蛋白质组学数据,例如 Akoya CODEX、Lunaphore COMET、CyCIF、IMC 和 MIBI-TOF 数据。
4、使用 pip 安装 CellCharter:

pip install cellcharter

我们建议使用mamba来安装依赖项。安装依赖项的最新版本(特别是scvi-toolsspatialdata)可能会导致依赖冲突。不过,这应该不是问题,因为 CellCharter 不会使用任何不匹配的功能。

在此我们提供一个旨在分析空间转录组学数据(因此需要安装scvi-tools)的安装示例。该示例基于带有 NVIDIA A100 GPU 的 Linux CentOS 7 系统。

conda create -n cellcharter-env -c conda-forge python mamba
conda activate cellcharter-env
mamba install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia
pip install scvi-tools
pip install cellcharter

注意:不同的系统可能需要不同的命令来安装 PyTorch 和 JAX。有关更多详细信息,请参考它们各自的文档。

五、Graph/Tools/Plotting

这是一个生物信息学Python包 cellcharter 的API文档页面,专门展示图形分析(Graph)相关的功能模块。

当前页面功能

显示的是Graph(图形分析)模块,包含以下主要函数:

空间邻域分析:

  • gr.aggregate_neighbors - 聚合每个neighborhood layers的features并将其连接
  • gr.connected_components - 计算spatial graph的connected components

差异分析:

  • gr.diff_nhood_enrichment - 不同条件间的差异邻域富集
  • gr.enrichment - 计算标签在组中的富集程度
  • gr.nhood_enrichment - 邻域富集分析

图形处理:

  • gr.remove_long_links - 移除距离过大的细胞间连接
  • gr.remove_intra_cluster_links - 移除同一cluster内的细胞连接

Tools模块 (工具模块)

1. 聚类分析工具

  • tl.cluster - 基于CellCharter邻域聚合特征进行cell或spot聚类
  • tl.clusterAutoK - 自动识别最佳聚类数量的候选值
  • tl.TRVAE - 适用于图像蛋白质组学数据的scArches trVAE模型

2. 拓扑形态分析

这是cellcharter的核心创新功能,用于量化细胞群体的空间形态特征:

  • tl.boundaries - 计算细胞集合的拓扑边界
  • tl.curl - 计算边界的卷曲度(curl score)
  • tl.elongation - 计算边界的伸长度
  • tl.linearity - 计算边界的线性度
  • tl.purity - 计算边界的纯度

Plotting模块 (可视化模块)

1. 聚类质量评估

  • pl.autok_stability - 绘制聚类稳定性图表
  • pl.boundaries - 可视化cluster边界

2. 富集分析可视化

  • pl.enrichment - 绘制标签在组中富集程度的点图
  • pl.nhood_enrichment - 邻域富集分析的可视化(改进版squidpy功能)
  • pl.diff_nhood_enrichment - 不同条件间邻域富集差异的可视化

3. 比例和形态分析

  • pl.proportion - 绘制不同键值的比例图
  • pl.shape_metrics - 两种条件间形状指标的箱线图对比

http://www.xdnf.cn/news/18937.html

相关文章:

  • Linux 服务器故障全解析:常见问题及处理方法大全
  • imx6ull-驱动开发篇44——Linux I2C 驱动实验
  • PP工单状态JEST表
  • 浅聊达梦数据库物理热备的概念及原理
  • Ubuntu 切换 SOCKS5代理 和 HTTP 代理并下载 Hugging Face 模型
  • 三方相机问题分析八:【返帧异常导致性能卡顿】Snapchat后置使用特效预览出现卡顿
  • OpenTelemetry 在 Spring Boot 项目中的3种集成方式
  • 互联网大厂Java面试深度解析:从基础到微服务云原生的全场景模拟
  • 嵌入式linux相机(1)
  • CPU、IO、网络与内核参数调优
  • 【目标检测】论文阅读5
  • 6.8 学习ui组件方法和Element Plus介绍
  • 【C++】类型系统:内置类型与自定义类型的对比
  • FlashAttention算法原理
  • 元宇宙与医疗健康:重构诊疗体验与健康管理模式
  • 【开题答辩全过程】以 微信小程序的老年活动中心为例,包含答辩的问题和答案
  • LabVIEW 音频信号处理
  • 火焰传感器讲解
  • laravel学习并连接mysql数据库
  • 煤矸石检测数据集VOC+YOLO格式3090张2类别
  • Python爬虫获取1688商品列表与图片信息
  • AGDO-BP+NSGAII梯度下降优化算法优化BP神经网络+NSGAII多目标优化算法,三目标和四目标案例
  • 【Oracle篇】伪列之ROWID:行数据的物理地址(基于物理地址对行数据最快速度的查询、更新、删除)(第四篇,总共六篇)
  • Python 前后端框架实战:从选型到搭建简易全栈应用
  • 使用MP4视频格式链接地址的自适应视频弹窗实现方案HTML代码
  • 共享云服务器替代传统电脑做三维设计会卡顿吗
  • 移远 × 高通:从开源生态到场景验证,共筑端侧AI新生态
  • 电脑开机显示器不亮
  • 私域电商新范式:开源AI智能名片链动2+1模式S2B2C商城小程序赋能传统行业流量转化
  • electron离线开发核心环境变量npm_config_cache