You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Scanpy中同时对obs中的'pEMT'和'Oxphos'簇做子集化?

在Scanpy中提取多个指定簇的子集化方法

有两种常用方法可以快速提取obs中多个指定簇的细胞,生成新的AnnData对象:

方法一:使用isin()方法(推荐,代码更简洁)

假设你的簇信息存储在adata.obs['cluster']列中(请替换为你实际的列名,比如'cell_type'),直接用列表指定要提取的簇:

# 提取'pEMT'和'Oxphos'簇的细胞子集
adata_subset = adata[adata.obs['cluster'].isin(['pEMT', 'Oxphos']), :]

isin()会检查每个细胞的簇值是否在指定列表内,返回布尔索引用于筛选细胞。

方法二:使用布尔逻辑组合

如果需要更灵活的条件组合,可以用逻辑或(|)连接多个等于判断:

# 用逻辑或筛选多个簇
adata_subset = adata[(adata.obs['cluster'] == 'pEMT') | (adata.obs['cluster'] == 'Oxphos'), :]

注意要给每个条件加上括号,避免运算符优先级导致的错误。

执行完上述代码后,adata_subset就是只包含'pEMT'和Oxphos'簇的新AnnData对象,后续可以正常进行分析操作。

内容的提问来源于stack exchange,提问作者supigen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 00:35:20