一、RamiGO 安装
$ /Bioinfo/Pipeline/SoftWare/R/R-3.6.1/bin/R CMD INSTALL /Bioinfo/Pipeline/SourceCode/pkgs/RamiGO_1.20.0.tar.gz
* installing to library ‘/Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/library’
ERROR: dependencies ‘gsubfn’, ‘igraph’, ‘RCurl’, ‘png’, ‘RCytoscape’, ‘graph’ are not available for package ‘RamiGO’
* removing ‘/Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/library/RamiGO’
# 安装 gsubfn, igraph, RCurl
install.packages(c("igraph", "igraph", "RCurl", "png"))
# 安装 graph
BiocManager::install("graph")
$ /Bioinfo/Pipeline/SoftWare/R/R-3.6.1/bin/R CMD INSTALL /Bioinfo/Pipeline/SourceCode/pkgs/RCytoscape_1.12.0.tar.gz
* installing to library ‘/Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/library’
ERROR: dependency ‘XMLRPC’ is not available for package ‘RCytoscape’
* removing ‘/Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/library/RCytoscape’
install.packages("devtools")
install_github("duncantl/XMLRPC")
$ /Bioinfo/Pipeline/SoftWare/R/R-3.6.1/bin/R CMD INSTALL /Bioinfo/Pipeline/SourceCode/pkgs/RamiGO_1.20.0.tar.gz
* installing to library ‘/Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/library’
* installing *source* package ‘RamiGO’ ...
** using staged installation
** R
** data
** inst
** byte-compile and prepare package for lazy loading
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/library/png/libs/png.so':
libpng16.so.16: cannot open shared object file: No such file or directory
Calls: <Anonymous> ... asNamespace -> loadNamespace -> library.dynam -> dyn.load
Execution halted
ERROR: lazy loading failed for package ‘RamiGO’
* removing ‘/Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/library/RamiGO’
$ export LD_LIBRARY_PATH=/Bioinfo/Pipeline/SoftWare/LibDependence/libpng-1.6.37/
bin/ include/ lib/ share/
$ export LD_LIBRARY_PATH=/Bioinfo/Pipeline/SoftWare/LibDependence/libpng-1.6.37/lib:$LD_LIBRARY_PATH
$ /Bioinfo/Pipeline/SoftWare/R/R-3.6.1/bin/R CMD INSTALL /Bioinfo/Pipeline/SourceCode/pkgs/RamiGO_1.20.0.tar.gz
* installing to library ‘/Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/library’
* installing *source* package ‘RamiGO’ ...
** using staged installation
** R
** data
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (RamiGO)
二、RamiGO 使用与 libpng 依赖库异常
使用 RamiGO
R 包过程中,如果发现:
> library('RamiGO')
Loading required package: gsubfn
Loading required package: proto
> goIDs <- c("GO:0051130","GO:0019912","GO:0005783","GO:0043229","GO:0050789")
> color <- c("lightblue","red","yellow","green","pink")
> getAmigoTree(goIDs=goIDs, color=color, filename="example", picType="png",saveResult = TRUE)
Error in readPNG(aa) :
libpng error: Incompatible libpng version in application and library
In addition: Warning messages:
1: In readPNG(aa) :
libpng warning: Application was compiled with png.h from libpng-1.6.37
2: In readPNG(aa) :
libpng warning: Application is running with png.c from libpng-1.2.49
首先,如果是源码编译安装的 R(参考:《手把手教你如何在 Linux 源码安装最新版本的 R》),可以尝试在 configure 的时候把 libpng 相关的的 LDFLAGS 和 CPPFLAGS 去掉,重新安装 R。
然后,通过拷贝缺失的共享库解决存在的问题。
> library(RamiGO)
Loading required package: gsubfn
Loading required package: proto
Error: package or namespace load failed for ‘RamiGO’ in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/library/png/libs/png.so':
libpng16.so.16: cannot open shared object file: No such file or directory
> goIDs <- c("GO:0051130","GO:0019912","GO:0005783","GO:0043229","GO:0050789")
> color <- c("lightblue","red","yellow","green","pink")
> getAmigoTree(goIDs=goIDs, color=color, filename="example", picType="png",saveResult = TRUE)
Error in getAmigoTree(goIDs = goIDs, color = color, filename = "example", :
could not find function "getAmigoTree"
$ ldd /Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/library/png/libs/png.so
linux-vdso.so.1 => (0x00007fff48999000)
libpng16.so.16 => not found
libm.so.6 => /lib64/libm.so.6 (0x00007f100a740000)
libz.so.1 => /RiboBio/Bioinfo/APPS/R-3.3.2/lib/libz.so.1 (0x00007f100a528000)
libR.so => not found
libc.so.6 => /lib64/libc.so.6 (0x00007f100a194000)
/lib64/ld-linux-x86-64.so.2 (0x0000003636a00000)
$ ln -s /Bioinfo/Pipeline/SoftWare/LibDependence/libpng-1.6.37/lib/libpng16.so.16.37.0 /usr/lib64/libpng16.so.16
$ ln -s /Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/lib/libR.so /usr/lib64/libR.so
$ ldd /Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/library/png/libs/png.so
linux-vdso.so.1 => (0x00007fff079ff000)
libpng16.so.16 (0x00007fd903bed000)
libm.so.6 => /lib64/libm.so.6 (0x00007fd903969000)
libz.so.1 => /Bioinfo/APPS/R-3.3.2/lib/libz.so.1 (0x00007fd903751000)
libR.so => /usr/lib64/libR.so (0x00007fd9030aa000)
libc.so.6 => /lib64/libc.so.6 (0x00007fd902d16000)
libRblas.so => not found
libgfortran.so.3 => /usr/lib64/libgfortran.so.3 (0x00007fd902a23000)
libreadline.so.6 => /lib64/libreadline.so.6 (0x00007fd9027e0000)
libpcre.so.1 => /Bioinfo/APPS/R-3.3.2/lib/libpcre.so.1 (0x00007fd9025ad000)
liblzma.so.5 => /Bioinfo/APPS/R-3.3.2/lib/liblzma.so.5 (0x00007fd902388000)
librt.so.1 => /lib64/librt.so.1 (0x00007fd902180000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fd901f7b000)
libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x00007fd901c96000)
libgomp.so.1 => /Bioinfo/APPS/gcc-5.1.0/lib64/libgomp.so.1 (0x00007fd901a77000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd901859000)
/lib64/ld-linux-x86-64.so.2 (0x0000003636a00000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007fd901638000)
$ ln -s /Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/lib/libRblas.so /usr/lib64/libRblas.so
$ ldd /Bioinfo/Pipeline/SoftWare/R/R-3.6.1/lib64/R/library/png/libs/png.so
linux-vdso.so.1 => (0x00007fff2b7ff000)
libpng16.so.16 (0x00007fed3cd93000)
libm.so.6 => /lib64/libm.so.6 (0x00007fed3cb0f000)
libz.so.1 => /Bioinfo/APPS/R-3.3.2/lib/libz.so.1 (0x00007fed3c8f7000)
libR.so => /usr/lib64/libR.so (0x00007fed3c250000)
libc.so.6 => /lib64/libc.so.6 (0x00007fed3bebc000)
libRblas.so => /usr/lib64/libRblas.so (0x00007fed3bc90000)
libgfortran.so.3 => /usr/lib64/libgfortran.so.3 (0x00007fed3b99e000)
libreadline.so.6 => /lib64/libreadline.so.6 (0x00007fed3b75b000)
libpcre.so.1 => /Bioinfo/APPS/R-3.3.2/lib/libpcre.so.1 (0x00007fed3b528000)
liblzma.so.5 => /Bioinfo/APPS/R-3.3.2/lib/liblzma.so.5 (0x00007fed3b303000)
librt.so.1 => /lib64/librt.so.1 (0x00007fed3b0fb000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fed3aef6000)
libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x00007fed3ac11000)
libgomp.so.1 => /Bioinfo/APPS/gcc-5.1.0/lib64/libgomp.so.1 (0x00007fed3a9f2000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fed3a7d4000)
/lib64/ld-linux-x86-64.so.2 (0x0000003636a00000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007fed3a5b3000)
最后,RamiGO 包可以正常使用: