***RDKit [#o09b38b6]
本家様 [[http://rdkit.org/>+http://rdkit.org/]]
BSDライセンスなCheminformaticsツール。
化合物の構造式描画やフォーマット変換、および構造式検索(部分検索、類似構造検索)が可能なもの。
またデータベースに組み込んでSQL文で化合物の検索やフォーマット変換もできる優れもの。
&color(lightseagreen){''CentOS 7''}; にて作り直した
PostgreSQLのCartridgeとして作る[[RDKit/Cartridge]]
PostgreSQLのCartridgeとして作る[[RDKit/Cartridge]] 試作webアプリ[[RDKit/Cartridge/web]]


&size(10){「160301版」へupdate(160916)。それ以前、[[RDKit.141204]]};
***ダウンロード [#v8508b96]
コンパイル環境を整備する
#code(nonumber){{
[root@c ~]# yum groupinstall "Development tools"
[root@c ~]# yum install cmake tk-devel readline-devel zlib-devel bzip2-devel sqlite-devel \
    boost-devel numpy-f2py python-imaging
}}
次にRDKit最新版(&color(magenta){RDKit_2016_03_1.tgz};)を取得します
#code(nonumber){{
[root@c ~]# cd /opt/src
[root@c src]# <https://sourceforge.net/projects/rdkit/files/rdkit/Q1_2016/にて RDKit_2016_03_1.tgz を取得>
}}

***コンパイル [#zee62c6a]
RDKitはパッケージを展開した場所がそのままインストール場所になるみたい。ここでは&color(lightseagreen){/opt};を起点にする。
#code(nonumber){{
[root@c ~]# cd /opt
[root@c opt]# gzip -cd ./src/RDKit_2016_03_1.tgz | tar xf -
}}
展開されたフォルダ、ファイルの所有者をrootに変更して、作られたフォルダ(/opt/rdkit-Release_2016_03_1)をそのままに、
&color(magenta){''/opt/RDKit''};にリンクさせる。
#code(nonumber){{
[root@c opt]# chown -R root:root ./rdkit-Release_2016_03_1/
[root@c opt]# rm -f RDKit && ln -s rdkit-Release_2016_03_1 RDKit
[root@c opt]#
[root@c opt]# ls -ld RDKit rdkit-Release_2016_03_1/
lrwxrwxrwx  1 root root   23  9月 16 00:16 RDKit -> rdkit-Release_2016_03_1
drwxrwxr-x 12 root root 4096  4月 18 15:24 rdkit-Release_2016_03_1/

[root@c opt]#
}}
環境変数 RDBASE を定義して、作業場所を掘って、まずは既定オプションを確認する
#code(nonumber){{
[root@c opt]# export RDBASE=/opt/RDKit
[root@c opt]# mkdir -p $RDBASE/build && cd $RDBASE/build

[root@c build]# export PATH=/sbin:/bin:/usr/sbin:/usr/bin
[root@c build]# export LD_LIBRARY_PATH=$RDBASE/lib
[root@c build]# cmake .. -L
(前略)
CMAKE_BUILD_TYPE:STRING=Release
CMAKE_INSTALL_PREFIX:PATH=/usr/local
PYTHON_NUMPY_INCLUDE_PATH:PATH=/usr/include
RDK_BUILD_AVALON_SUPPORT:BOOL=OFF
RDK_BUILD_CAIRO_SUPPORT:BOOL=OFF
RDK_BUILD_COMPRESSED_SUPPLIERS:BOOL=OFF
RDK_BUILD_CONTRIB:BOOL=OFF
RDK_BUILD_CPP_TESTS:BOOL=ON
RDK_BUILD_INCHI_SUPPORT:BOOL=OFF
RDK_BUILD_PGSQL:BOOL=OFF
RDK_BUILD_PYTHON_WRAPPERS:BOOL=ON
RDK_BUILD_QT_DEMO:BOOL=OFF
RDK_BUILD_QT_SUPPORT:BOOL=OFF
RDK_BUILD_SLN_SUPPORT:BOOL=ON
RDK_BUILD_SWIG_CSHARP_WRAPPER:BOOL=OFF
RDK_BUILD_SWIG_JAVA_WRAPPER:BOOL=ON
RDK_BUILD_SWIG_WRAPPERS:BOOL=OFF
RDK_BUILD_THREADSAFE_SSS:BOOL=ON
RDK_INSTALL_INTREE:BOOL=ON
RDK_INSTALL_STATIC_LIBS:BOOL=ON
RDK_OPTIMIZE_NATIVE:BOOL=ON
RDK_PGSQL_STATIC:BOOL=ON
RDK_TEST_COVERAGE:BOOL=OFF
RDK_TEST_MMFF_COMPLIANCE:BOOL=ON
RDK_TEST_MULTITHREADED:BOOL=ON
RDK_USE_BOOST_SERIALIZATION:BOOL=ON
RDK_USE_FLEXBISON:BOOL=OFF
RDK_USE_STRICT_ROTOR_DEFINITION:BOOL=ON
[root@c build]#
}}
この結果では圧縮したファイルが扱えないので(&color(orangered){RDK_BUILD_COMPRESSED_SUPPLIERS:BOOL=OFF};)、これを有効にして再構築してみる。
&size(10){ほかRDK_BUILD_CAIRO_SUPPORTを有効にするならcairo-develパッケージをインストールして、-DRDK_BUILD_CAIRO_SUPPORT=ONを加える};


#code(nonumber){{
[root@c build]# rm -rf ./*
[root@c build]# cmake ..  -DRDK_BUILD_COMPRESSED_SUPPLIERS=ON

[root@c build]# make && make install
}}
&color(white,blue){留意}; 相当コンパイルに時間が掛かります。紅茶3杯はいける

これでコンパイルとインストールは完了であるが、作ったものをここで検証してみる。
#code(nonumber){{
[root@c build]# export PYTHONPATH=$RDBASE

[root@c build]# ctest
(略
100/102 Test #100: pythonTestDirSimDivFilters .......   Passed    0.61 sec
        Start 101: pythonTestDirVLib
101/102 Test #101: pythonTestDirVLib ................   Passed    3.32 sec
        Start 102: pythonTestDirChem
102/102 Test #102: pythonTestDirChem ................   Passed   64.76 sec

100% tests passed, 0 tests failed out of 102

Total Test time (real) = 619.55 sec
[root@c build]#
}}

***設定 [#d56791b0]
使用するには LD_LIBRARY_PATH の設定が必要なので、
#code(nonumber){{
[root@c ~]# echo /opt/RDKit/lib > /etc/ld.so.conf.d/RDKit.conf
[root@c ~]# ldconfig
}}
とする。あと 「&color(orange){RDBASE};」と「&color(orange){PYTHONPATH};」は.bashrcとか.cshrcで。
#code(nonumber){{
[root@c ~]# echo "export RDBASE=/opt/RDKit" >> .bashrc

[root@c ~]# echo "export PYTHONPATH=/opt/RDKit" >> .bashrc
}}
&color(red){*};&size(10){/etc/profile.d/rdkit.{sh,csh}を用意すべきかもしれないが};

***テスト(プロパティ値算出) [#wfcebb9c]
単純なテスト
#code(nonumber){{
[illya@c ~]$ cat <<_EOF_ > sample.py
from rdkit import Chem
from rdkit.Chem import Descriptors
mols = Chem.SDMolSupplier('/opt/RDKit/Data/NCI/first_200.props.sdf')
for mol in mols:
     print "MolLogP    :", Descriptors.MolLogP(mol)

_EOF_
[illya@c ~]$
}}
「&color(orange){RDBASE};」と「&color(orange){PYTHONPATH};」の環境変数が定義されているのを確認して
#code(nonumber){{
[illya@c ~]$ echo $RDBASE
/opt/RDKit
[illya@c ~]$ echo $PYTHONPATH
/opt/RDKit
[illya@c ~]$
[illya@c ~]$ python sample.py
MolLogP    : 0.6407
MolLogP    : 5.7054
MolLogP    : 1.862
(中略)
[illya@c ~]$
}}
***テスト(構造式描画) [#s8781450]
smilesから構造式が描けます。
#code(nonumber){{
[illya@c ~]$ python
Python 2.7.5 (default, Jun 17 2014, 18:11:42)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from rdkit.Chem import AllChem
>>> from rdkit.Chem import Draw
>>> smiles = "CN1C=NC2=C1C(=O)N(C(=O)N2C)C"
>>> mol = AllChem.MolFromSmiles(smiles)
>>> AllChem.Compute2DCoords(mol)
0
>>> Draw.MolToFile(mol,"caffeine.png",size=(200,250))
>>> quit()
[illya@c ~]$
}}
得られたcaffeine.pngは下記になります
#ref(2015y04m18d_000755870.png,nolink);

***テスト(構造式連続描画) [#ycd9b5c6]
SDファイルに含まれている構造情報を使って構造式のイメージファイルを作成する
#code(nonumber){{
[illya@c ~]$ cat <<_EOF_ > sdf2png.py
from rdkit import Chem
from rdkit.Chem import Draw
mols = Chem.SDMolSupplier('/opt/RDKit/Data/NCI/first_200.props.sdf')
for i,mol in enumerate(mols):
   try:
      f= "%s.png"%(i)
      # f="%s.png"%(mol.GetProp('プロパティ値'))   # プロパティ値でファイル名を作る
      Draw.MolToFile(mol, f )  
   except:
      pass
_EOF_
[illya@c ~]$
}}
これで、SDファイルの構造式が画像ファイルに順番に作られます。
本来ならSDFのプロパティ値を使って、それをファイル名にすべきなのかもしれない
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS