单细胞/pseudobulk差异分析
用途与运行方式
1. 单细胞水平差异分析(无生物学重复)
支持t-test
、wilcoxon
、MAST
场景一:指定类别1与类别2差异分析
SDAS DEG -i st.h5ad -o outdir --group_key leiden --de_method wilcoxon \ --ident1 1 --ident2 2 \ --fdr 0.05 --log2fc 1
场景二:每个类别与其余类别分别做差异分析
SDAS DEG -i st.h5ad -o outdir --group_key leiden --de_method wilcoxon \ --fdr 0.05 --log2fc 1
场景三:对obs的某列做子集后再差异分析
SDAS DEG -i st.h5ad -o outdir --group_key leiden --de_method wilcoxon \ --ident1 1 --ident2 2 \ --fdr 0.05 --log2fc 1 \ --subset_key cell_type --subset_values B
2. pseudobulk差异分析(有生物学重复)
推荐DESeq2
、edgeR
(pseudobulk分析),需指定--sample_key
,且每组样本数需满足方法要求(DESeq2≥3,edgeR≥2)
场景一:两组样本直接差异分析
SDAS DEG -i st.h5ad -o outdir --group_key sampleID --de_method DESeq2 \ --ident1 Tumor --ident2 Normal \ --fdr 0.05 --log2fc 1 \ --sample_key sampleID
场景二:子集后做pseudobulk差异分析
SDAS DEG -i st.h5ad -o outdir --group_key sampleID --de_method DESeq2 \ --ident1 Tumor --ident2 Normal \ --fdr 0.05 --log2fc 1 \ --sample_key sampleID \ --subset_key cell_type --subset_values B
输入参数说明
DEG参数 | 是否必须 | 默认值 | 描述 |
---|---|---|---|
-i / --input | 是 | Stereo-seq h5ad,要求原始矩阵 | |
-o / --output | 是 | 分析结果存放路径 | |
--de_method | 是 | 指定差异分析方法:{t-test,wilcoxon,MAST,DESeq2,edgeR} | |
--group_key | 是 | 需要进行差异分析的对象所在的obs名称 | |
--ident1 | 否 | 用于分析差异表达基因的对象,类似处理组,不写则按1-vs-rest方式逐个输出 | |
--ident2 | 否 | 用于做对照的对象,类似对照组,不写则将剩余元素当作对照,类似1-vs-rest | |
--sample_key | 否 | 存放样本信息的obs名称,使用DESeq2或edgeR时进行pseudobulk差异分析时必须指定且必须存在生物学重复样本,使用DESeq2时必须有>=3个生物学重复,使用edgeR时必须有>=2个生物学重复 | |
--subset_key | 否 | 需要提取的值所属的分组列名称 | |
--subset_values | 否 | 需要提取的值,存在多个时用','分隔 | |
--layer | 否 | 指定表达矩阵,不指定时用adata.raw.X或adata.X | |
--gene_symbol_key | 否 | real_gene_name | 指定genename所在列,默认用obs.real_gene_name |
--fdr | 否 | 0.05 | Padj(FDR)的阈值,用于筛选显著差异基因 |
--log2fc | 否 | 1 | log2FC的绝对值阈值,用于筛选显著差异基因 |
--genelist | 否 | 5 | 在图中标出感兴趣的基因,多个基因可用','分隔,默认用显著上调和下调各5个基因 |
--add_label | 否 | 对h5ad的obs增加额外的标签 | |
--min_gene | 否 | 0 | 一个bin/cell允许的最少基因数 |
--max_gene | 否 | 一个bin/cell允许的最多基因数 | |
--min_cell | 否 | 0 | 某个基因最少存在于多少个bin/cell中 |
输出结果展示
结果文件 | 描述 |
---|---|
de_{method}.{group_key}.{ident1}-vs-{ident2}.raw.csv |
软件原始的输出结果 |
de_{method}.{group_key}.{ident1}-vs-{ident2}.all.csv |
从原始结果中提取出geneID、log2FC、Pvalue、FDR等信息的结果 |
de_{method}.{group_key}.{ident1}-vs-{ident2}.sig_filtered.csv |
根据log2FC和Pvalue过滤后的显著差异结果 |
de_{method}.{group_key}.{ident1}-vs-{ident2}.png/pdf |
png或pdf格式的火山图 |
- raw文件格式示例:
de_{method}.{group_key}.{ident1}-vs-{ident2}.raw.csv
这个文件是差异分析软件生成的分析结果,里面可能包含除了基因名、差异倍数、Pvalue、adjusted Pvalue(FDR)等信息外的其他信息。
names | scores | logfoldchanges | pvals | pvals_adj |
---|---|---|---|---|
MTATP6P1 | 16.74336 | 1.3794351 | 1.3877341418899603e-42 | 2.2785333033340524e-39 |
AGR2 | 13.671169 | 1.7758344 | 1.419568544127444e-32 | 1.1147316293689464e-29 |
CLDN4 | 13.663365 | 1.9820584 | 1.9626883546881656e-34 | 1.6880054463820458e-31 |
... | ... | ... | ... | ... |
- all/sig_filtered文件格式示例:
de_{method}.{group_key}.{ident1}-vs-{ident2}.all.csv
文件是从差异分析软件生成的分析结果中提取了基因名、差异倍数、Pvalue、adjusted Pvalue(FDR)重新统一命名后的结果文件,de_{method}.{group_key}.{ident1}-vs-{ident2}.sig_filtered.csv
文件是根据log2FC和FDR阈值进行筛选后得到的显著差异基因列表。
gene | log2FC | pvalue | FDR |
---|---|---|---|
MTATP6P1 | 1.3794351 | 1.3877341418899603e-42 | 2.2785333033340524e-39 |
AGR2 | 1.7758344 | 1.419568544127444e-32 | 1.1147316293689464e-29 |
CLDN4 | 1.9820584 | 1.9626883546881656e-34 | 1.6880054463820458e-31 |
... | ... | ... | ... |
- 火山图结果示例:
de_{method}.{group_key}.{ident1}-vs-{ident2}.png/pdf
图中红色的点表示同时达到log2FC和FDR筛选阈值的显著差异基因,蓝色的点表示达到FDR筛选条件但没达到log2FC条件的基因,绿色的点表示达到log2FC筛选条件但没达到FDR条件的基因,同时,默认会在图中标出差异倍数最高和最低的5个基因,如果需要在图中标注指定的基因,可以通过genelist参数进行指定(例如, --genelist geneA,geneB,geneC)。

结果解读说明
- 基因名唯一化
- 差异分析前会自动对基因名进行
make_unique
,所有输出和作图均使用唯一化后的基因名。
- 差异分析前会自动对基因名进行
细胞和基因过滤
- 支持通过
--min_gene
、--max_gene
、--min_cell
等参数对细胞和基因进行过滤。若h5ad已过滤,可不再设置。
- 支持通过
调参建议
- 超过200k的bin/cell数据量时MAST无法成功运行,这种情况下可以通过设置更严格的过滤参数(
min_gene
和min_cell
)减少bin/cell的数量再进行分析。