亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

基于 Louvain 集群對 Anndata 進行子集化

基于 Louvain 集群對 Anndata 進行子集化

當年話下 2023-08-08 16:20:11
我想在集群的基礎上對 anndata 進行子集化,但我無法理解如何做到這一點。我正在運行 scVelo 管道,并且tl.louvain在 louvain 的基礎上運行了對單元進行聚類的函數。我得到了大約 32 個集群,其中集群 2 和 4 是我感興趣的,我必須僅在這些集群上進一步運行管道。(最初我有在 scVelo 中讀取的 loom 文件,所以我現在有了 anndata。)我嘗試使用adata.obs["louvain"]它給了我集群信息,但我需要編寫一個只有 2 個集群的新 anndata 并進一步處理。請幫助了解如何對 andata 進行子集化。非常感謝任何幫助。(因為我是新手,所以很難掌握)
查看完整描述

2 回答

?
SMILET

TA貢獻1796條經驗 獲得超4個贊

如果您的 adata.obs 在運行后有一個我期望的“louvain”列tl.louvain,您可以進行子集化,就好像 adata[adata.obs["louvain"] == "2"] 您想要獲取一個集群并 adata[adata.obs['louvain'].isin(['2', '4'])] 獲取集群 2 和 4 一樣。



查看完整回答
反對 回復 2023-08-08
?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

請隨意使用我為我的工作編寫的這個函數。


import AnnData

import numpy as np


def cluster_sampled(adata: AnnData, clusters: list, n_samples: int) -> AnnData:

    """Sample n_samples randomly from each louvain cluster from the provided clusters


    Parameters

    ----------

    adata

        AnnData object

    clusters

        List of clusters to sample from

    n_samples

        Number of samples to take from each cluster


    Returns

    -------

    AnnData

        Annotated data matrix with sampled cells from the clusters

    """

    l = []

    adata_cluster_sampled = adata[adata.obs["louvain"].isin(clusters), :].copy()

    for k, v in adata_cluster_sampled.obs.groupby("louvain").indices.items():

        l.append(np.random.choice(v, n_samples, replace=False))

    return adata_cluster_sampled[np.concatenate(l)]


查看完整回答
反對 回復 2023-08-08
  • 2 回答
  • 0 關注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號