构建适用于 Python3 的 Rdkit 和 OpenBabel 组合的镜像包

拟墨画扇 提交于 2020-03-03 11:02:25

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

参考资料

  1. Rdkit 镜像 dockerfile
    https://github.com/InformaticsMatters/docker-rdkit
  2. dkit-python3-debian 镜像包
    https://hub.docker.com/r/informaticsmatters/rdkit-python3-debian
  3. Open Babel 说明文档
    https://open-babel.readthedocs.io/en/latest/index.html
  4. Open Babel 3.0 版本与之前版本的区别
    https://open-babel.readthedocs.io/en/latest/UseTheLibrary/migration.html#migrating-to-3-0
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!