scanpy1.9.1里的文件在scanpy1.7.2无法读取问题解决

今天遇到很奇怪的问题,就是我用scanpy1.9.1的环境保存的h5ad的文件,在scanpy1.7.2里的环境里发现读取不了,会发生错误

解决办法:保证scanpy1.7.2中的anndata的版本(0.7.6)和scanpy1.9.1中的anndata中的版本(0.8.0)一致即可,我采取的做法是首先卸载scanpy1.9.1中的anndata,然后安装anndata对应的anndata版本即可

但是今天又遇到这么个问题就是说我的环境就是anndata0.7.6的,因为python环境是3.6.10,我还无法将anndata升级到0.8.0,因为python3.6.10支持的最高版本是anndata0.7.8, 那么有什么办能把anndata0.8.0下的h5ad转变成0.7.6环境下可以读取的anndata,其实是有办法的

首先我的base环境是python3.8.8,可以安装anndata0.7.6和anndata0.8.0的两个版本,那么我采取以下的方式,首先在anndata0.8.0的环境中,使用sceasy库将h5ad转换成rds,然后卸载掉base环境中anndata0.8.0,安装anndata 0.7.6,然后使用sceasy库将rds重新转换成h5ad,那么这个新生成的h5ad就是可以用python3.6.10的anndata的0.7.6读取了
在这里插入图片描述
首先在R中安装好sceasy包

devtools::install_github("cellgeni/sceasy")

注意还有reticulate包,但是注意这里的reticulate包的虚拟环境里也需要安装包
在R中,需要安装anndata
打开rstudio,输入

library(reticulate)
py_install("anndata")

最终在该R对应的kernel中输入

library(sceasy)
h5ad_file="/Users/xiaokangyu/Desktop/dataset/heart/adata_clean.h5ad"
#use_condaenv('base')
sceasy::convertFormat(h5ad_file, from="anndata", to="seurat",
                       outFile='heart.rds')

就可以将scanpy中的数据转换成rds,结果如下
在这里插入图片描述注意此时的环境

但是转换的时候,本地显示内存不足,这个转换还是得到服务器做

library(reticulate)
use_condaenv("scDML_test1")
library(sceasy)
library(Seurat)
read_file='/data/wangdongxue/yxk/dataset/heart/heart.rds'
seurat_object=readRDS(read_file)

sceasy::convertFormat(seurat_object, from="seurat", to="anndata",outFile='heart.h5ad')

这样转换就可以了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值