多样本单细胞分析时高变基因的选择途径
目 标
单细胞分析目的和数据特征决定了分析的策略,数据分析选择高变基因而不是使用全部基因,为了达到以下几个主要目标:
-
提高信噪比
单细胞数据中,很多基因的表达水平可能非常低,或者在大多数细胞中表达变化不大。这些低表达或低变异性的基因可能会引入噪声,干扰后续的数据分析。通过选择高变基因,可以专注于那些在细胞间表达差异显著的基因,从而提高数据分析的信噪比。 -
突出生物学差异
高变基因往往与细胞的功能状态、身份或它们所处的生物学过程密切相关。选择这些基因有助于揭示细胞间的生物学差异,而不是被大量表达水平相似的基因所掩盖。 -
降低计算复杂性
使用全部基因进行分析会大大增加计算的复杂性和所需的计算资源。单细胞数据集通常包含成千上万的基因,而实际对细胞分类和功能分析有用的基因数量可能只是其中的一部分。通过选择高变基因,可以显著减少需要处理的数据量,从而加快计算速度并降低计算成本。
途 径
寻找高变基因的方法不少,比如基于方差计算的离散度来筛选,不同方法之间寻找到的高变基因肯定会有差别,这意味着可能会造成下游分析的误差。关于方法网上有人分享过,这里就不做讨论了,说一说萦绕心里的另一个问题,多样本分析时,应该如何选择高变基因,每个样本单独选择还是合并后一起寻找?
合并寻找
-
优点:
可以提高统计能力,识别出在多个样本中普遍重要的高变基因。
有助于发现跨样本共有的细胞类型或生物学过程。
减少了重复分析的工作量,提高了分析效率。 -
缺点:
可能会掩盖样本间的细微差异。
如果样本间存在技术偏差或批次效应,可能会影响高变基因的识别。
需要进行更复杂的数据整合和批次校正步骤。
import scanpy as sc
sc.pp.highly_variable_genes(adata, min_disp=0.5, max_disp=inf, min_mean=0.0125, max_mean=3,flavor="seurat_v3")
scanpy
选择高变基因可以直接设定绝对数量或者根据阈值来确定基因,即设定n_top_genes
参数或者min_disp
、max_disp
、min_mean
、max_mean
参数。后者为启发式的方法具有数据敏感性,注意由阈值选择出来的高变基因可能会出现数量较少代表性不好的情况。
单独寻找
-
优点:
可以针对每个样本的独特生物学特性识别出特定的高变基因。
有助于发现样本特有的细胞类型或状态。
可以更精确地捕捉到样本间的异质性。 -
缺点:
如果样本量较少,可能会错过一些在更大样本集中才会显现的高变基因。
分别分析可能会增加计算时间和工作量。
需要对每个样本进行标准化,以确保结果的可比性。
adata.var['highly_variable'] = False
for sname in adata.obs['sample'].unique():
adata_tmp = adata[adata.obs['sample'].isin([sname]), :]
sc.pp.highly_variable_genes(adata_tmp, min_disp=0.5, max_disp=inf, min_mean=0.0125, max_mean=3)
hvg_list = list(adata_tmp.var_names[adata_tmp.var['highly_variable']])
adata.var.loc[hvg_list, 'highly_variable'] = True
高变基因的选择方式肯定会对后续的分析产生影响,但影响有多大却很难一语而论。也许大部分情况下影响并不大,毕竟条条大路通罗马;也许根据实际情况选择一个好的方式,可以得到更符合逻辑的结果。
共有 0 条评论