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

运行SpatialFeaturePlot()时出现非数值参数二元运算符错误求助

解决Seurat SpatialFeaturePlot报错"non-numeric argument to binary operator"

针对你使用Seurat分析10x FFPE黑色素瘤数据集时,运行SpatialFeaturePlot绘制nFeature_Spatial出现的报错,可按以下步骤排查解决:

  • 检查元数据列类型
    直接查看nFeature_Spatial的类型与有效性:

    # 查看类型
    class(melanoma@meta.data$nFeature_Spatial)
    # 检查是否存在非数值或NA值
    table(is.na(melanoma@meta.data$nFeature_Spatial))
    table(sapply(melanoma@meta.data$nFeature_Spatial, is.numeric))
    

    如果发现存在非数值项,可手动重新计算该列:

    melanoma$nFeature_Spatial <- colSums(melanoma@assays$Spatial@counts > 0)
    
  • 移除to.upper=TRUE参数重新加载数据
    你加载数据时使用了to.upper=TRUE,该参数会将基因名转为大写,但可能意外影响元数据的处理逻辑。尝试去掉该参数重新加载:

    melanoma <- Load10X_Spatial(data.dir="[insert directory]",
                filename="CytAssist_FFPE_Human_Skin_Melanoma_filtered_feature_bc_matrix.h5",
                assay="Spatial",
                slice="slice1",
                filter.matrix=TRUE)
    
  • 更新Seurat版本
    旧版本Seurat对FFPE空间数据的兼容性可能存在问题,建议更新至最新稳定版:

    install.packages("Seurat")
    # 若需开发版:
    # devtools::install_github("satijalab/seurat")
    
  • 检查空间坐标的数值类型
    报错也可能源于切片的空间坐标存在非数值项,验证坐标类型:

    str(melanoma@images$slice1@coordinates)
    

    确保row和col列均为numeric或integer类型,若异常可重新导入空间图像文件。

完成上述步骤后,重新运行SpatialFeaturePlot(melanoma, features = "nFeature_Spatial")即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 04:06:27