LoginSignup
6
3

More than 5 years have passed since last update.

PythonとRDKitをソースビルドするDockerfileを作った

Last updated at Posted at 2018-02-18

PythonとRDKitをソースからビルドするDockerfileを作成したのでシェアします。

はじめに

RDKitとは、分子/化合物の化学表現を扱うツールキットです。

掲題の意図は、以下の二つを両立したいと思ったためです。

  • 任意のバージョンのpythonからRDKitを使うこと
  • Condaを使わないこと

Condaで良いのでは?

はい、こだわらなければcondaでOKです。なぜなら、最新・先端の解析環境を提供してくれるし、RDKitのインストールも簡易だからです (以下のコマンドで一発) 。

# RDKitのインストールもcondaが解決!
$ conda install -y -c rdkit rdkit

それでも今回は、condaを使いません。その理由は、condaをベースに環境を構築したdockerイメージは比較的容量が大きくなるためです。イメージの容量が大きいと、手元のlaptopのメモリが足りなくなり、解析が中断してしまう事象が頻発します。(サーバー規模のマシンで解析すればいいことですが...)

成果物は?

nyuge/rdkit-buildからdockerイメージをご覧/ご利用いただけます。Latest (2018年2月現在) だと、

  • OS: ubuntu16.04
  • python: 3.5.5
  • RDKit: Release_2017_09_3

を用いて、環境構築しています。

使用法は?

まず、nyuge/rdkit-buildのdockerイメージをpullしてください。

$ docker pull nyuge/rdkit-build

次に、下記の例を参考にご自身の解析内容に沿ったDockerfileを作成してください。

# Dockerfileの作成例
FROM nyuge/rdkit-build
MAINTAINER someone

RUN pip install --no-cache-dir --upgrade \
    chainer \
    scikit-learn \
    tqdm
RUN pip install --no-cache-dir --upgrade \
    chainer-chemistry \
    && mkdir -p $HOME/workspace
WORKDIR $HOME/workspace/

その後、作成したDockerfileからdockerイメージをビルドてください (ここではdockerイメージの名前をsomeone/chainer-chemistryとします) 。

$ docker build -t someone/chainer-chemistry .

最後に、dockerコンテナにマウントしたいフォルダに移動し、dockerコンテナを生成してください。

$ docker run -i -v /$(pwd):/workspace -t someone/chainer-chemistry

操作が生成したdockerコンテナに移動したら成功です! マウントを指定する-v /$(pwd):/workspaceについて、$(pwd)で良かったり、/$(pwd)でないと通らなかったりします。

まとめ

PythonとRDKitをソースからビルドするDockerfileを作成しました。これをベースに用いて、化学表現を扱うデータ解析のための軽量なdockerイメージを作ることができそうです。
皆さまの快適なデータ解析生活の一助となれば幸いです!

参考

話題にのぼったツールキット

  • Docker: "Docker is the company driving the container movement and the only container platform provider to address every application across the hybrid cloud."
  • RDKit repository: The cheminformatics and machine-learning soft ware
  • Chainer Chemistry repository: The library for deep learning in biology and chemistry

Docker×RDKitを試みた先人たち

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3