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

在R中读入h5ad文件,并转换为seurat对象

太可恶了要么就报错要么就卡住!!!!/(ㄒoㄒ)/~~

library(Seurat)
library(SeuratDisk)
pbmc10kmono = paste0(path,'/pbmc10k/use_data/rna_mono.h5ad')

1. Round1

# # 方法1:通过h5Seurat中转
# library(SeuratDisk)
# Convert(pbmc10kmono, dest = "h5seurat")
# seurat_obj <- LoadH5Seurat("rna_mono.h5seurat")

报错报错~

2. Round2

# # 方法2:直接用r包读入
# library(zellkonverter)
# mono <- readH5AD(pbmc10kmono, to = "seurat")

也不行,半天也不动

3. Round3 (√)

library(reticulate)
# library(anndata)
ad <- reticulate::import("anndata")
adata <- ad$read_h5ad(pbmc10kmono)

adata
# AnnData object with n_obs × n_vars = 3782 × 13483
#     obs: 'orig.ident', 'n_genes', 'celltypeL0'
#     var: 'features', 'n_cells'

adata$T$X[1:5,1:5]
# 5 x 5 sparse Matrix of class "dgRMatrix"
#            AAACAGCCATCCAGGT-1 AAACCAACACAATGCC-1 AAACCAACAGGAACTG-1
# AL627309.5                  .                  .                  .
# LINC01409                   .                  .                  .
# LINC01128                   .                  .                  .
# LINC00115                   1                  .                  .
# NOC2L                       .                  .                  2
#            AAACCAACATAATCCG-1 AAACCAACATTGTGCA-1
# AL627309.5                  1                  .
# LINC01409                   1                  .
# LINC01128                   .                  .
# LINC00115                   .                  .
# NOC2L                       .                  .

# 细胞和基因的元数据
cell_meta <- as.data.frame(adata$obs)
gene_meta <- as.data.frame(adata$var)
# 创建Seurat对象 
seurat_obj <- Seurat::CreateSeuratObject(
  counts = adata$T$X,   ## 这里需要转置,因为seurat中以cell作为列,gene作为行
  meta.data = cell_meta,
  assay = "RNA"
)
# 添加基因注释(如基因类型)
seurat_obj[["RNA"]]@meta.features <- gene_meta


http://www.kler.cn/a/595438.html

相关文章:

  • 闻所闻尽:穿透声音的寂静,照见生命的本真
  • 一文讲清 C++ CRTP(Curiously Recurring Template Pattern,奇异递归模板模式)
  • 基于Nvidia Jetson Nano边缘计算设备使用TensorRT部署YOLOv8模型实现目标检测推理
  • CHM(ConcurrentHashMap)中的 sizeCtl 的作用与值变化详解
  • 批量删除 PPT 空白幻灯片页面
  • 车载以太网网络测试-20【传输层-DOIP协议-3】
  • C语言复习笔记--数组
  • IPD的分析工具与模型(十一)利用Ansoff矩阵制定产品市场组合,帮助企业确定增
  • 通过《电幻国度》来看机器人的发展
  • OpenCV旋转估计(2)用于自动检测波浪校正类型的函数autoDetectWaveCorrectKind()
  • B2-DPO:开启去中心化物联网(DePIN)的智能革命
  • Python之使用mitmproxy进行本地化网络监听
  • KNN算法
  • python中的元组、字典与集合
  • CUL-CHMLFRP启动器 windows图形化客户端
  • HR人员和组织信息同步AD域服务器实战方法JAVA
  • 基于Neo4j的文物推荐系统
  • MySQL 客户端连不上(1045 错误)原因全解析
  • 爱普生SG2016CAN晶振优势和多领域应用
  • 在Fedora-Workstation-Live-x86_64-41-1.4中使用最新版本firefox和腾讯翻译插件让英文网页显示中文翻译