当前位置: 首页 > news >正文

GEO单细胞数据建立Seurat对象全过程与错误修复示例

进行单细胞转录组分析,有时候用到公共数据集,尤其是从GEO下载的10X数据,很多研究者常常会遇到一个令人头疼的问题——数据明明能读入,却无法正常创建Seurat对象。本文通过一个真实案例,带大家一起排查并解决这一问题。

这次遇到的问题发生在对数据集GSM533785HC2”进行分析时。和往常一样,首先加载Seurat包,然后使用CreateSeuratObject()函数创建Seurat对象:

library(Seurat)
SeuratObject =  CreateSeuratObject(counts = Read10X('GSM533785HC2',gene.column = 2),project = 'GSM533785HC2', min.cells = 3,min.features = 200)

结果报错Error: No feature overlap between existing object and new layer data.

图片1

但是有运行的一些信息

10X data contains more than one type and is being returned as a list containing matrices of each type.Warning: Feature names cannot have underscores ('_'), replacing with dashes ('-')

说明数据已经能读取,但是并不能建立seruat对象,查看matrix矩阵信息与features信息、barcodes细胞数据是否一致,细胞数量,基因数量都对应上了,matrix第一列基因,第二列细胞,也都对应上了,到底哪里出了问题?

图片2

图片3

图片4

经过查看features文件,在文件末尾发现基因类型不一样,正常情况下都是Gene Expression,多出了Antibody Capture.

图片5

既然前面发现了数据能读取,那么先使用Read10X读取文件

图片6

查看一下counts,发现counts是一个list,并不是创建seurat对象的矩阵文件,当中有Gene Expression和Antibody Capture两个矩阵,问题就是这里了。

图片7

图片8

那么接下来从counts中提取Gene Expression矩阵进行创建即可

SeuratObject =  CreateSeuratObject(counts = counts$`Gene Expression`,project = 'GSM533785HC2', min.cells = 3,min.features = 200)

运行结果没问题,并且能正常的NormalizeData。

图片9

从这个案例可以看出,Seurat读取10X数据时会自动识别不同类型的数据层,如果数据中既包含RNA表达量,又包含抗体捕获信号或其他组学类型,就会返回一个list结构而不是单一矩阵。若不加注意直接传入CreateSeuratObject,就会触发“feature不匹配”的报错。

因此,在处理公共数据或多模态数据时,建议在创建对象之前,始终先用str()或names()查看Read10X()的返回结构,明确其中包含哪些数据类型,再提取合适的那一部分用于构建Seurat对象。 

下载GEO或ArrayExpress中的单细胞数据时都会遇到类似困扰。错误信息中的“feature overlap”通常意味着输入数据结构与Seurat期望的矩阵格式不符,当Read10X()输出为list时,一定要注意手动提取Gene Expression矩阵。

 

 

 

http://www.jsqmd.com/news/37327/

相关文章:

  • 罗克韦尔PLC靠CCLKIE转EtherNet/IP网关,实时驭动三菱FX5U——输油泵站通讯范本
  • 银河麒麟高级服务器操作系统V10SP2(全X86/ARM架构)【系统出现大量僵尸进程导致systemctl命令执行报错】问题解决方法
  • 2025年均质乳化机厂家权威推荐榜单:高压均质乳化机/釜底式乳化/剪切分散乳化机源头厂家精选
  • 阿里巴巴 AI Coding 分享会 —— Qoder Together 广州站来啦!
  • ElasticSearch利用自定义normalizer实现keyword字段忽略大小写搜索
  • appium安装使用
  • 转接:阿朱的管理软件开发评论
  • Claude交流
  • 每天原地跑步40分钟能减肥吗
  • 2025基于ITIL流程的ITSM平台选型指南:选对工具,让ITIL价值真正落地
  • Ash Authentication令牌撤销逻辑漏洞分析
  • jenkins修改root账号执行
  • 浅谈线段树及其应用
  • 网络安全审计技术原理与应用 - 教程
  • 在CentOS 7系统中彻底移除MongoDB数据库的步骤
  • 为什么越来越多软件开发极速版?
  • 2025年河北数据标注公司权威推荐榜单:数字内容制作/数据服务/数据服务源头公司精选
  • 2025年阜阳民事纠纷律师十大权威排名:专业选择指南与口碑解析
  • 2025年阜阳民事纠纷律师口碑推荐榜
  • 完整教程:网上商城|基于SprinBoot+vue的分布式架构网上商城系统(源码+数据库+文档)
  • 2025年环氧地坪施工方案优质厂家权威推荐榜单:环氧地坪施工/环氧地坪工程/环氧耐磨地坪源头厂家精选
  • 逆向基础--C++ 存储类 (04)
  • 题解:P10136 [USACO24JAN] Cowlendar S
  • WinForm中C#扫描枪功能实现(含USB/串口方案)
  • 类方法和静态方法
  • 实用指南:新手上手:基于Rokid CXR-M和CXR-S SDK构建简易翻译助手
  • 2025年新疆租车公司权威推荐榜单:新疆自驾游租车/新疆租皮卡车/新疆租通勤班车服务公司精选
  • 基于C#和NModbus4库实现的Modbus RTU串口通信
  • 学习如何创建 Mono 实例
  • go_micro框架的安装和使用 - 详解