在复现scATACseq官网教程的过程当中,读取数据时报错显示缺乏hdf5r包,导致无法对数据进行正常读取。此贴为记录如何解决为何无法按照官网教程下载hdf5包。
报错来源
首先,第一步想的当然是去install.package来下载这个R包。
但这个操作显示了no-exit status(类似这种,反正就是没法下成功)。
这时候会考虑到是不是下包的方式出问题了…换了几种下包的方式,都无法成功。
这里的问题其实是缺乏编译hd5的编译库,也就是libhdf5-dev这个东西(应该是这样说吧…我的环境比较新,所以容易出现缺失的情况)
解决方式
如果你是root用户的话,这件事情就很好解决(请看代码段)
# 按照报错提示
sudo apt-get install libhdf5-dev
如果不是root的话,请如下操作,成功的几率会大大增加。
# Method one:使用Spack
# 下载并安装 Spack
git clone https://github.com/spack/spack.git
. spack/share/spack/setup-env.sh
# 使用 Spack 安装 hdf5
spack install hdf5
第一种方法我没下成功…给大众作为参考,可以试试看,不失为一种思路。
# Method two:下载hdf5编译源
# 下载 HDF5 源码
# 下列网址,自己在浏览器上看看是不是准确的
wget https://support.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.10.5.tar.gz
tar -xzvf hdf5-1.10.5.tar.gz
cd hdf5-1.10.5
# 配置和安装到用户目录,例如 $HOME/hdf5
## 配置
./configure --prefix=$HOME/hdf5
## 编译
make
## 安装
make install
# 设置环境变量(在~/.bashrc中)
export HDF5_DIR=$HOME/hdf5
export PATH=$HDF5_DIR/bin:$PATH
export LD_LIBRARY_PATH=$HDF5_DIR/lib:$LD_LIBRARY_PATH
# 设置之后
source ~/.bashrc
# 检查是否安装成功
make check (这步可省)
## 检查 HDF5 安装配置
h5cc -showconfig
# 检查 HDF5 库版本
h5dump -V
第二种方法是我实践后成功下载好编译库的。这之后就开始下载hdf5r包。But我直接通过install.package()下载失败。改成 先下载hdf5r安装包;再直接install.package(,repo = NULL, type = 'source')这样就下载成功了。
当然,肯定还有其他的下载方式,我就没有探索了。如果有其他下载成功或是出现什么问题,欢迎交流~(虽然我懂得不多)