Linux 下用R语言打开hdf5(.h5)文件异常的解决方案

6月10日从GEO数据库下载了作者上传的表达矩阵h5格式文件,需用从中提取出表达矩阵然后重构Seurat分析对象;该exp_matrix.hdf5文件在我的Window系统上,可以通过rhdf5::H5Fopenhdf5r::H5File$new两种方法打开读取文件内容。但是由于文件太大,有6个G,在我24G内存的Windows系统上没办法完全加载出矩阵。于是就把文件上传到服务器集群进行处理,以同样的方式尝试打开exp_matrix.hdf5文件,碰到了以下问题:

  • 1.rhdf5::H5Fopen函数打开error:
data.h5 <- H5Fopen(name = "exp_matrix.hdf5")
Error in H5Fopen(name = "exp_matrix.hdf5",  : 
  HDF5. File accessibility. Unable to open file.
  • 2.hdf5r::H5File$new函数打开error:
hdf5r::H5File$new("exp_matrix.hdf5", mode="r")
Error in H5File.open(filename, mode, file_create_pl, file_access_pl) : 
  HDF5-API Errors:
    error #000: H5F.c in H5Fopen(): line 620: unable to open file
        class: HDF5
        major: File accessibility
        minor: Unable to open file

    error #001: H5VLcallback.c in H5VL_file_open(): line 3501: failed to iterate over available VOL connector plugins
        class: HDF5
        major: Virtual Object Layer
        minor: Iteration failed

    error #002: H5PLpath.c in H5PL__path_table_iterate(): line 578: can't iterate over plugins in plugin path '(null)'
        class: HDF5
        major: Plugin for dynamically loaded library
        minor: Iteration failed

    error #003: H5PLpath.c in H5PL__path_table_iterate_process_path(): line 620: can't open directory: ~/local/Minconda/envs/scRNA/lib/hdf5/plugin
        class: HDF5
        major: Plugin for dynamically loaded library
        minor: Can't open directory or file

    error #004: H5VLcallback.c in H5VL__file_open(): line 3351: open faile

解决方案:编辑Linux用户的配置文件(.bashrc)添加以下两句环境变量:

export HDF5_USE_FILE_LOCKING="FALSE"
export RHDF5_USE_FILE_LOCKING="FALSE" 

然后执行source ~/.bashrc,就可以解决Linux环境下无法读取h5文件的错误了。

Error in H5Fopen(file): Unable to open HDF5 file when using subsetArchRProject to create new arrow files · Issue #248 · GreenleafLab/ArchR (github.com)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值