前回の投稿ではGUIで操作する化学構造描画ツールの紹介をしました。GUIでの操作は直感的でわかりやすく、人間にとって親切なインターフェースを提供してくれます。一方で、数百-数千の化学情報を一度に変換したい、バッチ処理をしたい、他のツールと連携させたい、といった場合は、コマンドで操作できると便利です。
そこで、今回はコマンドラインで操作するツールについて紹介いたします。
前回の記事でMarvinSketchのインストール方法を説明しましたが、標準の設定ではMarvin Suitesとして関連ツールも同時にインストールされます。今回紹介するMarvinViewやコマンドラインツールもMarvin Suitesの一部なので、MarvinSketchが使える状態であれば、特別な設定は不要です。
化合物の構造を表現するフォーマットは多数あるため、複数の情報ソースから集めた化学情報を整理するためにはデータの変換が必要です。molconvertを使えば簡単に変換できます。例として、カフェイン分子を使ってみます。
以下のコマンドではカフェインのSMILES Stringを基に、MOL形式に変換してファイルとして出力しています。
molconvert mol 'CN1C=NC2=C1C(=O)N(C(=O)N2C)C' -o caffeine.mol
オプションを付けて細かな設定も可能です。以下のコマンドではcaffeine.molのMOLファイルから構造をインポートし、その際に芳香族性の変換と明示水素を除くオプション:a-H
を付けています。結果はSMILES Stringとしてコンソールに表示されます。元のSMILESから変化していることがわかると思います。 構造の表記揺れはデータクレンジングなどの前処理の際に面倒になりますが、molconvertを使うと一発で変換できます。
molconvert smiles:a-H caffeine.mol
//結果
Cn1cnc2n(C)c(=O)n(C)c(=O)c12
画像にも変換できます。幅100px, 背景が黄色のpngイメージを作成しました。
molconvert png:w100,#ffff00 aspirin.mol -o output.png
SMILESだけでは構造を理解しにくいので、mviewを使って構造式ビューワーを呼び出すと便利です。|
パイプを使って出力結果をmviewに渡しており、その場で構造を確認できます。
molconvert smiles:a-H caffeine.mol | mview -
mviewはMarvinViewを呼び出すコマンドであり、オプションを指定することで範囲やレイアウトの指定ができます。
例として、PubChemのアッセイデータ(AID: 1942)をダウンロードしてみました。スクリーニングに使われた2405化合物の情報が含まれていますので、一部のみ取り出してマトリックス形式で表示してみます。先頭から50番目の化合物から数えて、100個化合物を表示します。
mview [file_name].sdf -s 50 -n 100 --gridbag
オプションですが、Name to Structure や Document to Structureを使うと、化合物名(日本語・中国語対応)と構造の相互変換や、論文などのドキュメントから化合物情報を抜き出すこともできます。
molconvert smiles document.pdf
//結果
Clc1ccccc1
ClC1=CC=CC=C1
...
cxcalcはCalculator Pluginsのコマンドラインツールです。化合物の物理化学特性や、分子記述子の計算を行います。
pKaを求めてみます。caffeine, aspirin, morphine, fluvastatinの構造情報を持つinput.sdfファイルを作成しました。結果がテーブル形式で表示され、最も強い酸性度と塩基性度を示す原子のそれぞれ2つの結果が表示されます。
cxcalc input.sdf pka
//結果
id apKa1 apKa2 bpKa1 bpKa2 atoms
1 -1.16 -9.41 4,10
2 3.41 -7.14 12,3
3 10.26 13.78 9.12 -3.33 21,17,2,17
4 4.54 14.64 -2.84 -2.89 15,9,12,9
電荷を計算して結果をMarvinViewで確認するコマンドは以下のようになります。
cxcalc input.sdf -M charge | mview -
分子量と、pH = 6.4での logP、logDの計算は以下のようになります。
cxcalc input.sdf -mass logp logd -H 6.4
//結果
id Molecular weight logP logD[pH=6.4]
1 194.194 -0.55 -0.55
2 180.159 1.24 -1.64
3 285.343 0.90 -1.52
4 411.473 3.83 1.97
Van der Waals 分子表面積、ドナー・アクセプター数の計算は以下のようになります。
cxcalc input.sdf vdwsa mass donorcount acceptorcount
//結果
id Van der Waals surface area (3D) Molecular weight donorcount acceptorcount
1 269.12 194.194 0 3
2 246.18 180.159 1 3
3 388.43 285.343 2 4
4 593.41 411.473 3 4
トポロジーについても自動で計算してくれます。
cxcalc topanal input.sdf
//結果
id Atom count Aliphatic atom count Aromatic atom count Bond count Aliphatic bond count Aromatic bond count Rotatable bond count Ring count Aliphatic ring count Aromatic ring count Hetero ring count Heteroaliphatic ring count Heteroaromatic ring count Ring atom count Ring bond count Chain atom count Chain bond count Smallest ring size Largest ring size
1 24 5 9 25 5 10 0 2 0 2 2 0 2 9
10 5 5 5 6
...
Calculator Pluginsを使ってどの様な計算ができるか、といった情報は、公式のドキュメントサイトにまとめられています。色々な計算ができる強力なツールですので、ぜひ覗いてみて下さい。
今回紹介したコマンドラインツールの機能は、ChemAxon社の様々なアプリケーションで使うことができます。前回紹介したMarvinSketch、エクセル等で化学情報を扱うJChem for Office、化合物DB管理アプリケーションIJC, Plexus等があります。また、ワークフローツールであるKNIMEやBiovia社のPipeline Pilot上でノードとしても使用することができます。
そのため、今回紹介したコマンドをわざわざコンソール上で使用する機会は少ないと思います。一方で、コマンドを利用するとオプションを指定した細かい制御をすることができますし、ツール自体への理解が深まるというメリットがあります。
詳細なオプションの確認はChemAxon社の公式ページや、molconvert --help
などのマニュアルを参照してください。