Linux 下基于R语言打开hdf5(.h5)文件异常的处理方法

简介: 本文分享了如何在 Linux 中关闭 hdf5 文件锁定,让rhdf5 能够调用 HDF5库解析 h5文件的处理方法,以供参考

Linux 平台使用无法通过R语言的 rhdf5::H5Fopenhdf5r::H5File$new打开H5格式文件,抛出异常“HDF5. File accessibility. Unable to open file.” 参考 https://github.com/GreenleafLab/ArchR/issues/248?spm=a2c6h.13046898.0.0.5ae16ffa2qPYS6 完成Debug 过程记录:

1、异常 INFO

  • 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
    

2、处理策略

引发该异常的原因是系统默认打开了使用HDF5库时启用文件锁定。解决方案:编辑Linux 用户的配置文件(.bashrc)添加以下两句环境变量:

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

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

Reference

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

目录
相关文章
|
9月前
|
Linux 开发工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
|
11月前
|
数据可视化 Ubuntu 数据挖掘
linux中使用R语言
R语言是一种专用于统计计算和数据分析的编程语言,以其强大的数据处理能力和丰富的可视化功能著称。在Linux中安装R非常简单,通过`sudo apt install r-base`即可完成。R支持基本数据分析和复杂的数据可视化,如使用ggplot2包绘制精美图形。此外,R还能生成甘特图等项目管理工具,帮助清晰展示项目进度。无论是数据处理还是可视化,R都表现出色,适合各种数据分析任务。
609 3
|
7月前
|
存储 数据管理 Linux
区分Linux中.tar文件与.tar.gz文件的不同。
总之,".tar"文件提供了一种方便的文件整理方式,其归档但不压缩的特点适用于快速打包和解压,而".tar.gz"文件通过额外的压缩步骤,尽管处理时间更长,但可以减小文件尺寸,更适合于需要节约存储空间或进行文件传输的场景。用户在选择时应根据具体需求,考虑两种格式各自的优劣。
1107 13
|
8月前
|
安全 Linux
Linux赋予文件000权限的恢复技巧
以上这些步骤就像是打开一扇锁住的门,步骤看似简单,但是背后却有着严格的逻辑和规则。切记,在任何时候,变更文件权限都要考虑安全性,不要无谓地放宽权限,那样可能
236 16
|
6月前
|
XML 缓存 Linux
在Linux环境下解决Visual Studio Code字体显示异常和字体替换方法。
解决Linux下VS Code字体显示异常,需要对Linux字体渲染机制有所理解,并对VS Code的配置选项进行合理设置。替换字体时则要通过系统字体配置或VS Code设置来完成。通过上述方法,可以有效地解决字体显示问题,从而提升代码编辑的视觉体验。
933 0
|
9月前
|
Linux
【Linux】 Linux文件I/O常见操作技巧
以上就是Linux文件I/O操作的一些技巧,接纳它们,让它们成为你在Linux世界中的得力伙伴,工作会变得轻松许多。不过记住,技巧的运用也需要根据实际情况灵活掌握,毕竟,最适合的才是最好的。
270 28
|
8月前
|
存储 Linux 数据处理
深入剖析Linux中一切即文件的哲学和重定向的机制
在计算机的奇妙世界中,Linux的这套哲学和机制减少了不同类型资源的处理方式,简化了抽象的概念,并蕴藏着强大的灵活性。就像变戏法一样,轻轻松松地在文件、程序与设备之间转换数据流,标准输入、输出、错误流就在指尖舞动,程序的交互和数据处理因此变得既高效又富有乐趣。
132 4
|
9月前
|
Ubuntu Linux
"unzip"命令解析:Linux下如何处理压缩文件。
总的来说,`unzip`命令是Linux系统下一款实用而方便的ZIP格式文件处理工具。本文通过简明扼要的方式,详细介绍了在各类Linux发行版上安装 `unzip`的方法,以及如何使用 `unzip`命令进行解压、查看和测试ZIP文件。希望本文章能为用户带来实际帮助,提高日常操作的效率。
1849 12
|
10月前
|
安全 Linux
阿里云linux服务器使用脚本通过安全组屏蔽异常海外访问ip
公网网站可能会遭受黑客攻击导致访问异常,使用此脚本可以屏蔽掉异常IP 恢复访问。也可自行设置定时任务定期检测屏蔽。
736 28
|
10月前
|
Linux Shell
Linux系统下快速批量创建和删除文件的方法
总的来说,使用shell脚本来批量处理文件是一种非常强大的工具,只要你愿意花时间学习和实践,你会发现它能大大提高你的工作效率。
540 19