加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

rdkit(2019.9)源代码编译安装

(2019-07-28 15:15:38)
标签:

rdkit

软代码

编译

离线安装

最近几天一直高负荷,事情也多,拖到快截止了,没办法得赶快看看怎么安装了。(安装完以后发现腾讯那个倒是延长了一周,难得的缓冲啊)
因为学生平时的课题需要,再就是正好腾讯的alchemy竞赛(https://alchemy.tencent.com/)的缘故,需要在(中科院)AI集群(ai.sccas.cn)上安装rdkit化学信息学的包。其实这个包我指导的学生一直在用,之前的安装都是直接的使用的Anaconda,直接一体化安装就可以了。不过这次呢,因为AI集群这种一般都是没法联网的,就得需要源码安装。源码安装的话就麻烦不少,也记录一下,备用。

首先,rdkit可以直接从github上下载,网址为https://github.com/rdkit/rdkit
直接可以git clone git@github.com:rdkit/rdkit.git获得。
注意直接git clone下来的是空文件夹,需要git branch 到相应的分支,这里我们直接使用的最新的master分支,基本是2019.9的版本。

下载下来后,打包tar上传到的AI集群,解压后在rdkit文件夹里面建立build文件夹,进入后键入
CC=gcc FC=gfortran CXX=g++ ccmake ../
可以调出ccmake的gui。
这里我们可以直接使用“c”的configure命令,可以看到External里面缺少很多包,比如catch
这个因为我们是在集群上,没法直接git clone下载;解决方案的话就是本机上下载下来以后,再上传到AI集群。注意这个地方,对于git的版本的话需要下载Catch2-2.1.2.tar.gz maeparser-1.2.tar.gz rapidjson-master.zip。这个地方默认的rdkit的Cmake里面带有md5的校验机制,注意有些包需要修改CMakeList.txt把MD5校验绕过去。

再次“c”configure,发现大量boost函数库的报错,原因是集群还是老旧的1.53,这里我们下载最新版的boost C++1.70来安装,参照boost官网以及b2 --help的内容,
 ./b2 --prefix=/home/scapps/Soft/boost_1_70_0/build_py3 --build-type=complete --layout=tagged threading=single
然后
 ./b2 --prefix=/home/scapps/Soft/boost_1_70_0/build_py3 --build-type=complete --layout=tagged threading=single install 就可以安装上了
这个地方也可以使用多线程,虽然我测试的时候用的single

准备好所需的函数库以后,再次在ccmake gui的界面键入"c"。
此时cmake仍然会报大量的错误,这次主要是各种函数库设置的问题,ccmake gui的时候也会有提示.。
特别留意的有以下几个
Boost_DIR     /home/scapps/Soft/boost_1_70_0/build_py3/lib/cmake/Boost-1.70.0
Boost_INCLUDE_DIR     /home/scapps/Soft/boost_1_70_0/build_py3/include
PYTHON_NUMPY_INCLUDE_PATH     /public/software/Anaconda/lib/python3.6/site-packages/numpy/core/include/numpy
Boost_PYTHON36_LIBRARY_RELEASE    /home/scapps/Soft/boost_1_70_0/build_py3/lib/libboost_python36-x64.so
Boost_IOSTREAMS_LIBRARY_RELEASE    /home/scapps/Soft/boost_1_70_0/build_py3/lib/libboost_iostreams-x64.so
(类似IOSTREAMS的还有REGEX、SERIALIZATION、SYSTEM的BOOST库)
以上配置了以后,编译出来发现有限boost库调用的版本有问题,逐
CMAKE_CXX_FLAGS    -L/home/scapps/Soft/boost_1_70_0/build_py3/lib  -lboost_iostreams-x64  -lboost_python36-x64  -lboost_regex-x64  -lboost_serialization-x64  -lboost_system-x64
(注意这个地方的-x64后缀是因为我编译的时候加的标记;正常yum或者apt的没有这个)
还是有python版本不匹配的问题,导致python的RDkit库ctest报错,发现此问题后,强制使用python3对应的版本和库来编译即可,如
CMAKE_CXX_FLAGS -L/public/software/Anaconda/lib -lpython3.6m
注意这个FLAGS同时加到了CXX和CC的配置里面

之后编译就没有问题了,不过ctest报错。查看发现是简单的环境变量的问题,然后修改后
# added by mashuo and yingjin
source /public/software/Anaconda/bin/activate
export PATH=/public/software/Anaconda/bin:$PATH
export RDBASE=/home/scapps/Soft/rdkit
export PYTHONPATH=$RDBASE:$PYTHONPATH
export LD_LIBRARY_PATH=$RDBASE/lib:/usr/lib64/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/scapps/Soft/boost_1_70_0/build_py3/lib:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=/home/scapps/Soft/boost_1_70_0/build_py3/include/boost-1_70:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/home/scapps/Soft/boost_1_70_0/build_py3/include/boost-1_70:$CPLUS_INCLUDE_PATH
export C_INCLUDE_PATH=/public/software/Anaconda/include/python3.6m:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/public/software/Anaconda/include/python3.6m:$CPLUS_INCLUDE_PATH
export LD_LIBRARY_PATH=/home/scapps/Soft/rdkit/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/public/software/Anaconda/lib:$LD_LIBRARY_PATH
之后ctest也没有问题了,161个例子还是几个例子,除了零星几个调用子进程的没有通过,其他的均没有问题。

====  2019.8.17更新  ====
小J反应跑腾讯的示例程序还是报错,主要是pytorch_geometric的问题。解决方案的话,需要额外安装以下程序:
1) pytest-runner
2) setuptools_scm
3) pytorch_sparse
4) pytorch_scatter
5) pytorch_cluster
6) pytorch_geometric
大概就是以上这些 没有root账户的话可以--user的模式来安装 或者编译安装

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有