游戏百科

Python单细胞分析-去除和未去除双细胞的结果对比

我们之前的分析计算了双细胞,但在umap进行降维的时候并没有将其纳入考虑范围之内,因此今天我们将双细胞剔除,重新看一下不

我们之前的分析计算了双细胞,但在umap进行降维的时候并没有将其纳入考虑范围之内,因此今天我们将双细胞剔除,重新看一下不同参数的聚类变换。

首先回到寻找特征基因这一步:

我们先过滤掉双细胞:

adata = adata[adata.obs['scDblFinder_class'] == 'singlet', :]

然后进行偏差筛选特征基因:

%%Rlibrary(scry)

ro.globalenv["adata"] = adata

%%Rsce = devianceFeatureSelection(adata, assay="X"

binomial_deviance = ro.r("rowData(sce)$binomial_deviance").T

idx = binomial_deviance.argsort()[-3000:]mask = np.zeros(adata.var_names.shape, dtype=bool)mask[idx] = Trueadata.var["highly_deviant"] = maskadata.var["binomial_deviance"] = binomial_deviance

由于之前我们已经比对过三种特征基因的筛选方法以及结果,因此这里我们主要以基于偏差筛选出的3000个基因为主。所以我们也不进行平均值以及高变的计算。

而后我们继续降维分析

adata.X = adata.layers["scran_normalization"]

首先是PCA降维:

adata.var["highly_variable"] = adata.var["highly_deviant"]sc.pp.pca(adata, svd_solver="arpack", use_highly_variable=True)

然后umap降维

sc.pp.neighbors(adata, n_pcs=30)

sc.tl.umap(adata)

调用leidon算法:

sc.tl.leiden(adata, key_added="leiden_res0_25", resolution=0.25)sc.tl.leiden(adata, key_added="leiden_res0_5", resolution=0.5)sc.tl.leiden(adata, key_added="leiden_res1", resolution=1.0)

可视化:

sc.pl.umap(    adata,    color=["leiden_res0_25", "leiden_res0_5", "leiden_res1"],    legend_loc="on data",)

去除单细胞后的umap图

我们再对比一下之前没有去除双细胞的图像:

未去除双细胞的umap图

可以看到,没有去除的有更多的游丝,细胞也没有办法完全分开,质量较差。

基于这个文件,在接下来的分享中,我们将对细胞亚群进行注释,并继续后面的分析。当然,res=0.25的情况下不一定适合初步的注释,这在后面会重新讨论。