ChimeraXでSMILESを扱う
ChimeraXでSMILES等の分子表記から3D構造を生成する方法を紹介します。
ChimeraXの標準機能(open smiles:)
ChimeraXにはSMILESから3D構造を生成する機能が標準で備わっています。
open smiles:CCO
open smiles:c1ccccc1 resName benzene
GUIからは Tools → Structure Editing → Build Structure → Start Structure → SMILES string でも同様のことができます。
ただし、この方法にはいくつかの制約があります。
- NCI(National Cancer Institute)のWebサービスに依存しており、インターネット接続が必須
- 3D座標生成の品質を制御できない
- SMILES以外の分子表記(InChI、配列等)は別コマンドが必要
chimerax-rdkit-conformer(rdkconf)
これらの制約を解決するために、RDKitを使ったChimeraXバンドル chimerax-rdkit-conformer を作りました。
当初はChimeraXの環境を汚さないよう、外部のuvを使ってサブプロセスでRDKitを実行する方式(後述のOption C)を考えていました。しかし実際に試してみると、ChimeraXのPythonにpip installで直接RDKitを入れても問題なく動作したため、シンプルな直接インストール方式(Option A)も用意しています。
特徴:
- ローカル完結 — ネットワーク不要
- RDKit ETKDGv3 による高品質な3D座標生成
- SMILES以外にも InChI、ペプチド配列、DNA/RNA、FASTA、HELM に対応
- 複数コンフォーマーの一括生成
- MMFF最適化、ChimeraXのminimize連携
前提知識: ChimeraXでpip installできる
意外と知られていないのですが、ChimeraXには独自のPython環境が内蔵されており、コマンドラインからpip installでPyPIのパッケージをインストールできます。
# ChimeraXのコマンドラインで
pip install rdkit
これだけでChimeraXのPython内にRDKitが入ります。ターミナルからも実行可能です。
# ターミナルから
chimerax --nogui --exit --cmd 'pip install rdkit'
ターミナルからchimeraxコマンドが使えない場合は、シンボリックリンクかaliasを設定してください。
# シンボリックリンクの場合(バージョンに合わせてパスを変更)
ln -s /Applications/ChimeraX-1.11.1.app/Contents/bin/ChimeraX /usr/local/bin/chimerax
# aliasの場合(.zshrc / .bashrc に追加)
alias chimerax='/Applications/ChimeraX-1.11.1.app/Contents/bin/ChimeraX'
ChimeraXのPython環境にパッケージを追加するため、環境が汚染される点には注意してください。Option B/Cではこの問題を回避できます。
インストール
3つのインストール方法があります。用途に応じて選択してください。
Option A: Direct RDKit(シンプルでおすすめ)
RDKitをChimeraXのPythonに直接インストールする方法です。
# ChimeraXのコマンドラインで
pip install rdkit
cd /path/to/chimerax-rdkit-conformer/bundle-direct
devel install .
Option B: uv subprocess(ChimeraXへの環境汚染を最小限に)
uv をChimeraXにインストールし、RDKitは PEP 723 でスクリプト実装し、これをsubprocessで実行します。
ChimeraXのPython環境にはuvのみが追加されます。
uvとPEP723についてはこちらの記事が参考になります。
# ChimeraXのコマンドラインで
pip install uv
cd /path/to/chimerax-rdkit-conformer/bundle-uv
devel install .
Option C: uv subprocess(ゼロ汚染)
ChimeraXの環境を一切汚染したくない場合、システムにインストール済みのuvを直接指定することで回避できます。
# まずシステムのuvのパスを確認
which uv
# 例: /Users/username/.local/bin/uv
# ChimeraXのコマンドラインで
cd /path/to/chimerax-rdkit-conformer/bundle-uv
devel install .
rdkconf uvPath /Users/username/.local/bin/uv # which uv で確認したパスを指定
uvPathは一度設定すれば永続化されます。
devel installはバンドルのディレクトリ内で実行する必要があります。cdしてからdevel install .としてください。
使い方
SMILES
rdkconf CCO # エタノール
rdkconf c1ccccc1 # ベンゼン
rdkconf "CC(=O)Oc1ccccc1C(=O)O" # アスピリン
InChI
InChIはInChI=プレフィクスで自動検出されます。
rdkconf "InChI=1S/C2H6O/c1-2-3/h3H,2H2,1H3"
ペプチド・核酸配列
formatキーワードで配列の種類を指定します。
rdkconf GGG format sequence # ペプチド配列
rdkconf ACGT format dna # DNA配列
rdkconf ACGU format rna # RNA配列
rdkconf ">seq\nGGG" format fasta # FASTA形式
HELM
rdkconf "PEPTIDE1{G.G.G}$$$$" format helm
オプション
rdkconf CCO name EtOH # 残基名を指定
rdkconf CCO hydrogen false # 水素原子を非表示
rdkconf CCO optimize true # RDKit MMFF最適化
rdkconf CCO minimize true # ChimeraX minimize(1.11+)
rdkconf CCO optimize true minimize true # 両方実行
rdkconf c1ccccc1 conformers 5 # 5つのコンフォーマーを生成
optimizeはRDKitのMMFF力場、minimizeはChimeraXのAmber力場でエネルギー最小化を行います。組み合わせることでより安定した構造が得られます。
minimizeはChimeraX 1.11以降でのみ使用可能です。また、詳細なminimizeの設定が必要な場合はrdkconfのminimizeオプションではなく、ChimeraXのminimizeコマンドを別途実行することを推奨します。
複数コンフォーマーの生成例(メラトニン):
rdkconf "CC(=O)NCCc1c[nH]c2ccc(OC)cc12" conformers 5 name melatonin
| キーワード | デフォルト | 説明 |
|---|---|---|
name |
UNK |
残基名 |
hydrogen |
true |
水素原子の表示 |
optimize |
false |
RDKit MMFF力場で最適化 |
minimize |
false |
ChimeraXのminimizeで最適化(1.11+) |
conformers |
1 |
生成するコンフォーマーの数 |
format |
smiles |
入力フォーマット |
対応フォーマット一覧
| フォーマット |
formatキーワード |
自動検出 |
|---|---|---|
| SMILES |
smiles(デフォルト) |
Yes(フォールバック) |
| InChI | inchi |
Yes(InChI=プレフィクス) |
| ペプチド配列 | sequence |
No |
| DNA配列 | dna |
No |
| RNA配列 | rna |
No |
| FASTA | fasta |
No |
| HELM | helm |
No |
標準機能との比較
open smiles: |
rdkconf |
|
|---|---|---|
| ネットワーク | 必要(NCI依存) | 不要 |
| 3D生成エンジン | NCI Web service | RDKit ETKDGv3 |
| 対応フォーマット | SMILES, IUPAC | SMILES, InChI, 配列, FASTA, HELM |
| コンフォーマー | 1つのみ | 複数対応 |
| 力場最適化 | なし | MMFF / ChimeraX minimize |
| オフライン | 不可 | 可能 |
まとめ
今回紹介したように、ChimeraXではpip installでPyPIのパッケージをインストールできます。意外と知られていませんが、これを活用すればChimeraXの機能を大幅に拡張できます。
rdkconfはその一例で、RDKitを使ってローカルで高品質な3D構造生成を実現しています。ぜひ試してみてください。
また、本記事のOption B/Cで紹介したuvとPEP 723を組み合わせれば、ChimeraXの環境を汚さずにPythonスクリプトから外部ライブラリを利用することも可能です。ChimeraXのrunscriptコマンドと組み合わせると、さらに色々なことができそうですね。




