Rdkit 和 Open Babel 是计算化学科学家们经常用到的两个开源库。有的项目需要这两个库结合使用,但是手动安装相当会比较麻烦,因此我构建了一个 Docker 镜像包方便大家使用,并且把构建的过程做了一次记录。
在 dockerhub 上已经有 Rdkit 最新的镜像包,我们没有必要重新构建,接下来将基于 rdkit-python3-debian 进行构建。
https://hub.docker.com/r/informaticsmatters/rdkit-python3-debian
拉取基础镜像
拉取最新的 rdkit-python3-debian 镜像包
sudo docker pull informaticsmatters/rdkit-python3-debian:latest
镜像构建
新建构建镜像的目录
mkdir dockers && cd dockers
更改 Debian 的下载源
在本地目录新建 sources.list 文件然后放入以下内容:
# etc/apt/sources.list
deb http://mirrors.aliyun.com/debian stable main contrib non-free
deb http://mirrors.aliyun.com/debian stable-proposed-updates main contrib non-free
deb http://mirrors.aliyun.com/debian stable-updates main contrib non-free
deb-src http://mirrors.aliyun.com/debian stable main contrib non-free
deb-src http://mirrors.aliyun.com/debian stable-proposed-updates main contrib non-free
deb-src http://mirrors.aliyun.com/debian stable-updates main contrib non-free
下载openbabel安装包
openbabel-3-0-0a2 下载链接:
https://github.com/openbabel/openbabel/archive/openbabel-3-0-0a2.tar.gz
可以使用 wget 进行下载
wget https://github.com/openbabel/openbabel/archive/openbabel-3-0-0a2.tar.gz
新建 Dockerfile
新建 Dockerfile 文件,放入以下内容:
FROM informaticsmatters/rdkit-python3-debian:latest
USER root
COPY openbabel-3-0-0a2.tar.gz /tmp/
COPY sources.list /etc/apt/sources.list
WORKDIR /tmp/
RUN apt-get update &&\
apt-get update &&\
apt-get install -y build-essential\
cmake\
gcc\
git\
libxml2-dev\
libcairo2-dev\
libeigen3-dev\
make\
nano\
swig\
zlib1g-dev &&\
cp -r /usr/include/eigen3/Eigen /usr/include &&\
tar -zxf openbabel-3-0-0a2.tar.gz &&\
rm openbabel-3-0-0a2.tar.gz &&\
mv openbabel-openbabel-3-0-0a2 openbabel &&\
mkdir build &&\
cd build &&\
cmake ../openbabel -DPYTHON_BINDINGS=ON -DCMAKE_BUILD_TYPE=Debug -DRUN_SWIG=ON -DPYTHON_EXECUTABLE=/usr/bin/python3 &&\
make -j2 &&\
make install
WORKDIR /opt/
目前路径下面会有以下几个文件:
Dockerfile
openbabel-3-0-0a2.tar.gz
sources.list
构建镜像
运行 docker build 进行镜像构建
docker build --rm -t rdkit_pybel_debain:v1 -f Dockerfile .
容器测试
启动容器
通过 docker run 启动容器
sudo docker run -dit --name="pybel_rdkit_test1" rdkit_pybel_debian:v1 /bin/bash
进入容器
sudo docker exec -it pybel_rdkit_test1 /bin/bash
运行 python3
python3
测试 python 包引入
# 测试 pybel
from openbabel import pybel
mymol = pybel.readstring("smi", "C1=CC=CS1")
len(mymol.atoms)
# 测试 rdkit
from rdkit import Chem
Chem.inchi.MolToInchiKey
参考资料
- Rdkit 镜像 dockerfile
https://github.com/InformaticsMatters/docker-rdkit - dkit-python3-debian 镜像包
https://hub.docker.com/r/informaticsmatters/rdkit-python3-debian - Open Babel 说明文档
https://open-babel.readthedocs.io/en/latest/index.html - Open Babel 3.0 版本与之前版本的区别
https://open-babel.readthedocs.io/en/latest/UseTheLibrary/migration.html#migrating-to-3-0
来源:CSDN
作者:金国群-GIN
链接:https://blog.csdn.net/weixin_43275654/article/details/104625522