rds与h5ad的相互转换
之前做过一个 rds 转 h5ad 的教程,现在看来发现有些过于繁琐,且随着时间的发展,也有了更好的方法的出现,所以这里再写一个教程。
新的工具包是 https://github.com/cellgeni/sceasy ,这是一个专注于做各种单细胞文件格式转换的文件,但是作者也并没有写明一个特别完整的参数说明,所以这里我也只能根据自己的使用经验来写一下。
安装可以如作者所述,直接安装即可
conda install -c bioconda r-sceasy
# 或者
devtools::install_github("cellgeni/sceasy")
安装并不复杂,这里会详细讲一下其更为优秀的使用
# 首先是包的载入,只需载入这两行即可,如果你的文件没有 loom的话,那么就不需要载入 loom包
library(sceasy)
library(reticulate)
# 单细胞的 rds 文件与 h5ad 文件之间的互相转换如下即可
sceasy::convertFormat(seurat_object, from="seurat", to="anndata",
outFile='filename.h5ad')
sceasy::convertFormat(h5ad_file, from="anndata", to="seurat",
outFile='filename.rds')
但是有时候也会遇到一些问题,有时候 rds 文件转 h5ad 文件会报错,需要先读入 rds,然后再转换
rds = readRDS('filename.rds')
sceasy::convertFormat(rds, from="seurat", to="anndata",
outFile='filename.h5ad')
第二个问题是,sceasy在进行转换的时候,有时候我们想转的不是 counts 数据,而是我们做完了 SCTransform 之后的 SCT数据,那么我们则需要加上一句
sceasy::convertFormat(rds, from="seurat", to="anndata", main_layer = 'data',
outFile='filename.h5ad')
因为 SCTransform 之后的数据,其主要的数据是在 data 层,而 counts 层则是原始的数据,所以我们需要指定一下。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment