常见问题

1. 输入文件的格式是什么样的?

答:SDAS支持SAW count,SAW gef2h5ad,SAW aggr(alpha ver.)的输出文件;同时支持用户按照SDAS输入数据格式描述自行准备的文件。

2. 细胞注释模块有5种算法,Spotlight\cell2location\RCTD\Tangram均需要对应的scRNA-Seq数据,SDAS是否提供,如果不提供,用户应该如何准备?

答:SDAS软件暂时不提供细胞注释的单细胞数据,用户需要按照使用手册中的格式说明来准备h5ad文件。

3. SDAS中的各模块支持scRNA-Seq数据分析吗,如果支持,用户应该如何准备单细胞数据?

答:SDAS中的dataProcess,DEG, geneSetEnrichment, inferCNV,CCI, trajectory,转录因子分析模块均支持scRNA-Seq数据分析,用户按照使用手册准备输入文件(h5ad或rds)即可。

4. 基于SDAS各模块输出结果,进行可视化作图,是否有支持方案?

答:SDAS的每个模块具有独立的环境,且每个环境中安装有jupyter kernel(ipykernel/IRkernel),支持用户直接调用该环境使用Jupyter Notebook等交互式环境画图。

5. 输入文件h5ad的版本问题?

答:未适配Anndata 0.11.0+新格式,读取含None的h5ad时会报错(报错特征:TypeError: Can't implicitly convert non-string objects)。建议用户预处理h5ad写入前清除所有None,以下是参考代码:

import anndata as ad

def remove_none_before_write(adata: ad.AnnData) -> ad.AnnData:
    """递归移除adata中所有None值,适配SDAS"""
    # 处理uns
    for k in list(adata.uns.keys()):
        if adata.uns[k] is None:
            del adata.uns[k]
        elif isinstance(adata.uns[k], dict):
            # 递归清理嵌套dict
            adata.uns[k] = {subk: subv for subk, subv in adata.uns[k].items() if subv is not None}
    # 处理obs、var(含None的列转NaN或删除)
    adata.obs = adata.obs.dropna(axis=1, how='all')  # 全None列删除
    adata.var = adata.var.dropna(axis=1, how='all')
    # 处理layers、obsm、varm等
    for k in list(adata.layers.keys()):
        if adata.layers[k] is None:
            del adata.layers[k]
    return adata

# 使用示例
adata = ad.read_h5ad("your_data.h5ad")
adata_clean = remove_none_before_write(adata)
adata_clean.write_h5ad("data_for_sdas.h5ad")  # 无None,SDAS可正常读取
© 2026 STOmics Tech. All rights reserved.Modified: 2026-05-13 14:58:17

results matching ""

    No results matching ""