anndata2ri
和 Seurat-Disk
在转换 h5ad 和 SeuratObj 时总有奇怪的问题(anndata2ri
尚可用用,Seurat-Disk
基本废物)。
这次使用 diopy
+ dior
简单又好用。
配置
python: pip install diopy
R: devtools::install_github('JiekaiLab/dior')
转换数据
Scanpy -> Seurat
Python:
# Transfer h5ad to Seurat Obj
import numpy as np
import pandas as pd
import scanpy as sc
import diopy
# Load data
adata = sc.read_h5ad("path/to/your/data.h5ad")
# Export
diopy.output.write_h5(adata,
file = 'data.h5',
save_X=False)
R:
library(Seurat)
library(dior)
data <- read_h5(file = "data.h5",
assay.name = 'RNA',
target.object = 'seurat')
# Transfer Success
saveRDS(data, "data.rds")
Seurat -> Scanpy
R:
# Transfer Seurat Obj to h5ad
library(Seurat)
library(dior)
data <- readRDS("path/to/your/data.rds")
data <- write_h5(data,
file = "data.h5",
object.type = 'seurat',
assay.name = 'RNA',
save.graphs = TRUE,
save.scale=FALSE)
Python:
import numpy as np
import pandas as pd
import scanpy as sc
import diopy
import h5py
# Transfer Success
h5 = h5py.File('data.h5', 'r')
adata = diopy.input.h5_to_adata(h5 = h5, assay_name='RNA')
h5.close()
adata.write_h5ad("data.h5ad")