You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

加载GSE92332单细胞数据时遇ValueError:文件扩展名问题

解决Scanpy加载GSE单细胞MTX数据集的ValueError问题

问题根源

你的错误提示里出现了mtx.gv文件,说明Scanpy的通用读取函数sc.read在扫描文件夹时误识别了无关文件,或者文件夹内的文件结构/命名不符合它的预期。另外,你用错了读取函数——针对10X标准输出的matrix.mtx.gz/barcodes.tsv.gz/genes.tsv.gz这类文件,应该用Scanpy专门的sc.read_10x_mtx函数,而非通用的sc.read。

解决方案

1. 先确认文件状态

  • 修正文件名:确保你的基因文件是genes.tsv.gz(你写的genes.tsv.tz应该是下载/解压时的笔误,需修正为正确的.gz后缀)
  • 清理文件夹:删除目标文件夹内的无关文件(比如错误提示里的mtx.gv、其他样本压缩包、临时文件等),只保留三个核心文件:
    • matrix.mtx.gz
    • barcodes.tsv.gz
    • genes.tsv.gz

2. 使用正确的加载代码

替换你原来的代码为以下内容:

import scanpy as sc

# 直接传入包含三个核心文件的文件夹路径
adata = sc.read_10x_mtx(
    "/Users/---/desktop/single-cell-tutorial/latest_notebook/GSE92332_RAW",
    var_names='gene_symbols',  # 可选:用基因名作为变量名,若要使用Ensembl ID则改为'gene_ids'
    cache=True
)

# 以下两步按需执行(一般情况下不需要转置,稀疏矩阵也无需转为array)
# adata = adata.transpose()
# adata.X = adata.X.toarray()

额外说明

  • sc.read_10x_mtx会自动匹配文件夹内的三个标准文件,无需手动指定单个文件路径,也不会误识别无关文件
  • 保留稀疏矩阵格式(adata.X默认是稀疏矩阵)能大幅节省内存,只有当后续分析必须使用密集矩阵时,再执行adata.X = adata.X.toarray()

内容的提问来源于stack exchange,提问作者CeDeR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 06:12:54