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

直接看 rstudio里面的 rds 数据 无法看到 expr 表达矩阵的详细数据 ,有什么办法呢

在RStudio里“看不见”expr表达矩阵的常见原因只有两类:

  1. 对象太大,RStudio的Viewer/Environment面板自动截断;
  2. 对象并不是真正的matrix/data.frame,而是嵌在List/S4对象里的slot或元素。
    只要先确认“它到底藏在哪”,再把它拆成真正的矩阵即可。下面给一套“三步排查+两种导出”做法,基本能搞定所有类似情况。

方法一

GSE32967_raw <- readRDS(“K:/download/geo/raw_data/GSE32967_raw.rds”)
expr <- GSE32967_raw$expr
View(expr)

方法2 转成csv


  1. 先搞清楚对象结构
# 把rds读进来
obj <- readRDS("your_file.rds")# 看顶层类型
str(obj, max.level = 2, give.attr = FALSE)# 如果是S4
showMethods(class = class(obj))   # 看有什么提取器
slotNames(obj)                    # 看slot名字# 如果是普通list
names(obj)

90%的情况下expr矩阵要么叫expr、exprs、assay,要么藏在assays()、slot(obj,“assay”)、obj[[“expr”]]里。


  1. 把表达矩阵“抠”出来
    下面给出4句最常用提取模板,按对象类型直接套:

a) 纯list

expr <- obj$expr          # 或 obj[["expr"]]

b) S4对象(ExpressionSet老对象)

library(Biobase)
expr <- Biobase::exprs(obj)

c) SummarizedExperiment / DESeqTransform

library(SummarizedExperiment)
expr <- assay(obj, 1)     # 1可换成"counts","tpm"等名字

d) 自定义大列表,名字不确定

expr <- obj[[ which(sapply(obj, function(x) is.matrix(x) & nrow(x)>5000)) ]]

  1. 确认拿到真正的数值矩阵
class(expr)
dim(expr)
summary(expr[1:5, 1:5])

只要class是matrix/data.frame,且dim出来行是基因、列是样本,就成功了。


  1. 依旧太大、RStudio依旧不显示?
    两种办法绕过Viewer限制:
  1. 直接head+View
View(head(expr, 1000))      # 只看前1000行
  1. 写成csv/txt外部打开
write.csv(expr, file = "expr_matrix.csv", quote = FALSE)
# 或者
data.table::fwrite(data.table::as.data.table(expr), "expr_matrix.tsv", sep = "\t")

写完用Excel/Notepad++/VSCode打开即可。


  1. 一条龙模板(复制即用)
library(SummarizedExperiment)   # 提前装好
obj <- readRDS("xxx.rds")expr <- if("SummarizedExperiment" %in% class(obj)){assay(obj, 1)} else if ("ExpressionSet" %in% class(obj)){Biobase::exprs(obj)} else if (is.list(obj) && "expr" %in% names(obj)){obj$expr} else {stop("请手动str(obj)再决定怎么取")}dim(expr)
write.csv(expr, "expr_matrix.csv", quote = FALSE)

跑完去工作目录下拿csv即可,想怎么看就怎么看。

http://www.dtcms.com/a/390683.html

相关文章:

  • 【示例】通义千问Qwen大模型解析本地pdf文档,转换成markdown格式文档
  • 企业级容器技术Docker 20250919总结
  • 微信小程序-隐藏自定义 tabbar
  • leetcode15.三数之和
  • 强化学习Gym库的常用API
  • ✅ Python微博舆情分析系统 Flask+SnowNLP情感分析 词云可视化 爬虫大数据 爬虫+机器学习+可视化
  • 红队渗透实战
  • 基于MATLAB的NSCT(非下采样轮廓波变换)实现
  • 创建vue3项目,npm install后,运行报错,已解决
  • 设计模式(C++)详解—外观模式(1)
  • pnpm 进阶配置:依赖缓存优化、工作区搭建与镜像管理
  • gitlab:从CentOS 7.9迁移至Ubuntu 24.04.2(版本17.2.2-ee)
  • 有哪些适合初学者的Java项目?
  • 如何开始学习Java编程?
  • 【项目实战 Day3】springboot + vue 苍穹外卖系统(菜品模块 完结)
  • 华为 ai 机考 编程题解答
  • Docker多容器通过卷共享 R 包目录
  • 【保姆级教程】MasterGo MCP + Cursor 一键实现 UI 设计稿还原
  • Unity 性能优化 之 理论基础 (Culling剔除 | Simplization简化 | Batching合批)
  • react+andDesign+vite+ts从零搭建后台管理系统
  • No007:构建生态通道——如何让DeepSeek更贴近生产与生活的真实需求
  • 力扣Hot100--206.反转链表
  • Java 生态监控体系实战:Prometheus+Grafana+SkyWalking 整合全指南(三)
  • 生活琐记(3)
  • 在 Elasticsearch 和 GCP 上的混合搜索和语义重排序
  • 借助Aspose.HTML控件,使用 Python 将 HTML 转换为 DOCX
  • 设计测试用例的万能公式
  • 黑马头条_SpringCloud项目阶段三:HTML文件生成以及素材文章CRUD
  • 精准模拟,实战赋能-比亚迪秦EV整车检测与诊断仿真实训系统
  • 学习路之PHP--生成测试数据:fakerphp的使用